Go to the documentation of this file.00001
00002
00003
00004
00005
00008
00009 #ifndef databaseTable_H_
00010 #define databaseTable_H_
00011
00012 #include "vlDatabase.h"
00013 #include "databaseColumn.h"
00014 #include <list>
00015 #include <vlutil/vlString.h>
00016 #include <vlutil/vlSmartPointers.h>
00017
00023 class DT_DLL_VLDB DtDatabaseTable
00024 {
00025 public:
00027 typedef std::list<DtDatabaseColumn> ColumnList;
00028 typedef ColumnList::iterator iterator;
00029 typedef ColumnList::const_iterator const_iterator;
00030
00032 explicit DtDatabaseTable( const DtString& tableName );
00033
00035 virtual ~DtDatabaseTable();
00036
00039 virtual bool isShared() const;
00040 virtual void setShared(bool shared);
00041
00043 virtual bool hasTableBeenCreated() const;
00044 virtual void setTableCreated(bool created);
00045
00051 virtual DtDatabaseColumn& addColumn( const DtDatabaseColumn& column );
00052
00055 virtual void removeColumn(iterator column);
00056
00058 virtual void clearColumns();
00059
00061 virtual void resetValues();
00062
00064 virtual bool isEmpty(bool checkPrimaryKey) const;
00065
00067 unsigned int autoIncrementKey();
00068
00071 unsigned int lastLocalAutoIncrementKey() const;
00072
00074 virtual DtString createCSVList(size_t index, bool skipNull, int maxColumnWidth) const;
00075
00077 virtual const DtString& tableName() const;
00078
00080 virtual void setName(const DtString& tableName);
00081
00083 virtual size_t rowCount() const;
00084
00086
00087 virtual iterator getColumn(const DtString& columnName);
00088 virtual const_iterator getColumn(const DtString& columnName) const;
00090
00092
00093 virtual iterator begin();
00094 virtual const_iterator begin() const;
00096
00098
00099 virtual iterator end();
00100 virtual const_iterator end() const;
00102
00103 protected:
00104
00105 DtString myName;
00106 ColumnList myColumns;
00107 unsigned int myLocalAutoIncrementKey;
00108 bool mySharedFlag;
00109 bool myCreatedFlag;
00110 };
00111
00112 typedef DtBoost::shared_ptr<DtDatabaseTable> DtDatabaseTableSP;
00113
00114 #endif