// This file is generated by WOK (CPPExt).
// Please do not edit this file; modify original file instead.
// The copyright and license terms as defined for the original file apply to 
// this header file considered to be the "object code" form of the original source.

#ifndef _CDF_Directory_HeaderFile
#define _CDF_Directory_HeaderFile

#include <Standard.hxx>
#include <Standard_DefineHandle.hxx>
#include <Handle_CDF_Directory.hxx>

#include <CDM_ListOfDocument.hxx>
#include <Standard_Transient.hxx>
#include <Handle_CDM_Document.hxx>
#include <Standard_Boolean.hxx>
#include <Standard_Integer.hxx>
class Standard_NoSuchObject;
class CDF_DirectoryIterator;
class CDM_Document;
class CDM_ListOfDocument;


//! A directory is a collection of documents. There is only one instance
//! of a given document in a directory.
//! put.
class CDF_Directory : public Standard_Transient
{

public:

  
  //! Creates an empty directory.
  Standard_EXPORT CDF_Directory();
  
  //! adds a document into the directory.
  Standard_EXPORT   void Add (const Handle(CDM_Document)& aDocument) ;
  
  //! removes the document.
  Standard_EXPORT   void Remove (const Handle(CDM_Document)& aDocument) ;
  
  //! Returns true if the document aDocument is in the directory
  Standard_EXPORT   Standard_Boolean Contains (const Handle(CDM_Document)& aDocument)  const;
  
  //! returns the last document (if any) which has been added
  //! in the directory.
  Standard_EXPORT   Handle(CDM_Document) Last() ;
  
  //! returns the number of documents of the directory.
  Standard_EXPORT   Standard_Integer Length()  const;
  
  //! returns true if the directory is empty.
  Standard_EXPORT   Standard_Boolean IsEmpty()  const;


friend class CDF_DirectoryIterator;


  DEFINE_STANDARD_RTTI(CDF_Directory)

protected:




private: 

  
  Standard_EXPORT  const  CDM_ListOfDocument& List()  const;

  CDM_ListOfDocument myDocuments;


};







#endif // _CDF_Directory_HeaderFile
