Salome HOME
6cbb18540bdaf423b664b20b0ff34805d02e169a
[modules/kernel.git] / src / SALOMEDSImpl / SALOMEDSImpl_ChildIterator.hxx
1 //  File   : SALOMEDSImpl_ChildIterator.hxx
2 //  Author : Sergey RUIN
3 //  Module : SALOME
4
5 #ifndef __SALOMEDSImpl_CHILDITERATOR_H__
6 #define __SALOMEDSImpl_CHILDITERATOR_H__
7
8 //Handle definition
9 #include <Handle_MMgt_TShared.hxx>
10 #include <Standard_DefineHandle.hxx>
11 DEFINE_STANDARD_HANDLE( SALOMEDSImpl_ChildIterator, MMgt_TShared )
12
13 #include "SALOMEDSImpl_SObject.hxx"
14 #include "TDF_ChildIterator.hxx"
15 #include "TDF_Label.hxx"
16
17 class SALOMEDSImpl_ChildIterator: public MMgt_TShared 
18 {
19 private:
20   TDF_ChildIterator _it;
21   Handle(SALOMEDSImpl_SObject) _so;
22
23 public:
24
25   Standard_EXPORT SALOMEDSImpl_ChildIterator(const Handle(SALOMEDSImpl_SObject)& theSO);
26   Standard_EXPORT SALOMEDSImpl_ChildIterator(const TDF_Label& theLabel);
27   Standard_EXPORT ~SALOMEDSImpl_ChildIterator() {};
28
29   Standard_EXPORT virtual void Init();
30   Standard_EXPORT virtual void Init(const TDF_Label& theLabel);
31   Standard_EXPORT virtual void InitEx(bool theAllLevels);
32   Standard_EXPORT virtual void InitEx(const TDF_Label& theLabel, bool theAllLevels);
33   Standard_EXPORT virtual bool More();
34   Standard_EXPORT virtual void Next();
35   Standard_EXPORT virtual Handle(SALOMEDSImpl_SObject) Value();
36   Standard_EXPORT virtual TDF_Label Label();
37
38 public:
39   DEFINE_STANDARD_RTTI( SALOMEDSImpl_SObject )
40 };
41 #endif