/////////////////////////////////////////////////////////////////////////////// // Copyright (C) 2002-2016, Open Design Alliance (the "Alliance"). // All rights reserved. // // This software and its documentation and related materials are owned by // the Alliance. The software may only be incorporated into application // programs owned by members of the Alliance, subject to a signed // Membership Agreement and Supplemental Software License Agreement with the // Alliance. The structure and organization of this software are the valuable // trade secrets of the Alliance and its suppliers. The software is also // protected by copyright law and international treaty provisions. Application // programs incorporating this software must include the following statement // with their copyright notices: // // This application incorporates Teigha(R) software pursuant to a license // agreement with Open Design Alliance. // Teigha(R) Copyright (C) 2002-2016 by Open Design Alliance. // All rights reserved. // // By use of this software, its documentation or related materials, you // acknowledge and accept the above terms. /////////////////////////////////////////////////////////////////////////////// #ifndef FILER_INCLUDED #define FILER_INCLUDED #include #include "RxObject.h" #include "OdStreamBuf.h" #include "DbObjectId.h" class OdString; class OdGeScale3d; class OdBinaryData; class OdDbFilerController; class OdDbDatabase; class OdResBuf; typedef OdSmartPtr OdResBufPtr; class OdDbObjectId; class OdGePoint2d; class OdGePoint3d; class OdGeVector2d; class OdGeVector3d; class OdDbAuditInfo; #include "TD_PackPush.h" /** \details This class is the abstract base class for classes that are used for file I/O operations utilizing the .dwg and .dxf file formats. Library: TD_Db */ class TOOLKIT_EXPORT OdDbFiler : public OdRxObject { public: OdDbFiler() {} ODRX_DECLARE_MEMBERS(OdDbFiler); /** \details Returns the current status of this Filer object. \note The default implementation of this function does nothing but throw an exception. */ virtual OdResult filerStatus() const; /** \details Resets the current status of this Filer object to eOk. \note The default implementation of this function does nothing but throw an exception. */ virtual void resetFilerStatus(); enum FilerType { kFileFiler = 0, // .dwg and .dxf files kCopyFiler = 1, kUndoFiler = 2, kBagFiler = 3, kIdXlateFiler = 4, kPageFiler = 5, kDeepCloneFiler = 6, kIdFiler = 7, kPurgeFiler = 8, kWblockCloneFiler = 9 }; /** \details Returns the type of this Filer object. */ virtual FilerType filerType() const = 0; /** \details Returns the database with which this Filer object is associated. */ virtual OdDbDatabase* database() const; /** \details Returns the version of this the file which this Filer object is associated. \remarks The maintenance release version is returned if and only if pMaintReleaseVer != 0. \param pMaintReleaseVer [in] Pointer to the MaintReleaseVer to receive the maintenance release version. */ virtual OdDb::DwgVersion dwgVersion( OdDb::MaintReleaseVer* pMaintReleaseVer = 0) const; /** \details Returns the AuditInfo with which this Filer object is associated. */ OdDbAuditInfo * getAuditInfo() const; /** \details Sets the FilerController with which this Filer object is associated. \param pFilerController [in] Pointer to the FilerController. */ virtual void setController( OdDbFilerController * pFilerController); /** \details Returns the FilerController with which this Filer object is associated. */ virtual OdDbFilerController* controller() const; }; /////////////////////////////////////////////////////////////////////// /** \details This class defines a function that returns the data type using the specified group code (DXF code). \sa */ class TOOLKIT_EXPORT OdDxfCode { public: /** \details Defines codes for data types. */ typedef enum { Unknown = 0, Name = 1, String = 2, Bool = 3, Integer8 = 4, Integer16 = 5, Integer32 = 6, Double = 7, Angle = 8, Point = 9, BinaryChunk = 10, LayerName = 11, Handle = 12, ObjectId = 13, SoftPointerId = 14, HardPointerId = 15, SoftOwnershipId = 16, HardOwnershipId = 17, Integer64 = 18 } Type; /** \details Returns the data type for the specified group code (DXF code). \sa \sa */ static Type _getType( int code ); }; /** \details This class is the abstract base class for classes that are used for file I/O operations with DXF formats. Library: TD_Db */ class TOOLKIT_EXPORT OdDbDxfFiler : public OdDbFiler { public: ODRX_DECLARE_MEMBERS(OdDbDxfFiler); OdDbDxfFiler() {} /** \details Moves the I/O pointer to the specified location in this Filer object. \param offset [in] Number of bytes. \param seekType [in] Seek type. \remarks seekType must be one of the following: Name Value Description. OdDb::kSeekFromStart SEEK_SET Start of file. OdDb::kSeekFromCurrent SEEK_CUR Current position of I/O pointer. OdDb::kSeekFromEnd SEEK_END End of file.
\note The default implementation of this function does nothing but throw an exception. */ virtual void seek( OdInt64 offset, OdDb::FilerSeekType seekType); /** \details Returns the current I/O pointer position of this Filer object. \note The default implementation of this function does nothing but throw an exception. */ virtual OdUInt64 tell() const; /** \details Returns the number of decimal places for DxfOut filing with this Filer object. \remarks Returns kDfltPrec for DxfIn filing. \note The default implementation of this function does nothing but throw an exception. */ virtual int precision() const; /** \details Sets the number of decimal places DxfOut filing with this Filer object. \param precision [in] Decimal places. \note The default implementation of this function does nothing but throw an exception. */ virtual void setPrecision( int decimalDigits); /** \details Number of decimal digits written to ASCII DXF files. */ enum { kDfltPrec = -1, kMaxPrec = DBL_DIG + 1 }; /** \details Indicates the start of xdata in this Filer object. */ virtual void writeXDataStart(); /** \details Returns true if and only if default values are normally written to the file associated with this Filer object. */ virtual bool includesDefaultValues() const; /** \details Returns true if and only if this Filer object is at the end of an object's data. \remarks This will be true when the filter is at any of the following: * A subclass data marker. * The start of an object's xdata. * The start of embedded object's data. * The start of another object's data. * The end of a file. \note The default implementation of this function does nothing but throw an exception. */ virtual bool atEOF(); /** \details Returns true if and only if this Filer object is at the end of an object's data. \remarks This will be true when the filter is at any of the following: * The start of another object's data. * The end of a file. \note The default implementation of this function does nothing but throw an exception. */ virtual bool atEndOfObject(); /** \details Returns true if and only if this Filer object is at the start of an object's xdata. \note The default implementation of this function does nothing but throw an exception. */ virtual bool atExtendedData(); /** \details Returns true if and only if this Filer object is at a subclass data marker with the specified subClassName. \param subClassName [in] Subclass name. \remarks If true, the Filer advances the file pointer to the next item. \note The default implementation of this function does nothing but throw an exception. */ virtual bool atSubclassData( const OdString& subClassName); /** \details Returns true if and only if this Filer object is at start of an embedded object. \remarks If true, the Filer advances the file pointer to the next item. \note The default implementation of this function does nothing but throw an exception. */ virtual bool atEmbeddedObjectStart(); /** \details Reads the next item of this Filer object, and returns its group code. \note The default implementation of this function does nothing but throw an exception. */ virtual int nextItem(); /** \details Reads the next item of this Filer object, and returns a SmartPointer to its ResBuf. */ virtual OdResBufPtr nextRb(); /** \details Writes the specified ResBuf object to this Filer object. \param pRb [in] Pointer to the ResBuf object. */ virtual void writeRb( const OdResBuf* pRb); /** \details Resets this Filer object to where it was before the last item was read. \note The default implementation of this function does nothing but throw an exception. */ virtual void pushBackItem(); /** \details Returns the string value of the current item of this Filer object. \param value [out] Receives the value. */ OdString rdString(); virtual void rdString( OdString &value) = 0; /** \details Returns the bool value of the current item of this Filer object. */ virtual bool rdBool() = 0; /** \details Returns the Int8 value of the current item of this Filer object. */ virtual OdInt8 rdInt8() = 0; /** \details Returns the Int16 value of the current item of this Filer object. */ virtual OdInt16 rdInt16() = 0; /** \details Returns the Int32 value of the current item of this Filer object. */ virtual OdInt32 rdInt32() = 0; /** \details Returns the Int64 value of the current item of this Filer object. */ virtual OdInt64 rdInt64() = 0; /** \details Returns the UInt8 value of the current item of this Filer object. */ virtual OdUInt8 rdUInt8() = 0; /** \details Returns the UInt16 value of the current item of this Filer object. */ virtual OdUInt16 rdUInt16() = 0; /** \details Returns the UInt32 value of the current item of this Filer object. */ virtual OdUInt32 rdUInt32() = 0; /** \details Returns the UInt64 value of the current item of this Filer object. */ virtual OdUInt64 rdUInt64() = 0; /** \details Returns the handle value of the current item of this Filer object. */ virtual OdDbHandle rdHandle() = 0; /** \details Returns the Object ID value of the current item of this Filer object. */ virtual OdDbObjectId rdObjectId() = 0; /** \details Returns the angle value of the current item of this Filer object. */ virtual double rdAngle() = 0; /** \details Returns the double value of the current item of this Filer object. */ virtual double rdDouble() = 0; /** \details Returns the 2D point value of the current item of this Filer object. \param value [out] Receives the value. */ virtual void rdPoint2d( OdGePoint2d& value) = 0; /** \details Returns the 3D point value of the current item of this Filer object. \param value [out] Receives the value. */ virtual void rdPoint3d( OdGePoint3d& value) = 0; /** \details Returns the 2D vector value of the current item of this Filer object. \param value [out] Receives the value. */ virtual void rdVector2d( OdGeVector2d& value) = 0; /** \details Returns the 3D vector value of the current item of this Filer object. \param value [out] Receives the value. */ virtual void rdVector3d( OdGeVector3d& value) = 0; /** \details Returns the scale value of the current item of this Filer object. \param value [out] Receives the value. */ virtual void rdScale3d( OdGeScale3d& value) = 0; /** \details Returns the BinaryData value of the current item of this Filer object. \param value [out] Receives the value. */ virtual void rdBinaryChunk( OdBinaryData& value) = 0; /** \details Copies the current item from the specified Filer object to this one. \param pSource [in] Pointer to the source Filer. */ virtual void copyItem( OdDbDxfFiler * pSource); /** \details Writes the specified name value to this Filer object. \param groupCode [in] Group code. \param value [in] Value. */ virtual void wrName( int groupCode, const OdString& value) = 0; /** \details Writes the specified string value to this Filer object. \param groupCode [in] Group code. \param value [in] Value. */ virtual void wrString( int groupCode, const OdString& value) = 0; /** \details Writes the specified optional string value to this Filer object. \remarks value is written if and only if (value != NULL) || (includesDefaultValues() == true) \param groupCode [in] Group code. \param value [in] Value. */ void wrStringOpt( int groupCode, const OdString& value); /** \details Writes the specified subclass data marker to this Filer object. \param value [in] Value. */ void wrSubclassMarker( const OdString &value); /** \details Writes the embedded object start marker to this Filer object. */ void wrEmbeddedObjectStart(); /** \details Writes the specified bool value to this Filer object. \param groupCode [in] Group code. \param value [in] Value. */ virtual void wrBool( int groupCode, bool value) = 0; /** \details Writes the specified optional bool value to this Filer object. \remarks value is written if and only if (value != default) || (includesDefaultValues() == true) \param groupCode [in] Group code. \param value [in] Value. \param defaultValue [in] Default value. */ void wrBoolOpt( int groupCode, bool value, bool defaultValue); /** \details Writes the specified Int8 value to this Filer object. \param groupCode [in] Group code. \param value [in] Value. */ virtual void wrInt8( int groupCode, OdInt8 value) = 0; /** \details Writes the specified optional Int8 value to this Filer object. \remarks value is written if and only if (value != default) || (includesDefaultValues() == true) \param groupCode [in] Group code. \param value [in] Value. \param defaultValue [in] Default value. */ void wrInt8Opt( int groupCode, OdInt8 value, OdInt8 defaultValue); /** \details Writes the specified UInt8 value to this Filer object. \param groupCode [in] Group code. \param value [in] Value. */ virtual void wrUInt8( int groupCode, OdUInt8 value) = 0; /** \details Writes the specified optional UInt8 value to this Filer object. \remarks value is written if and only if (value != default) || (includesDefaultValues() == true) \param groupCode [in] Group code. \param value [in] Value. \param defaultValue [in] Default value. */ void wrUInt8Opt( int groupCode, OdUInt8 value, OdUInt8 defaultValue); /** \details Writes the specified Int16 value to this Filer object. \param groupCode [in] Group code. \param value [in] Value. */ virtual void wrInt16( int groupCode, OdInt16 value) = 0; /** \details Writes the specified optional Int16 value to this Filer object. \remarks value is written if and only if (value != default) || (includesDefaultValues() == true) \param groupCode [in] Group code. \param value [in] Value. \param defaultValue [in] Default value. */ void wrInt16Opt( int groupCode, OdInt16 value, OdInt16 defaultValue); /** \details Writes the specified UInt16 value to this Filer object. \param groupCode [in] Group code. \param value [in] Value. */ virtual void wrUInt16( int groupCode, OdUInt16 value) = 0; /** \details Writes the specified optional UInt16 value to this Filer object. \remarks value is written if and only if (value != default) || (includesDefaultValues() == true) \param groupCode [in] Group code. \param value [in] Value. \param defaultValue [in] Default value. */ void wrUInt16Opt( int groupCode, OdUInt16 value, OdUInt16 defaultValue); /** \details Writes the specified Int32 value to this Filer object. \param groupCode [in] Group code. \param value [in] Value. */ virtual void wrInt32( int groupCode, OdInt32 value) = 0; /** \details Writes the specified optional Int32 value to this Filer object. \remarks value is written if and only if (value != default) || (includesDefaultValues() == true) \param groupCode [in] Group code. \param value [in] Value. \param defaultValue [in] Default value. */ void wrInt32Opt( int groupCode, OdInt32 value, OdInt32 defaultValue); /** \details Writes the specified UInt32 value to this Filer object. \param groupCode [in] Group code. \param value [in] Value. */ virtual void wrUInt32( int groupCode, OdUInt32 value) = 0; /** \details Writes the specified optional UInt32 value to this Filer object. \remarks value is written if and only if (value != default) || (includesDefaultValues() == true) \param groupCode [in] Group code. \param value [in] Value. \param defaultValue [in] Default value. */ void wrUInt32Opt( int groupCode, OdUInt32 value, OdUInt32 defaultValue); /** \details Writes the specified Int64 value to this Filer object. \param groupCode [in] Group code. \param value [in] Value. */ virtual void wrInt64( int groupCode, OdInt64 value) = 0; /** \details Writes the specified optional Int64 value to this Filer object. \remarks value is written if and only if (value != default) || (includesDefaultValues() == true) \param groupCode [in] Group code. \param value [in] Value. \param defaultValue [in] Default value. */ void wrInt64Opt( int groupCode, OdInt64 value, OdInt64 defaultValue); /** \details Writes the specified UInt64 value to this Filer object. \param groupCode [in] Group code. \param value [in] Value. */ virtual void wrUInt64( int groupCode, OdUInt64 value) = 0; /** \details Writes the specified optional UInt64 value to this Filer object. \remarks value is written if and only if (value != default) || (includesDefaultValues() == true) \param groupCode [in] Group code. \param value [in] Value. \param defaultValue [in] Default value. */ void wrUInt64Opt( int groupCode, OdUInt64 value, OdUInt64 defaultValue); /** \details Writes the specified bool value to this Filer object. \param groupCode [in] Group code. \param value [in] Value. */ virtual void wrHandle( int groupCode, OdDbHandle value) = 0; /** \details Writes the specified Object ID value to this Filer object. \param groupCode [in] Group code. \param value [in] Value. */ virtual void wrObjectId( int groupCode, OdDbObjectId value) = 0; /** \details Writes the specified optional Object ID value to this Filer object. \remarks value is written if and only if (value != NULL) || (includesDefaultValues() == true) \param groupCode [in] Group code. \param value [in] Value. \param defaultValue [in] Default value. */ void wrObjectIdOpt( int groupCode, OdDbObjectId value); /** \details Writes the specified angle value to this Filer object. \param groupCode [in] Group code. \param value [in] Value. \param precision [in] Decimal places. */ virtual void wrAngle( int groupCode, double value, int precision = kDfltPrec) = 0; /** \details Writes the specified optional angle value to this Filer object. \remarks value is written if and only if (value != default) || (includesDefaultValues() == true) \param groupCode [in] Group code. \param value [in] Value. \param defaultValue [in] Default value. \param precision [in] Decimal places. */ void wrAngleOpt( int groupCode, double value, double defaultValue = 0., int precision = kDfltPrec); /** \details Writes the specified double value to this Filer object. \param groupCode [in] Group code. \param value [in] Value. \param precision [in] Decimal places. */ virtual void wrDouble( int groupCode, double value, int precision = kDfltPrec) = 0; /** \details Writes the specified optional double value to this Filer object. \remarks value is written if and only if (value != default) || (includesDefaultValues() == true) \param groupCode [in] Group code. \param value [in] Value. \param defaultValue [in] Default value. \param precision [in] Decimal places. */ void wrDoubleOpt( int groupCode, double value, double defaultValue = 0., int precision = kDfltPrec); /** \details Writes the specified 2D point value to this Filer object. \param groupCode [in] Group code. \param value [in] Value. \param precision [in] Decimal places. */ virtual void wrPoint2d( int groupCode, const OdGePoint2d& value, int precision = kDfltPrec) = 0; /** \details Writes the specified optional 2D point value to this Filer object. \remarks value is written if and only if (value != default) || (includesDefaultValues() == true) \param groupCode [in] Group code. \param value [in] Value. \param defaultValue [in] Default value. \param precision [in] Decimal places. */ void wrPoint2dOpt( int groupCode, const OdGePoint2d& value, const OdGePoint2d& defaultValue, int precision = kDfltPrec); /** \details Writes the specified 3D point value to this Filer object. \param groupCode [in] Group code. \param value [in] Value. \param precision [in] Decimal places. */ virtual void wrPoint3d( int groupCode, const OdGePoint3d& value, int precision = kDfltPrec) = 0; /** \details Writes the specified optional 3D point value to this Filer object. \remarks value is written if and only if (value != default) || (includesDefaultValues() == true) \param groupCode [in] Group code. \param value [in] Value. \param defaultValue [in] Default value. \param precision [in] Decimal places. */ void wrPoint3dOpt( int groupCode, const OdGePoint3d& value, const OdGePoint3d& defaultValue, int precision = kDfltPrec); /** \details Writes the specified 2D vector value to this Filer object. \param groupCode [in] Group code. \param value [in] Value. \param precision [in] Decimal places. */ virtual void wrVector2d( int groupCode, const OdGeVector2d& value, int precision = kDfltPrec) = 0; /** \details Writes the specified optional 2D vector value to this Filer object. \remarks value is written if and only if (value != default) || (includesDefaultValues() == true) \param groupCode [in] Group code. \param value [in] Value. \param defaultValue [in] Default value. \param precision [in] Decimal places. */ void wrVector2dOpt( int groupCode, const OdGeVector2d& value, const OdGeVector2d& defaultValue, int precision = kDfltPrec); /** \details Writes the specified 3D vector value to this Filer object. \param groupCode [in] Group code. \param value [in] Value. \param precision [in] Decimal places. */ virtual void wrVector3d( int groupCode, const OdGeVector3d& value, int precision = kDfltPrec) = 0; /** \details Writes the specified optional 3D vector value to this Filer object. \remarks value is written if and only if (value != default) || (includesDefaultValues() == true) \param groupCode [in] Group code. \param value [in] Value. \param defaultValue [in] Default value. \param precision [in] Decimal places. */ void wrVector3dOpt( int groupCode, const OdGeVector3d& value, const OdGeVector3d& defaultValue, int precision = kDfltPrec); /** \details Writes the specified 2D scale value to this Filer object. \param groupCode [in] Group code. \param value [in] Value. \param precision [in] Decimal places. */ virtual void wrScale3d( int groupCode, const OdGeScale3d& value, int precision = kDfltPrec) = 0; /** \details Writes the specified BinaryChunk value to this Filer object. \param groupCode [in] Group code. \param value [in] Value. \param numBytes [in] Number of bytes. \param buffer [in] array of bytes. */ virtual void wrBinaryChunk( int groupCode, const OdUInt8* buffer, OdUInt32 numBytes) = 0; void wrBinaryChunk( int groupCode, const OdBinaryData& value); }; /** \details This template class is a specialization of the OdSmartPtr class for OdDbDxfFiler object pointers. */ typedef OdSmartPtr OdDbDxfFilerPtr; /** \details This class implements OdError objects with Result codes of eDwgObjectImproperlyRead. Library: TD_Db */ class TOOLKIT_EXPORT OdError_DwgObjectImproperlyRead : public OdError { public: OdError_DwgObjectImproperlyRead() : OdError(eDwgObjectImproperlyRead){} }; /** \details This class is the abstract base class for classes that are used for file I/O operations with the .dwg file format. Library: TD_Db */ class TOOLKIT_EXPORT OdDbDwgFiler : public OdDbFiler { public: OdDbDwgFiler() {} ODRX_DECLARE_MEMBERS(OdDbDwgFiler); /** \details Moves the I/O pointer to the specified location in this Filer object. \param offset [in] Number of bytes. \param seekType [in] Seek type. \remarks seekType must be one of the following: Name Value Description. OdDb::kSeekFromStart SEEK_SET Start of file. OdDb::kSeekFromCurrent SEEK_CUR Current position of I/O pointer. OdDb::kSeekFromEnd SEEK_END End of file.
*/ virtual void seek( OdInt32 offset, OdDb::FilerSeekType seekType) = 0; /** \details Returns the current I/O pointer position of this Filer object. */ virtual OdUInt32 tell() const = 0; /** \details Returns the bool value of the current item of this Filer object. */ virtual bool rdBool() = 0; /** \details Returns the string value of the current item of this Filer object. */ virtual OdString rdString() = 0; /** \details Returns the specified number of bytes from this Filer object. \param buffer [out] Receives the bytes. \param numBytes [in] Number of bytes. */ virtual void rdBytes( void* buffer, OdUInt32 numBytes) = 0; /** \details Returns the Int8 value of the current item of this Filer object. */ virtual OdInt8 rdInt8() = 0; /** \details Returns the UInt8 value of the current item of this Filer object. */ virtual OdUInt8 rdUInt8() = 0; /** \details Returns the Int16 value of the current item of this Filer object. */ virtual OdInt16 rdInt16() = 0; /** \details Returns the Int32 value of the current item of this Filer object. */ virtual OdInt32 rdInt32() = 0; /** \details Returns the Int64 value of the current item of this Filer object. */ virtual OdInt64 rdInt64() = 0; /** \details Returns the memory address value of the current item of this Filer object. */ virtual void* rdAddress(); /** \details Returns the double value of the current item of this Filer object. */ virtual double rdDouble() = 0; /** \details Returns the handle value of the current item of this Filer object. */ virtual OdDbHandle rdDbHandle() = 0; /** \details Returns the SoftOwnershipId value of the current item of this Filer object. */ virtual OdDbObjectId rdSoftOwnershipId() = 0; /** \details Returns the HardOwnershipId value of the current item of this Filer object. */ virtual OdDbObjectId rdHardOwnershipId() = 0; /** \details Returns the HardPointerId value of the current item of this Filer object. */ virtual OdDbObjectId rdHardPointerId() = 0; /** \details Returns the SoftPointerId value of the current item of this Filer object. */ virtual OdDbObjectId rdSoftPointerId() = 0; /** \details Returns the 2D point value of the current item of this Filer object. */ virtual OdGePoint2d rdPoint2d() = 0; /** \details Returns the 3D point value of the current item of this Filer object. */ virtual OdGePoint3d rdPoint3d() = 0; /** \details Returns the 2D vector value of the current item of this Filer object. */ virtual OdGeVector2d rdVector2d() = 0; /** \details Returns the 3D vector value of the current item of this Filer object. */ virtual OdGeVector3d rdVector3d() = 0; /** \details Returns the scale value of the current item of this Filer object. */ virtual OdGeScale3d rdScale3d() = 0; /** \details Writes the specified bool value to this Filer object. \param value [in] Value. */ virtual void wrBool( bool value) = 0; /** \details Writes the specified string value to this Filer object. \param value [in] Value. */ virtual void wrString( const OdString &value) = 0; /** \details Writes the specified number of bytes to this Filer object. \param buffer [in] array of bytes. \param numBytes [in] Number of bytes. */ virtual void wrBytes( const void* buffer, OdUInt32 numBytes) = 0; /** \details Writes the specified Int8 value to this Filer object. \param value [in] Value. */ virtual void wrInt8( OdInt8 value) = 0; /** \details Writes the specified UInt8 value to this Filer object. \param value [in] Value. */ virtual void wrUInt8( OdUInt8 value) = 0; /** \details Writes the specified Int16 value to this Filer object. \param value [in] Value. */ virtual void wrInt16( OdInt16 value) = 0; /** \details Writes the specified Int32 value to this Filer object. \param value [in] Value. */ virtual void wrInt32( OdInt32 value) = 0; /** \details Writes the specified Int64 value to this Filer object. \param value [in] Value. */ virtual void wrInt64( OdInt64 value) = 0; /** \details Writes the specified memory address value to this Filer object. \param value [in] Value. */ virtual void wrAddress( const void* value); /** \details Writes the specified double value to this Filer object. \param value [in] Value. */ virtual void wrDouble(double value) = 0; /** \details Writes the specified handle value to this Filer object. \param value [in] Value. */ virtual void wrDbHandle( const OdDbHandle& value) = 0; /** \details Writes the specified SoftOwnershipId value to this Filer object. \param value [in] Value. */ virtual void wrSoftOwnershipId( const OdDbObjectId& value) = 0; /** \details Writes the specified HardOwnershipId value to this Filer object. \param value [in] Value. */ virtual void wrHardOwnershipId( const OdDbObjectId& value) = 0; /** \details Writes the specified SoftPointerId value to this Filer object. \param value [in] Value. */ virtual void wrSoftPointerId( const OdDbObjectId& value) = 0; /** \details Writes the specified HardPointerId value to this Filer object. \param value [in] Value. */ virtual void wrHardPointerId( const OdDbObjectId& value) = 0; /** \details Writes the specified 2D point value to this Filer object. \param value [in] Value. */ virtual void wrPoint2d( const OdGePoint2d& value) = 0; /** \details Writes the specified 3D point value to this Filer object. \param value [in] Value. */ virtual void wrPoint3d( const OdGePoint3d& value) = 0; /** \details Writes the specified 2D vector value to this Filer object. \param value [in] Value. */ virtual void wrVector2d( const OdGeVector2d& value) = 0; /** \details Writes the specified 3D vector value to this Filer object. \param value [in] Value. */ virtual void wrVector3d( const OdGeVector3d& value) = 0; /** \details Writes the specified 3D scale value to this Filer object. \param value [in] Value. */ virtual void wrScale3d( const OdGeScale3d& value) = 0; /** \details Returns true if and only if this Filer object wishes to see all object references. \remarks The default implementation of this function always returns true. */ virtual bool usesReferences() const; /*!DOM*/ /** \details */ virtual void addReference(OdDbObjectId id, OdDb::ReferenceType rt); }; /** \details This template class is a specialization of the OdSmartPtr class for OdDbDwgFiler object pointers. */ typedef OdSmartPtr OdDbDwgFilerPtr; /** \details This class is the empty implementation of a base class for classes that are used as ID Filers. Library: TD_Db */ class TOOLKIT_EXPORT OdIdFiler : public OdDbDwgFiler { public: OdIdFiler() : m_pController(NULL) {} void seek( OdInt32 offset, OdDb::FilerSeekType seekType); OdUInt32 tell() const; OdResult filerStatus() const; void resetFilerStatus(); FilerType filerType() const; OdDb::DwgVersion dwgVersion( OdDb::MaintReleaseVer* pMaintReleaseVer = 0) const; bool rdBool(); OdString rdString(); void rdBytes( void* buffer, OdUInt32 numBytes); OdInt8 rdInt8(); OdUInt8 rdUInt8(); OdInt16 rdInt16(); OdInt32 rdInt32(); OdInt64 rdInt64(); double rdDouble(); OdDbHandle rdDbHandle(); OdDbObjectId rdSoftOwnershipId(); OdDbObjectId rdHardOwnershipId(); OdDbObjectId rdHardPointerId(); OdDbObjectId rdSoftPointerId(); OdGePoint2d rdPoint2d(); OdGePoint3d rdPoint3d(); OdGeVector3d rdVector3d(); OdGeVector2d rdVector2d(); OdGeScale3d rdScale3d(); void wrBool( bool value); void wrString( const OdString &value); void wrBytes( const void* buffer, OdUInt32 numBytes); void wrInt8( OdInt8 value); void wrUInt8( OdUInt8 value); void wrInt16( OdInt16 value); void wrInt32( OdInt32 value); void wrInt64( OdInt64 value); void wrDouble( double value); void wrDbHandle( const OdDbHandle& value); void wrPoint2d( const OdGePoint2d& value); void wrPoint3d( const OdGePoint3d& value); void wrVector2d( const OdGeVector2d& value); void wrVector3d( const OdGeVector3d& value); void wrScale3d( const OdGeScale3d& value); void setController( OdDbFilerController* pFilerController) { m_pController = pFilerController; } OdDbFilerController* controller() const { return m_pController; } private: OdDbFilerController* m_pController; }; #include "TD_PackPop.h" #endif // FILER_INCLUDED