Salome HOME
PR: merge from branch BR_UnitTests tag mergeto_trunk_17oct05
[modules/kernel.git] / src / SALOMEDS / SALOMEDS_UseCaseIterator.cxx
1 //  File   : SALOMEDS_UseCaseIterator.cxx
2 //  Author : Sergey RUIN
3 //  Module : SALOME
4
5
6
7 #include "SALOMEDS_UseCaseIterator.hxx"
8 #include "SALOMEDS_SObject.hxx"
9
10 using namespace std; 
11
12 SALOMEDS_UseCaseIterator::SALOMEDS_UseCaseIterator(const Handle(SALOMEDSImpl_UseCaseIterator)& theIterator)
13 {
14   _isLocal = true;
15   _local_impl = theIterator;
16   _corba_impl = SALOMEDS::UseCaseIterator::_nil();
17 }
18
19 SALOMEDS_UseCaseIterator::SALOMEDS_UseCaseIterator(SALOMEDS::UseCaseIterator_ptr theIterator)
20 {
21   _isLocal = false;
22   _local_impl = NULL;
23   _corba_impl = SALOMEDS::UseCaseIterator::_duplicate(theIterator);
24 }
25
26 SALOMEDS_UseCaseIterator::~SALOMEDS_UseCaseIterator()
27 {
28   if(!_isLocal) _corba_impl->Destroy();    
29 }
30
31 void SALOMEDS_UseCaseIterator::Init(bool theAllLevels)
32 {
33   if(_isLocal) _local_impl->Init(theAllLevels);
34   else _corba_impl->Init(theAllLevels);
35 }
36
37 bool SALOMEDS_UseCaseIterator::More()
38 {
39   bool ret;
40   if(_isLocal) ret = _local_impl->More();
41   else ret = _corba_impl->More();
42   return ret;
43 }
44
45 void SALOMEDS_UseCaseIterator::Next()
46 {
47   if(_isLocal) _local_impl->Next();
48   else _corba_impl->Next();
49 }
50
51 _PTR(SObject) SALOMEDS_UseCaseIterator::Value()
52 {
53   SALOMEDS_SObject* aSO;
54   if(_isLocal) aSO = new SALOMEDS_SObject(_local_impl->Value());
55   else aSO = new SALOMEDS_SObject(_corba_impl->Value());
56   return _PTR(SObject)(aSO);
57 }