Version: 9.16.0
CppComponent.hxx
Go to the documentation of this file.
1// Copyright (C) 2006-2026 CEA, EDF
2//
3// This library is free software; you can redistribute it and/or
4// modify it under the terms of the GNU Lesser General Public
5// License as published by the Free Software Foundation; either
6// version 2.1 of the License, or (at your option) any later version.
7//
8// This library is distributed in the hope that it will be useful,
9// but WITHOUT ANY WARRANTY; without even the implied warranty of
10// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11// Lesser General Public License for more details.
12//
13// You should have received a copy of the GNU Lesser General Public
14// License along with this library; if not, write to the Free Software
15// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16//
17// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18//
19
20#ifndef __YACS_CppCOMPONENT__
21#define __YACS_CppCOMPONENT__
22
23#include <string>
24#include "ComponentInstance.hxx"
26
27namespace YACS
28{
29 namespace ENGINE
30 {
31
32 class Any;
33
34 struct returnInfo {
35 int code;
36 std::string message;
37 };
38
39 typedef void * (*InitFunction)();
40 typedef void (*RunFunction) (void *, const char *, int, int, Any **, Any **, returnInfo *);
41 typedef void (*TerminateFunction)(void **);
42 typedef void (*PingFunction) ();
43
45 public:
46
47 CppComponent(const std::string & name);
49 const std::string & name)
50 : __obj(obj), __run(r), __terminate(t), ComponentInstance(name) {}
51 CppComponent(const CppComponent& other);
52 virtual ~CppComponent();
53
54 void run(const char * service, int nbIn, int nbOut,
55 Any ** argIn, Any ** argOut);
56
57 static const char KIND[];
58 virtual std::string getKind() const;
59 virtual std::string getKindForNode() const;
60 virtual void load(Task *askingNode);
61 virtual void unload(Task *askingNode);
62 virtual bool isLoaded(Task *askingNode) const;
63 virtual ServiceNode* createNode(const std::string& name);
64 virtual YACS::ENGINE::ComponentInstance* clone() const;
65 virtual YACS::ENGINE::ComponentInstance* cloneAlways() const;
66
67 protected:
68
69 void * __obj;
72 };
73 };
74};
75
76#endif
#define YACSRUNTIMESALOME_EXPORT
: Interface for management of storage of data formated dynamically in its TypeCode....
Definition: Any.hxx:79
Base class for all component instances.
YACS::ENGINE::TerminateFunction __terminate
CppComponent(void *obj, RunFunction r, TerminateFunction t, const std::string &name)
YACS::ENGINE::RunFunction __run
Class for calculation node associated with a component service.
Definition: ServiceNode.hxx:35
void(* RunFunction)(void *, const char *, int, int, Any **, Any **, returnInfo *)
void(* PingFunction)()
void(* TerminateFunction)(void **)
void * run(void *obj)
Definition: yacs_clt.cxx:54