/////////////////////////////////////////////////////////////////////////////// // 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 OD_DBDATATABLE_H #define OD_DBDATATABLE_H #include "TD_PackPush.h" #include "RxObject.h" #include "DbObject.h" class OdDbDataCellImpl; /** \details Library: TD_Db */ class TOOLKIT_EXPORT OdDbDataCell : public OdRxObject { public: enum CellType { kUnknown = 0, kInteger = 1, kDouble = 2, kCharPtr = 3, kPoint = 4, kObjectId = 5, kHardOwnerId = 6, kSoftOwnerId = 7, kHardPtrId = 8, kSoftPtrId = 9, kBool = 10, kVector = 11 }; ODDB_DECLARE_MEMBERS(OdDbDataCell); // Constructors OdDbDataCell(); /* OdDbDataCell(const OdDbDataCell& rCell); OdDbDataCell(bool b); OdDbDataCell(int i); OdDbDataCell(double d); OdDbDataCell(const OdString& str); OdDbDataCell(const OdGePoint3d& point); OdDbDataCell(const OdGeVector3d& vec); OdDbDataCell(const OdDbObjectId& id); OdDbDataCell(const OdDbHardOwnershipId& id); OdDbDataCell(const OdDbSoftOwnershipId& id); OdDbDataCell(const OdDbHardPointerId& id); OdDbDataCell(const OdDbSoftPointerId& id); virtual ~OdDbDataCell(); */ virtual void init(); virtual void set(const OdDbDataCell& cell); virtual void set(bool b); virtual void set(OdInt32 i); virtual void set(double d); virtual void set(const OdString& str); virtual void set(const OdGePoint3d& pt); virtual void set(const OdGeVector3d& vec); virtual void set(const OdDbObjectId& id); virtual void set(const OdDbHardOwnershipId& id); virtual void set(const OdDbSoftOwnershipId& id); virtual void set(const OdDbHardPointerId& id); virtual void set(const OdDbSoftPointerId& id); virtual void get(OdDbDataCell& cell); virtual void get(bool& b); virtual void get(OdInt32& i); virtual void get(double& d); virtual void get(OdString& str); virtual void get(OdGePoint3d& pt); virtual void get(OdGeVector3d& vec); virtual void get(OdDbObjectId& id); virtual void get(OdDbHardOwnershipId& id); virtual void get(OdDbSoftOwnershipId& id); virtual void get(OdDbHardPointerId& id); virtual void get(OdDbSoftPointerId& id); /* virtual bool operator == (const OdDbDataCell &cell) const; virtual bool operator != (const OdDbDataCell &cell) const; */ virtual OdDbDataCell::CellType type() const; OdDbDataCell(OdDbDataCellImpl* pValImpl); protected: friend class OdDbSystemInternals; OdDbDataCellImpl* m_pImpl; }; typedef OdSmartPtr OdDbDataCellPtr; typedef OdArray OdDbDataCellArray; class OdDbDataColumnImpl; /** \details Library: TD_Db */ class TOOLKIT_EXPORT OdDbDataColumn : public OdRxObject { public: ODDB_DECLARE_MEMBERS(OdDbDataColumn); OdDbDataColumn(); OdDbDataColumn(const OdDbDataColumn& rCol); // OdDbDataColumn(const OdDbDataCell::CellType type, // const OdString pColName = NULL); // virtual ~OdDbDataColumn(); virtual OdUInt32 physicalLength() const; virtual OdUInt32 growLength() const; virtual void setPhysicalLength(OdUInt32 n); virtual void setGrowLength(OdUInt32 n); // virtual OdDbDataColumn& operator = (const OdDbDataColumn& col); virtual void setColumnType(OdDbDataCell::CellType type); virtual OdDbDataCell::CellType columnType() const; virtual void setColumnName(const OdString& pName); virtual OdString columnName() const; virtual OdDbDataCellPtr getCellAt(OdUInt32 index) const; virtual void setCellAt(OdUInt32 index, const OdDbDataCellPtr cell); virtual void appendCell(const OdDbDataCellPtr cell); virtual void insertCellAt(OdUInt32 index, const OdDbDataCellPtr& cell); virtual void removeCellAt(OdUInt32 index); virtual OdInt32 getIndexAtCell(const OdDbDataCellPtr& cell) const; virtual OdUInt32 numCells() const; OdDbDataColumn(OdDbDataColumnImpl* m_pImpl); protected: friend class OdDbSystemInternals; OdDbDataColumnImpl* m_pImpl; }; typedef OdSmartPtr OdDbDataColumnPtr; class OdDbDataTableImpl; /** \details Library: TD_Db */ class TOOLKIT_EXPORT OdDbDataTable : public OdDbObject { public: ODDB_DECLARE_MEMBERS(OdDbDataTable); OdDbDataTable(void); // virtual OdDbDataTable& operator = (const OdDbDataTable& table); virtual OdUInt32 numColumns() const; virtual OdUInt32 numRows() const; virtual void setNumRowsPhysicalSize(OdUInt32 n); virtual void setNumRowsGrowSize(OdUInt32 n); virtual OdUInt32 numRowsPhysicalSize() const; virtual OdUInt32 numRowsGrowSize() const; virtual void setNumColsPhysicalSize(OdUInt32 n); virtual void setNumColsGrowSize(OdUInt32 n); virtual OdUInt32 numColsPhysicalSize() const; virtual OdUInt32 numColsGrowSize() const; virtual OdString tableName() const; virtual void setTableName(const OdString& pName); virtual OdDbDataColumnPtr getColumnAt(OdUInt32 index) const; virtual OdString columnNameAt(OdUInt32 index) const; virtual OdDbDataCell::CellType columnTypeAt(OdUInt32 index) const; virtual OdInt32 columnIndexAtName (const OdString& name) const; virtual void appendColumn( OdDbDataCell::CellType type, const OdString& colName); virtual void insertColumnAt(OdUInt32 index, OdDbDataCell::CellType type, const OdString& colName); virtual void removeColumnAt(OdUInt32 index); virtual void getRowAt(OdUInt32 index, OdDbDataCellArray& outRow) const; virtual void setRowAt(OdUInt32 index, const OdDbDataCellArray& row, bool bValidate = true); virtual void appendRow( const OdDbDataCellArray& row, bool bValidate = true); virtual void insertRowAt(OdUInt32 index, const OdDbDataCellArray& row, bool bValidate = true); virtual void removeRowAt(OdUInt32 index); virtual OdDbDataCellPtr getCellAt(OdUInt32 row, OdUInt32 col) const; virtual void setCellAt(OdUInt32 row, OdUInt32 col, const OdDbDataCellPtr& cell); //******************************************************************** // Overridden methods from OdDbObject //******************************************************************** // virtual OdResult dwgInFields( OdDbDwgFiler* pFiler); virtual void dwgOutFields( OdDbDwgFiler* pFiler) const; virtual OdResult dxfInFields( OdDbDxfFiler* pFiler); virtual void dxfOutFields( OdDbDxfFiler* pFiler) const; // virtual audit(OdDbAuditInfo* pAuditInfo); }; typedef OdSmartPtr OdDbDataTablePtr; #include "TD_PackPop.h" #endif