Utility.AnyServer.hpp 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #pragma once
  2. #include <string>
  3. using namespace std::string_literals;
  4. #include "String.DString.hpp"
  5. using namespace eSTR::Literals;
  6. #ifndef _AnyServer_EXPORTS
  7. #define _AnyServer_API _declspec(dllimport)
  8. #else
  9. #define _AnyServer_API _declspec(dllexport)
  10. #endif
  11. #ifndef _AnyServer_EXPORTS
  12. #ifdef _WIN64
  13. #ifdef _DEBUG
  14. #pragma comment (lib, "ECOM.Utility.AnyServer64D.lib")
  15. #else
  16. #pragma comment (lib, "ECOM.Utility.AnyServer64.lib")
  17. #endif
  18. #else // X86
  19. #ifdef _DEBUG
  20. #pragma comment (lib, "ECOM.Utility.AnyServerD.lib")
  21. #else
  22. #pragma comment (lib, "ECOM.Utility.AnyServer.lib")
  23. #endif
  24. #endif
  25. #endif // _AnyServer_EXPORTS
  26. namespace ECOM::Utility
  27. {
  28. //-----------------------------------------------------------------------------
  29. // AnyServer
  30. // 所有 Server 的基本类
  31. // 一般来说, Name 仅用于日志,追踪等
  32. //-----------------------------------------------------------------------------
  33. class _AnyServer_API AnyServer
  34. {
  35. public:
  36. AnyServer (CV_String Name) : m_Name {Name} { }
  37. AnyServer (const eSTR::DString Name) : m_Name {Name} { }
  38. virtual ~AnyServer () = default;
  39. public:
  40. virtual bool Prepare () = 0;
  41. virtual void Quit () = 0;
  42. virtual bool Start () = 0;
  43. virtual void Stop () = 0;
  44. const eSTR::DString & GetServerName () const { return m_Name; }
  45. protected:
  46. eSTR::DString m_Name;
  47. };
  48. }