30 namespace RobotRaconteur
33 class ROBOTRACONTEUR_CORE_API StructureStub;
34 class ROBOTRACONTEUR_CORE_API ServiceStub;
35 class ROBOTRACONTEUR_CORE_API ServiceSkel;
37 class ROBOTRACONTEUR_CORE_API ClientContext;
38 class ROBOTRACONTEUR_CORE_API ServerContext;
40 class ROBOTRACONTEUR_CORE_API RobotRaconteurNode;
59 RR_SHARED_PTR<RobotRaconteurNode> GetNode();
61 void SetNode(
const RR_SHARED_PTR<RobotRaconteurNode>& node);
79 virtual RR_SHARED_PTR<StructureStub> FindStructureStub(boost::string_ref s) = 0;
81 virtual RR_INTRUSIVE_PTR<MessageElementNestedElementList> PackStructure(
82 const RR_INTRUSIVE_PTR<RRStructure>& structin) = 0;
84 virtual RR_INTRUSIVE_PTR<RRValue> UnpackStructure(
85 const RR_INTRUSIVE_PTR<MessageElementNestedElementList>& mstructin) = 0;
87 virtual RR_INTRUSIVE_PTR<MessageElementNestedElementList> PackPodArray(
88 const RR_INTRUSIVE_PTR<RRPodBaseArray>& structure) = 0;
90 virtual RR_INTRUSIVE_PTR<RRPodBaseArray> UnpackPodArray(
91 const RR_INTRUSIVE_PTR<MessageElementNestedElementList>& structure) = 0;
93 virtual RR_INTRUSIVE_PTR<MessageElementNestedElementList> PackPodMultiDimArray(
94 const RR_INTRUSIVE_PTR<RRPodBaseMultiDimArray>& structure) = 0;
96 virtual RR_INTRUSIVE_PTR<RRPodBaseMultiDimArray> UnpackPodMultiDimArray(
97 const RR_INTRUSIVE_PTR<MessageElementNestedElementList>& structure) = 0;
99 virtual RR_INTRUSIVE_PTR<MessageElementNestedElementList> PackNamedArray(
100 const RR_INTRUSIVE_PTR<RRNamedBaseArray>& structure) = 0;
102 virtual RR_INTRUSIVE_PTR<RRNamedBaseArray> UnpackNamedArray(
103 const RR_INTRUSIVE_PTR<MessageElementNestedElementList>& structure) = 0;
105 virtual RR_INTRUSIVE_PTR<MessageElementNestedElementList> PackNamedMultiDimArray(
106 const RR_INTRUSIVE_PTR<RRNamedBaseMultiDimArray>& structure) = 0;
108 virtual RR_INTRUSIVE_PTR<RRNamedBaseMultiDimArray> UnpackNamedMultiDimArray(
109 const RR_INTRUSIVE_PTR<MessageElementNestedElementList>& structure) = 0;
111 virtual RR_SHARED_PTR<ServiceStub> CreateStub(boost::string_ref objecttype, boost::string_ref path,
112 const RR_SHARED_PTR<ClientContext>& context) = 0;
114 virtual RR_SHARED_PTR<ServiceSkel> CreateSkel(boost::string_ref objecttype, boost::string_ref path,
115 const RR_SHARED_PTR<RRObject>& obj,
116 const RR_SHARED_PTR<ServerContext>& context) = 0;
125 virtual std::string RemovePath(boost::string_ref path);
129 virtual RR_SHARED_PTR<RobotRaconteurException> DownCastException(
130 const RR_SHARED_PTR<RobotRaconteurException>& exp) = 0;
133 RR_SHARED_PTR<ServiceDefinition> sdef;
134 RR_WEAK_PTR<RobotRaconteurNode> node;
172 #ifndef ROBOTRACONTEUR_NO_CXX11_TEMPLATE_ALIASES
boost::shared_ptr< DynamicServiceFactory > DynamicServiceFactoryPtr
Convenience alias for DynamicServiceFactory shared_ptr.
Definition: ServiceFactory.h:176
boost::shared_ptr< ServiceFactory > ServiceFactoryPtr
Convenience alias for ServiceFactory shared_ptr.
Definition: ServiceFactory.h:174
Dynamic service factory base class.
Definition: ServiceFactory.h:146
virtual std::vector< boost::shared_ptr< ServiceFactory > > CreateServiceFactories(const std::vector< std::string > &def)=0
Override to return collection of service factories from a collection of service definition strings.
virtual boost::shared_ptr< ServiceFactory > CreateServiceFactory(boost::string_ref def)=0
Override to return service factory from a service definition string.
Base class for Robot Raconteur exceptions.
Definition: Error.h:50
Base class for service factories.
Definition: ServiceFactory.h:56
virtual std::string GetServiceName()=0
Returns the name of the service.
virtual std::string DefString()=0
Return the service definition string used to generate the service factory.
virtual boost::shared_ptr< ServiceDefinition > ServiceDef()
Return the parsed ServiceDefinition.