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