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

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

#include <Handle_Interface_InterfaceModel.hxx>
#include <TColStd_Array1OfTransient.hxx>
#include <Interface_CopyControl.hxx>
#include <Handle_Standard_Transient.hxx>
#include <Standard_Boolean.hxx>
class Interface_InterfaceModel;
class Interface_InterfaceError;
class Standard_Transient;


//! Manages a Map for the need of single Transfers, such as Copies
//! In such transfer, Starting Entities are read from a unique
//! Starting Model, and each transferred Entity is bound to one
//! and only one Result, which cannot be changed later.
class Interface_CopyMap : public Interface_CopyControl
{

public:

  
  //! Creates a CopyMap adapted to work from a Model
  Standard_EXPORT Interface_CopyMap(const Handle(Interface_InterfaceModel)& amodel);
  
  //! Clears Transfer List. Gets Ready to begin another Transfer
  Standard_EXPORT   void Clear() ;
  
  //! Returns the InterfaceModel used at Creation time
  Standard_EXPORT   Handle(Interface_InterfaceModel) Model()  const;
  
  //! Binds a Starting Entity identified by its Number <num> in the
  //! Starting Model, to a Result of Transfer <res>
  Standard_EXPORT   void Bind (const Handle(Standard_Transient)& ent, const Handle(Standard_Transient)& res) ;
  
  //! Search for the result of a Starting Object (i.e. an Entity,
  //! identified by its Number <num> in the Starting Model)
  //! Returns True  if a  Result is Bound (and fills <res>)
  //! Returns False if no result is Bound (and nullifies <res>)
  Standard_EXPORT   Standard_Boolean Search (const Handle(Standard_Transient)& ent, Handle(Standard_Transient)& res)  const;




  DEFINE_STANDARD_RTTI(Interface_CopyMap)

protected:




private: 


  Handle(Interface_InterfaceModel) themod;
  TColStd_Array1OfTransient theres;


};







#endif // _Interface_CopyMap_HeaderFile
