TarsNodeF.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. /**
  2. * Tencent is pleased to support the open source community by making Tars available.
  3. *
  4. * Copyright (C) 2016THL A29 Limited, a Tencent company. All rights reserved.
  5. *
  6. * Licensed under the BSD 3-Clause License (the "License"); you may not use this file except
  7. * in compliance with the License. You may obtain a copy of the License at
  8. *
  9. * https://opensource.org/licenses/BSD-3-Clause
  10. *
  11. * Unless required by applicable law or agreed to in writing, software distributed
  12. * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
  13. * CONDITIONS OF ANY KIND, either express or implied. See the License for the
  14. * specific language governing permissions and limitations under the License.
  15. */
  16. #ifndef __TARS_NODEF_H__
  17. #define __TARS_NODEF_H__
  18. #include "servant/NodeF.h"
  19. #include "servant/Global.h"
  20. #include "util/tc_singleton.h"
  21. namespace tars
  22. {
  23. /**
  24. * 给node发送心跳
  25. * 调用keepAlive异步发送心跳给node
  26. */
  27. class TarsNodeFHelper : public TC_Singleton<TarsNodeFHelper>,public TC_ThreadMutex
  28. {
  29. public:
  30. /**
  31. * 设置node信息
  32. * @param comm, 通信器
  33. * @param obj,
  34. * @param app
  35. * @param server
  36. */
  37. void setNodeInfo(const CommunicatorPtr &comm, const string &obj, const string &app, const string &server);
  38. /**
  39. * keepAlive
  40. */
  41. void keepAlive(const string &adapter = "");
  42. void keepActiving();
  43. /**
  44. * 上报TARS的编译版本
  45. * @param version
  46. */
  47. void reportVersion(const string &version);
  48. protected:
  49. /**
  50. * 通信器
  51. */
  52. CommunicatorPtr _comm;
  53. /**
  54. * Node
  55. */
  56. ServerFPrx _nodePrx;
  57. /**
  58. * 信息
  59. */
  60. ServerInfo _si;
  61. set<string> _adapterSet;
  62. };
  63. }
  64. #endif