1 #ifndef __YACS_CppCOMPONENT__
2 #define __YACS_CppCOMPONENT__
6 #include "ComponentInstance.hxx"
18 typedef void * (*InitFunction)();
19 typedef void (*RunFunction) (void *, const char *, int, int, Any **, Any **, returnInfo *);
20 typedef void (*TerminateFunction)(void **);
21 typedef void (*PingFunction) ();
23 class CppComponent : public ComponentInstance {
26 CppComponent(const std::string & name);
27 CppComponent(void * obj, RunFunction r, TerminateFunction t,
28 const std::string & name)
29 : __obj(obj), __run(r), __terminate(t), ComponentInstance(name) {}
30 CppComponent(const CppComponent& other);
31 virtual ~CppComponent();
33 void run(const char * service, int nbIn, int nbOut,
34 Any ** argIn, Any ** argOut) throw (YACS::Exception);
36 static const char KIND[];
37 virtual std::string getKind() const;
39 virtual void unload();
40 virtual bool isLoaded();
41 virtual ServiceNode* createNode(const std::string& name);
42 virtual YACS::ENGINE::ComponentInstance* clone() const;
47 YACS::ENGINE::RunFunction __run;
48 YACS::ENGINE::TerminateFunction __terminate;