// File generated by CPPExt (Transient)
//
//
//                     Copyright (C) 1991 - 2000 by  
//                      Matra Datavision SA.  All rights reserved.
//  
//                     Copyright (C) 2001 - 2004 by
//                     Open CASCADE SA.  All rights reserved.
// 
// This file is part of the Open CASCADE Technology software.
//
// This software may be distributed and/or modified under the terms and
// conditions of the Open CASCADE Public License as defined by Open CASCADE SA
// and appearing in the file LICENSE included in the packaging of this file.
//  
// This software is distributed on an "AS IS" basis, without warranty of any
// kind, and Open CASCADE SA hereby disclaims all such warranties,
// including without limitation, any warranties of merchantability, fitness
// for a particular purpose or non-infringement. Please see the License for
// the specific terms and conditions governing rights and limitations under the
// License.

#ifndef _WOKMake_BuildProcess_HeaderFile
#define _WOKMake_BuildProcess_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Handle_WOKMake_BuildProcess_HeaderFile
#include <Handle_WOKMake_BuildProcess.hxx>
#endif

#ifndef _Handle_WOKernel_UnitGraph_HeaderFile
#include <Handle_WOKernel_UnitGraph.hxx>
#endif
#ifndef _Handle_WOKernel_Locator_HeaderFile
#include <Handle_WOKernel_Locator.hxx>
#endif
#ifndef _Handle_WOKUtils_Shell_HeaderFile
#include <Handle_WOKUtils_Shell.hxx>
#endif
#ifndef _WOKBuilder_MSTranslatorIterator_HeaderFile
#include <WOKBuilder_MSTranslatorIterator.hxx>
#endif
#ifndef _WOKTools_MapOfHAsciiString_HeaderFile
#include <WOKTools_MapOfHAsciiString.hxx>
#endif
#ifndef _WOKMake_IndexedDataMapOfHAsciiStringOfInputFile_HeaderFile
#include <WOKMake_IndexedDataMapOfHAsciiStringOfInputFile.hxx>
#endif
#ifndef _WOKMake_DataMapOfHAsciiStringOfStep_HeaderFile
#include <WOKMake_DataMapOfHAsciiStringOfStep.hxx>
#endif
#ifndef _WOKMake_IndexedDataMapOfBuildProcessGroup_HeaderFile
#include <WOKMake_IndexedDataMapOfBuildProcessGroup.hxx>
#endif
#ifndef _WOKMake_DataMapOfHAsciiStringOfSequenceOfHAsciiString_HeaderFile
#include <WOKMake_DataMapOfHAsciiStringOfSequenceOfHAsciiString.hxx>
#endif
#ifndef _MMgt_TShared_HeaderFile
#include <MMgt_TShared.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _Handle_WOKernel_DevUnit_HeaderFile
#include <Handle_WOKernel_DevUnit.hxx>
#endif
#ifndef _Handle_TCollection_HAsciiString_HeaderFile
#include <Handle_TCollection_HAsciiString.hxx>
#endif
#ifndef _Handle_WOKMake_BuildProcessGroup_HeaderFile
#include <Handle_WOKMake_BuildProcessGroup.hxx>
#endif
#ifndef _Handle_WOKMake_Step_HeaderFile
#include <Handle_WOKMake_Step.hxx>
#endif
class WOKernel_UnitGraph;
class WOKernel_Locator;
class WOKUtils_Shell;
class WOKBuilder_MSTranslatorIterator;
class WOKTools_MapOfHAsciiString;
class WOKMake_IndexedDataMapOfHAsciiStringOfInputFile;
class WOKernel_DevUnit;
class TCollection_HAsciiString;
class WOKMake_DataMapOfHAsciiStringOfStep;
class WOKMake_IndexedDataMapOfBuildProcessGroup;
class WOKMake_DataMapOfHAsciiStringOfSequenceOfHAsciiString;
class WOKMake_BuildProcessGroup;
class WOKMake_Step;
class TColStd_SequenceOfHAsciiString;



class WOKMake_BuildProcess : public MMgt_TShared {

public:
 // Methods PUBLIC
 // 


Standard_EXPORT WOKMake_BuildProcess(const Handle(WOKernel_Locator)& alocator,const Handle(WOKUtils_Shell)& ashell,const Handle(WOKernel_UnitGraph)& aunitgraph);

 const Handle_WOKernel_UnitGraph& UnitGraph() const;

 const Handle_WOKernel_Locator& Locator() const;

 const Handle_WOKUtils_Shell& Shell() const;

  WOKBuilder_MSTranslatorIterator& TranslatorIterator() ;


Standard_EXPORT   void GetKnownUnits() ;

  WOKTools_MapOfHAsciiString& KnownUnits() ;

  WOKMake_IndexedDataMapOfHAsciiStringOfInputFile& MakeState() ;


Standard_EXPORT   Standard_Boolean ComputeSteps(const Handle(WOKernel_DevUnit)& aunit) ;


Standard_EXPORT   Standard_Boolean RemoveStep(const Handle(TCollection_HAsciiString)& aid) ;


Standard_EXPORT   Standard_Boolean RemoveUnit(const Handle(TCollection_HAsciiString)& aname) ;


Standard_EXPORT   void ClearUnits() ;

 const WOKMake_DataMapOfHAsciiStringOfStep& Steps() const;


Standard_EXPORT   void ClearGroups() ;

 const WOKMake_IndexedDataMapOfBuildProcessGroup& Groups() const;

 const WOKMake_DataMapOfHAsciiStringOfSequenceOfHAsciiString& Units() const;


Standard_EXPORT   Handle_WOKMake_BuildProcessGroup GetGroup(const Handle(TCollection_HAsciiString)& aname) ;


Standard_EXPORT   Standard_Boolean StepExists(const Handle(WOKernel_DevUnit)& aunit,const Handle(TCollection_HAsciiString)& acode) ;


Standard_EXPORT   Handle_WOKMake_Step GetStepFromID(const Handle(TCollection_HAsciiString)& anid) ;


Standard_EXPORT  const Handle_WOKMake_Step& GetAndAddStep(const Handle(WOKernel_DevUnit)& aunit,const Handle(TCollection_HAsciiString)& acode,const Handle(TCollection_HAsciiString)& asubcode) ;


Standard_EXPORT   Standard_Boolean IsUnitInProcess(const Handle(TCollection_HAsciiString)& aname) const;


Standard_EXPORT  const TColStd_SequenceOfHAsciiString& GetUnitSteps(const Handle(TCollection_HAsciiString)& aunit) const;


Standard_EXPORT  const Handle_WOKMake_Step& Find(const Handle(WOKernel_DevUnit)& aunit,const Handle(TCollection_HAsciiString)& acode,const Handle(TCollection_HAsciiString)& asubcode) const;


Standard_EXPORT  const Handle_WOKMake_Step& Find(const Handle(TCollection_HAsciiString)& anid) const;
//Standard_EXPORT ~WOKMake_BuildProcess();




 // Type management
 //
 Standard_EXPORT const Handle(Standard_Type)& DynamicType() const;
 //Standard_EXPORT Standard_Boolean	       IsKind(const Handle(Standard_Type)&) const;

protected:

 // Methods PROTECTED
 // 


 // Fields PROTECTED
 //


private: 

 // Methods PRIVATE
 // 


Standard_EXPORT   void AddStep(const Handle(WOKMake_Step)& astep) ;


 // Fields PRIVATE
 //
Handle_WOKernel_UnitGraph myunitgraph;
Handle_WOKernel_Locator mylocator;
Handle_WOKUtils_Shell myshell;
WOKBuilder_MSTranslatorIterator mycdlit;
WOKTools_MapOfHAsciiString myknownunits;
WOKMake_IndexedDataMapOfHAsciiStringOfInputFile mymakestate;
WOKMake_DataMapOfHAsciiStringOfStep mysteps;
WOKMake_IndexedDataMapOfBuildProcessGroup mygroups;
WOKMake_DataMapOfHAsciiStringOfSequenceOfHAsciiString myunits;


};


#include <WOKMake_BuildProcess.lxx>



// other Inline functions and methods (like "C++: function call" methods)
//


#endif
