00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 #pragma once 00012 00013 #include <opc/ua/services/services.h> 00014 00015 namespace OpcUa 00016 { 00017 namespace Server 00018 { 00019 00020 class ServicesRegistry : private Common::Interface 00021 { 00022 public: 00023 DEFINE_CLASS_POINTERS(ServicesRegistry); 00024 00025 public: 00026 virtual std::shared_ptr<OpcUa::Services> GetServer() const = 0; 00027 00028 virtual void RegisterEndpointsServices(OpcUa::EndpointServices::SharedPtr endpoints) = 0; 00029 virtual void UnregisterEndpointsServices() = 0; 00030 00031 virtual void RegisterViewServices(OpcUa::ViewServices::SharedPtr views) = 0; 00032 virtual void UnregisterViewServices() = 0; 00033 00034 virtual void RegisterAttributeServices(OpcUa::AttributeServices::SharedPtr attributes) = 0; 00035 virtual void UnregisterAttributeServices() = 0; 00036 00037 virtual void RegisterMethodServices(MethodServices::SharedPtr method) = 0; 00038 virtual void UnregisterMethodServices() = 0; 00039 00040 virtual void RegisterNodeManagementServices(OpcUa::NodeManagementServices::SharedPtr attributes) = 0; 00041 virtual void UnregisterNodeManagementServices() = 0; 00042 00043 virtual void RegisterSubscriptionServices(OpcUa::SubscriptionServices::SharedPtr attributes) = 0; 00044 virtual void UnregisterSubscriptionServices() = 0; 00045 }; 00046 00047 ServicesRegistry::UniquePtr CreateServicesRegistry(); 00048 00049 } 00050 } // namespace OpcUa 00051