1 #ifndef __SERVICENODE_HXX__
2 #define __SERVICENODE_HXX__
4 #include "ElementaryNode.hxx"
11 class ComponentInstance;
13 /*! \brief Class for calculation node associated with a component service
20 class ServiceNode: public ElementaryNode
23 ServiceNode(const std::string& name);
24 ServiceNode(const ServiceNode& other, ComposedNode *father);
25 void performDuplicationOfPlacement(const Node& other);
28 virtual bool isDeployable() const;
29 virtual void setComponent(ComponentInstance* compo) throw(Exception);
30 virtual ComponentInstance *getComponent();
31 virtual void setRef(const std::string& ref);
32 virtual std::string getRef();
33 virtual void setMethod(const std::string& method){ _method=method; }
34 virtual std::string getMethod(){return _method;}
35 virtual ServiceNode *createNode(const std::string& name) = 0;
36 virtual ~ServiceNode();
37 virtual void accept(Visitor *visitor);
39 //! Return the service node kind
41 * A runtime can provide several implementations of a service node.
42 * Each implementation has a different kind. A ComponentInstance can be
43 * associated to a ServiceNode with the same kind.
45 virtual std::string getKind() const;
46 static const char KIND[];
48 ComponentInstance* _component;