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

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

#include <Handle_TCollection_HAsciiString.hxx>
#include <Standard_Time.hxx>
#include <Handle_Units_QuantitiesSequence.hxx>
#include <MMgt_TShared.hxx>
#include <Standard_CString.hxx>
#include <Standard_Boolean.hxx>
#include <Standard_Integer.hxx>
#include <Handle_Units_Dimensions.hxx>
class TCollection_HAsciiString;
class Units_QuantitiesSequence;
class TCollection_AsciiString;
class Units_Dimensions;


//! This class creates  a dictionary of all  the units
//! you want to know.
class Units_UnitsDictionary : public MMgt_TShared
{

public:

  
  //! Returns an empty instance of UnitsDictionary.
  Standard_EXPORT Units_UnitsDictionary();
  
  //! Returns a  UnitsDictionary object  which  contains the
  //! sequence  of all   the  units  you want to   consider,
  //! physical quantity by physical quantity.
  Standard_EXPORT   void Creates (const Standard_CString afilename) ;
  
  //! Returns   the  head   of   the  sequence  of  physical
  //! quantities.
      Handle(Units_QuantitiesSequence) Sequence()  const;
  
  //! Returns true if there has been no  modification of the
  //! file Units.dat  since the   creation of the dictionary
  //! object, false otherwise.
  Standard_EXPORT   Standard_Boolean UpToDate()  const;
  
  //! Returns for <aquantity> the active unit.
  Standard_EXPORT   TCollection_AsciiString ActiveUnit (const Standard_CString aquantity)  const;
  
  //! Dumps only  the sequence   of  quantities without  the
  //! units  if  <alevel> is  equal  to zero,  and  for each
  //! quantity all the units stored if <alevel>  is equal to
  //! one.
      void Dump (const Standard_Integer alevel)  const;
  
  //! Dumps  for a     designated  physical       dimensions
  //! <adimensions> all the previously stored units.
      void Dump (const Handle(Units_Dimensions)& adimensions)  const;




  DEFINE_STANDARD_RTTI(Units_UnitsDictionary)

protected:




private: 


  Handle(TCollection_HAsciiString) thefilename;
  Standard_Time thetime;
  Handle(Units_QuantitiesSequence) thequantitiessequence;


};


#include <Units_UnitsDictionary.lxx>





#endif // _Units_UnitsDictionary_HeaderFile
