Salome HOME
PR: merge from branch BR_UnitTests tag mergeto_trunk_17oct05
[modules/kernel.git] / src / SALOMEDSImpl / SALOMEDSImpl_UseCaseIterator.hxx
1 //  File   : SALOMEDSImpl_UseCaseIterator.hxx
2 //  Author : Sergey RUIN
3 //  Module : SALOME
4
5 #ifndef __SALOMEDSIMPL_USECASEITERATOR_H__
6 #define __SALOMEDSIMPL_USECASEITERATOR_H__
7
8 //Handle definition
9 #include <Handle_MMgt_TShared.hxx>
10 #include <Standard_DefineHandle.hxx>
11 DEFINE_STANDARD_HANDLE( SALOMEDSImpl_UseCaseIterator, MMgt_TShared )
12
13 #include "SALOMEDSImpl_SObject.hxx"
14
15 // Cascade headers
16 #include <TDF_ChildIterator.hxx>
17 #include <SALOMEDSImpl_ChildNodeIterator.hxx>
18 #include <Standard_GUID.hxx>
19
20 class SALOMEDSImpl_UseCaseIterator : public MMgt_TShared 
21 {
22
23 private:
24   Standard_GUID                              _guid;
25   bool                                       _levels;
26   Handle(SALOMEDSImpl_AttributeTreeNode)     _node;
27   SALOMEDSImpl_ChildNodeIterator             _it;
28
29 public:
30
31   //! standard constructor  
32   SALOMEDSImpl_UseCaseIterator(const TDF_Label& theLabel, 
33                                const Standard_GUID& theGUID, 
34                                const bool allLevels);
35   
36   //! standard destructor
37   ~SALOMEDSImpl_UseCaseIterator();
38   
39   virtual void Init(bool);
40   virtual bool More();
41   virtual void Next();
42   virtual Handle(SALOMEDSImpl_SObject) Value();
43
44 public:
45   DEFINE_STANDARD_RTTI( SALOMEDSImpl_UseCaseIterator )
46 };
47 #endif