1 // File : SALOMEDS_SComponentIterator.cxx
2 // Author : Sergey RUIN
5 #include "SALOMEDS_SComponentIterator.hxx"
6 #include "SALOMEDSImpl_SComponent.hxx"
7 #include "SALOMEDS_SComponent.hxx"
9 SALOMEDS_SComponentIterator::SALOMEDS_SComponentIterator(const SALOMEDSImpl_SComponentIterator& theIterator)
10 :_local_impl(theIterator)
13 _corba_impl = SALOMEDS::SComponentIterator::_nil();
16 SALOMEDS_SComponentIterator::SALOMEDS_SComponentIterator(SALOMEDS::SComponentIterator_ptr theIterator)
19 _corba_impl = SALOMEDS::SComponentIterator::_duplicate(theIterator);
22 SALOMEDS_SComponentIterator::~SALOMEDS_SComponentIterator()
24 if(!_isLocal) _corba_impl->Destroy();
27 void SALOMEDS_SComponentIterator::Init()
29 if(_isLocal) _local_impl.Init();
30 else _corba_impl->Init();
33 bool SALOMEDS_SComponentIterator::More()
36 if(_isLocal) ret = _local_impl.More();
37 else ret = _corba_impl->More();
41 void SALOMEDS_SComponentIterator::Next()
43 if(_isLocal) _local_impl.Next();
44 else _corba_impl->Next();
47 _PTR(SComponent) SALOMEDS_SComponentIterator::Value()
49 SALOMEDSClient_SComponent* aSCO = NULL;
50 if(_isLocal) aSCO = new SALOMEDS_SComponent(_local_impl.Value());
51 else aSCO = new SALOMEDS_SComponent(_corba_impl->Value());
52 return _PTR(SComponent)(aSCO);