// 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 _TDF_TagSource_HeaderFile
#define _TDF_TagSource_HeaderFile

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

#include <Standard_Integer.hxx>
#include <TDF_Attribute.hxx>
#include <Handle_TDF_Attribute.hxx>
#include <Handle_TDF_RelocationTable.hxx>
class Standard_GUID;
class TDF_Label;
class TDF_Attribute;
class TDF_RelocationTable;


//! This attribute manage   a tag provider   to create
//! child labels of a given one.
class TDF_TagSource : public TDF_Attribute
{

public:

  
  //! class methods
  //! =============
  Standard_EXPORT static  const  Standard_GUID& GetID() ;
  
  //! Find, or create, a  TagSource attribute. the TagSource
  //! attribute is returned.
  Standard_EXPORT static   Handle(TDF_TagSource) Set (const TDF_Label& label) ;
  
  //! Find (or create) a  tagSource attribute located at <L>
  //! and make a new child label.
  //! TagSource methods
  //! =================
  Standard_EXPORT static   TDF_Label NewChild (const TDF_Label& L) ;
  
  Standard_EXPORT TDF_TagSource();
  
  Standard_EXPORT   Standard_Integer NewTag() ;
  
  Standard_EXPORT   TDF_Label NewChild() ;
  
  Standard_EXPORT   Standard_Integer Get()  const;
  
  //! TDF_Attribute methods
  //! =====================
  Standard_EXPORT   void Set (const Standard_Integer T) ;
  
  Standard_EXPORT  const  Standard_GUID& ID()  const;
  
  Standard_EXPORT   void Restore (const Handle(TDF_Attribute)& with) ;
  
  Standard_EXPORT   Handle(TDF_Attribute) NewEmpty()  const;
  
  Standard_EXPORT   void Paste (const Handle(TDF_Attribute)& Into, const Handle(TDF_RelocationTable)& RT)  const;




  DEFINE_STANDARD_RTTI(TDF_TagSource)

protected:




private: 


  Standard_Integer myTag;


};







#endif // _TDF_TagSource_HeaderFile
