#pragma once #include using namespace std::string_literals; #include "String.DString.hpp" using namespace eSTR::Literals; #ifndef _AnyServer_EXPORTS #define _AnyServer_API _declspec(dllimport) #else #define _AnyServer_API _declspec(dllexport) #endif #ifndef _AnyServer_EXPORTS #ifdef _WIN64 #ifdef _DEBUG #pragma comment (lib, "ECOM.Utility.AnyServer64D.lib") #else #pragma comment (lib, "ECOM.Utility.AnyServer64.lib") #endif #else // X86 #ifdef _DEBUG #pragma comment (lib, "ECOM.Utility.AnyServerD.lib") #else #pragma comment (lib, "ECOM.Utility.AnyServer.lib") #endif #endif #endif // _AnyServer_EXPORTS namespace ECOM::Utility { //----------------------------------------------------------------------------- // AnyServer // 所有 Server 的基本类 // 一般来说, Name 仅用于日志,追踪等 //----------------------------------------------------------------------------- class _AnyServer_API AnyServer { public: AnyServer (CV_String Name) : m_Name {Name} { } AnyServer (const eSTR::DString Name) : m_Name {Name} { } virtual ~AnyServer () = default; public: virtual bool Prepare () = 0; virtual void Quit () = 0; virtual bool Start () = 0; virtual void Stop () = 0; const eSTR::DString & GetServerName () const { return m_Name; } protected: eSTR::DString m_Name; }; }