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

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

#include <TColStd_MapOfInteger.hxx>
#include <TFunction_ExecutionStatus.hxx>
#include <TDF_Attribute.hxx>
#include <Standard_Boolean.hxx>
#include <Standard_Integer.hxx>
#include <Handle_TDF_Attribute.hxx>
#include <Handle_TDF_RelocationTable.hxx>
#include <Handle_TDF_DataSet.hxx>
#include <Standard_OStream.hxx>
class TDF_Label;
class Standard_GUID;
class TColStd_MapOfInteger;
class TDF_Attribute;
class TDF_RelocationTable;
class TDF_DataSet;


//! Provides links between functions.
class TFunction_GraphNode : public TDF_Attribute
{

public:

  
  //! Static methods
  //! ==============
  //! Finds or Creates a graph node attribute at the label <L>.
  //! Returns the attribute.
  Standard_EXPORT static   Handle(TFunction_GraphNode) Set (const TDF_Label& L) ;
  
  //! Returns the GUID for GraphNode attribute.
  //! Instant methods
  //! ===============
  //! Constructor (empty).
  Standard_EXPORT static  const  Standard_GUID& GetID() ;
  
  Standard_EXPORT TFunction_GraphNode();
  
  //! Defines a reference to the function as a previous one.
  Standard_EXPORT   Standard_Boolean AddPrevious (const Standard_Integer funcID) ;
  
  //! Defines a reference to the function as a previous one.
  Standard_EXPORT   Standard_Boolean AddPrevious (const TDF_Label& func) ;
  
  //! Removes a reference to the function as a previous one.
  Standard_EXPORT   Standard_Boolean RemovePrevious (const Standard_Integer funcID) ;
  
  //! Removes a reference to the function as a previous one.
  Standard_EXPORT   Standard_Boolean RemovePrevious (const TDF_Label& func) ;
  
  //! Returns a map of previous functions.
  Standard_EXPORT  const  TColStd_MapOfInteger& GetPrevious()  const;
  
  //! Clears a map of previous functions.
  Standard_EXPORT   void RemoveAllPrevious() ;
  
  //! Defines a reference to the function as a next one.
  Standard_EXPORT   Standard_Boolean AddNext (const Standard_Integer funcID) ;
  
  //! Defines a reference to the function as a next one.
  Standard_EXPORT   Standard_Boolean AddNext (const TDF_Label& func) ;
  
  //! Removes a reference to the function as a next one.
  Standard_EXPORT   Standard_Boolean RemoveNext (const Standard_Integer funcID) ;
  
  //! Removes a reference to the function as a next one.
  Standard_EXPORT   Standard_Boolean RemoveNext (const TDF_Label& func) ;
  
  //! Returns a map of next functions.
  Standard_EXPORT  const  TColStd_MapOfInteger& GetNext()  const;
  
  //! Clears a map of next functions.
  Standard_EXPORT   void RemoveAllNext() ;
  
  //! Returns the execution status of the function.
  Standard_EXPORT   TFunction_ExecutionStatus GetStatus()  const;
  
  //! Defines an execution status for a function.
  //! Implementation of Attribute methods
  //! ===================================
  Standard_EXPORT   void SetStatus (const TFunction_ExecutionStatus status) ;
  
  Standard_EXPORT  const  Standard_GUID& ID()  const;
  
  Standard_EXPORT virtual   void Restore (const Handle(TDF_Attribute)& with) ;
  
  Standard_EXPORT virtual   void Paste (const Handle(TDF_Attribute)& into, const Handle(TDF_RelocationTable)& RT)  const;
  
  Standard_EXPORT virtual   Handle(TDF_Attribute) NewEmpty()  const;
  
  Standard_EXPORT virtual   void References (const Handle(TDF_DataSet)& aDataSet)  const;
  
  Standard_EXPORT virtual   Standard_OStream& Dump (Standard_OStream& anOS)  const;




  DEFINE_STANDARD_RTTI(TFunction_GraphNode)

protected:




private: 


  TColStd_MapOfInteger myPrevious;
  TColStd_MapOfInteger myNext;
  TFunction_ExecutionStatus myStatus;


};







#endif // _TFunction_GraphNode_HeaderFile
