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

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

#include <TPrsStd_DataMapOfGUIDDriver.hxx>
#include <MMgt_TShared.hxx>
#include <Standard_Boolean.hxx>
#include <Handle_TPrsStd_Driver.hxx>
class Standard_GUID;
class TPrsStd_Driver;


//! This class is   a  container to record  (AddDriver)
//! binding between  GUID and  TPrsStd_Driver.
//! You create a new instance of TPrsStd_Driver
//! and use the method AddDriver to load it into the driver table. the method
class TPrsStd_DriverTable : public MMgt_TShared
{

public:

  
  //! Returns the static table.
  //! If it does not exist, creates it and fills it with standard drivers.
  Standard_EXPORT static   Handle(TPrsStd_DriverTable) Get() ;
  
  //! Default constructor
  Standard_EXPORT TPrsStd_DriverTable();
  
  //! Fills the table with standard drivers
  Standard_EXPORT   void InitStandardDrivers() ;
  
  //! Returns true if the driver has been added successfully to the driver table.
  Standard_EXPORT   Standard_Boolean AddDriver (const Standard_GUID& guid, const Handle(TPrsStd_Driver)& driver) ;
  
  //! Returns true if the driver was found.
  Standard_EXPORT   Standard_Boolean FindDriver (const Standard_GUID& guid, Handle(TPrsStd_Driver)& driver)  const;
  

  //! Removes a driver with the given GUID.
  //! Returns true if the driver has been removed successfully.
  Standard_EXPORT   Standard_Boolean RemoveDriver (const Standard_GUID& guid) ;
  
  //! Removes all drivers. Returns
  //! true if the driver has been removed successfully.
  //! If this method is used, the InitStandardDrivers method should be
  //! called to fill the table with standard drivers.
  Standard_EXPORT   void Clear() ;




  DEFINE_STANDARD_RTTI(TPrsStd_DriverTable)

protected:




private: 


  TPrsStd_DataMapOfGUIDDriver myDrivers;


};







#endif // _TPrsStd_DriverTable_HeaderFile
