Salome HOME
05507edab6762f82219ede3b69d64957eff2a9ad
[modules/kernel.git] / src / SALOMEDS / SALOMEDS_UseCaseIterator_i.cxx
1 //  SALOME SALOMEDS : data structure of SALOME and sources of Salome data server 
2 //
3 //  Copyright (C) 2003  CEA/DEN, EDF R&D
4 //
5 //
6 //
7 //  File   : SALOMEDS_UseCaseIterator_i.cxx
8 //  Author : Yves FRICAUD
9 //  Module : SALOME
10
11 #include "SALOMEDS_UseCaseIterator_i.hxx"
12 #include "SALOMEDS_SObject_i.hxx"
13 #include "utilities.h"
14 using namespace std;
15
16 //============================================================================
17 /*! Function : constructor
18  *  Purpose  :
19  */
20 //============================================================================
21 SALOMEDS_UseCaseIterator_i::SALOMEDS_UseCaseIterator_i(const TDF_Label& theLabel, 
22                                                        const Standard_GUID& theGUID,
23                                                        const Standard_Boolean allLevels,
24                                                        CORBA::ORB_ptr orb)
25 :_guid(theGUID), _levels(allLevels)
26 {
27   _orb = CORBA::ORB::_duplicate(orb);
28
29   if(theLabel.FindAttribute(_guid, _node)) {
30     _it.Initialize (_node, _levels);
31   }
32 }
33
34 //============================================================================
35 /*! Function : destructor
36  *  Purpose  :
37  */
38 //============================================================================
39 SALOMEDS_UseCaseIterator_i::~SALOMEDS_UseCaseIterator_i()
40 {
41 }
42
43 //============================================================================
44 /*! Function :Init
45  * 
46  */
47 //============================================================================
48 void SALOMEDS_UseCaseIterator_i::Init(CORBA::Boolean allLevels)
49
50   _it.Initialize (_node, allLevels);
51 }
52
53 //============================================================================
54 /*! Function : More
55  * 
56  */
57 //============================================================================
58 CORBA::Boolean SALOMEDS_UseCaseIterator_i::More()
59 {
60   return _it.More();
61 }
62
63  //============================================================================
64 /*! Function : Next
65  * 
66  */
67 //============================================================================
68 void SALOMEDS_UseCaseIterator_i::Next()
69 {
70   _it.Next();
71 }
72
73
74 //============================================================================
75 /*! Function :
76  *  Purpose  :
77  */
78 //============================================================================
79
80 SALOMEDS::SObject_ptr SALOMEDS_UseCaseIterator_i::Value()
81 {
82   TDF_Label L = _it.Value()->Label();
83   SALOMEDS_SObject_i *  so_servant = new SALOMEDS_SObject_i (L,_orb);
84   SALOMEDS::SObject_var so = SALOMEDS::SObject::_narrow(so_servant->_this());
85   return so._retn();
86 }
87