Branch data Line data Source code
1 : : #include "Lasso.hpp"
2 : : #include "AssocPair.hpp"
3 : :
4 : 4 : Lasso::~Lasso()
5 : : {
6 [ + - ][ + - ]: 22 : for (std::set<AssocPair*>::iterator i = assocPairs.begin();
[ + - ][ + + ]
7 [ + - ]: 11 : i != assocPairs.end(); ++i)
8 [ + - ][ + - ]: 7 : delete *i;
[ + - ]
9 [ - + ]: 8 : }
10 : :
11 : : //! find a pair equivalent to these ifaces, passed as pointer to
12 : : //! SIDL interface or interface instance
13 : 0 : AssocPair *Lasso::find_pair(void *iface0, void *iface1, bool *switched)
14 : : {
15 [ # # ]: 0 : for (std::set<AssocPair*>::iterator i = assocPairs.begin();
16 : 0 : i != assocPairs.end(); ++i) {
17 [ # # ]: 0 : if ((*i)->equivalent(iface0, iface1, switched)) return *i;
18 : : }
19 : :
20 : 0 : return NULL;
21 : : }
22 : :
23 : : //! find a pair with the right types
24 : 0 : AssocPair *Lasso::find_pair(iRel_IfaceType type1, iRel_IfaceType type2,
25 : : bool *switched)
26 : : {
27 [ # # ]: 0 : for (std::set<AssocPair*>::iterator i = assocPairs.begin();
28 : 0 : i != assocPairs.end(); ++i) {
29 [ # # ]: 0 : if ((*i)->equivalent(type1, type2, switched)) return *i;
30 : : }
31 : :
32 : 0 : return NULL;
33 : : }
34 : :
35 : 4 : void Lasso::find_pairs(void *iface, std::vector<AssocPair*> &iface_pairs)
36 : : {
37 [ + + ]: 16 : for (std::set<AssocPair*>::iterator i = assocPairs.begin();
38 : 8 : i != assocPairs.end(); ++i) {
39 [ + - ]: 4 : if ((*i)->contains(iface)) iface_pairs.push_back(*i);
40 : : }
41 : 4 : }
42 : :
43 : 7 : int Lasso::insert_pair(AssocPair *this_pair)
44 : : {
45 : 7 : assocPairs.insert(this_pair);
46 : 7 : return iBase_SUCCESS;
47 : : }
48 : :
49 : 0 : int Lasso::erase_pair(AssocPair *this_pair)
50 : : {
51 [ # # ]: 0 : if (assocPairs.erase(this_pair) == 0)
52 : 0 : return iBase_FAILURE;
53 : :
54 : : // If the pair was removed, then delete it too
55 [ # # ]: 0 : delete this_pair;
56 : 0 : return iBase_SUCCESS;
57 : : }
|