Branch data Line data Source code
1 : : #ifndef LASSO_HPP
2 : : #define LASSO_HPP
3 : :
4 : : #include "iRel.h"
5 : :
6 : : #include <set>
7 : : #include <vector>
8 : : #include <cstring>
9 : :
10 : : class AssocPair;
11 : :
12 : : class Lasso
13 : : {
14 : : public:
15 : 4 : Lasso() : lastErrorType(iBase_SUCCESS)
16 : : {
17 : 4 : lastErrorDescription[0] = '\0';
18 : 4 : }
19 : :
20 : : virtual ~Lasso();
21 : :
22 : : //! find a pair equivalent to these ifaces, passed as pointer to
23 : : //! SIDL interface or interface instance
24 : : AssocPair *find_pair(void *iface0, void *iface1,
25 : : bool *switched = NULL);
26 : :
27 : : AssocPair *find_pair(iRel_IfaceType type1, iRel_IfaceType type2,
28 : : bool *switched = NULL);
29 : :
30 : : void find_pairs(void *iface, std::vector<AssocPair*> &iface_pairs);
31 : :
32 : : int insert_pair(AssocPair *this_pair);
33 : : int erase_pair(AssocPair *this_pair);
34 : :
35 : : inline int set_last_error(int, const char*);
36 : :
37 : : int lastErrorType;
38 : : char lastErrorDescription[120];
39 : : private:
40 : : std::set<AssocPair*> assocPairs;
41 : : };
42 : :
43 : 544 : static inline Lasso *lasso_instance(iRel_Instance instance)
44 : : {
45 : 544 : return reinterpret_cast<Lasso*>(instance);
46 : : }
47 : : #define LASSOI lasso_instance(instance)
48 : :
49 : 529 : int Lasso::set_last_error(int code, const char* msg)
50 : : {
51 : 529 : std::strncpy( lastErrorDescription, msg, sizeof(lastErrorDescription) );
52 : 529 : lastErrorDescription[sizeof(lastErrorDescription)-1] = '\0';
53 : 529 : return (lastErrorType = static_cast<iBase_ErrorType>(code));
54 : : }
55 : :
56 : : #endif // #ifndef LASSO_HPP
|