00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 #pragma once 00012 00013 #include <opc/common/class_pointers.h> 00014 #include <opc/ua/protocol/session.h> 00015 #include <opc/ua/protocol/secure_channel.h> 00016 #include <opc/ua/services/attributes.h> 00017 #include <opc/ua/services/endpoints.h> 00018 #include <opc/ua/services/method.h> 00019 #include <opc/ua/services/node_management.h> 00020 #include <opc/ua/services/subscriptions.h> 00021 #include <opc/ua/services/view.h> 00022 00023 #include <opc/ua/protocol/protocol.h> 00024 00025 #include <memory> 00026 #include <vector> 00027 00028 namespace OpcUa 00029 { 00030 00031 struct RemoteSessionParameters 00032 { 00033 ApplicationDescription ClientDescription; 00034 std::vector<uint8_t> ClientCertificate; 00035 std::string SessionName; 00036 std::string ServerURI; 00037 std::string EndpointUrl; 00038 Duration Timeout; 00039 }; 00040 00041 class Services : private Common::Interface 00042 { 00043 public: 00044 DEFINE_CLASS_POINTERS(Services); 00045 00046 public: 00047 virtual OpenSecureChannelResponse OpenSecureChannel(const OpenSecureChannelParameters& parameters) = 0; 00048 virtual void CloseSecureChannel(uint32_t channelId) = 0; 00049 virtual CreateSessionResponse CreateSession(const RemoteSessionParameters& parameters) = 0; 00050 virtual ActivateSessionResponse ActivateSession(const ActivateSessionParameters &session_parameters) = 0; 00051 virtual CloseSessionResponse CloseSession() = 0; 00052 virtual void AbortSession() = 0; 00053 virtual DeleteNodesResponse DeleteNodes(const std::vector<OpcUa::DeleteNodesItem> &nodesToDelete) = 0; 00054 00055 virtual AttributeServices::SharedPtr Attributes() = 0; 00056 virtual EndpointServices::SharedPtr Endpoints() = 0; 00057 virtual MethodServices::SharedPtr Method() = 0; 00058 virtual NodeManagementServices::SharedPtr NodeManagement() = 0; 00059 virtual SubscriptionServices::SharedPtr Subscriptions() = 0; 00060 virtual ViewServices::SharedPtr Views() = 0; 00061 }; 00062 00063 }