CompleteDB Embedded: Direct C++ API  2.4.2
Record.hpp
Go to the documentation of this file.
1 #ifndef COMPLETEDB_RECORD_HPP
2 #define COMPLETEDB_RECORD_HPP
3 
4 #include "CompleteDb.h"
6 #include "completedb/Object.hpp"
7 #include "completedb/Columns.hpp"
9 
10 namespace completedb {
11 
17 class Record
18 : public virtual Object
19 , public Columns
20 , public FastStatement
21 {
22 
23  friend class Database;
24  friend class Table;
25  friend class TableDml;
26 
27 public: // override Object iface
28 
32  inline bool cast(const Object& from) { return completedb_Record_cast(&m, from.get(), from.getClassType()); }
36  inline bool isConnected() const { return completedb_Record_isConnected(m); }
40  inline bool isDisconnected() const { return completedb_Record_isDisconnected(m); }
49 
50 public: // override Columns iface
51 
55  inline ColumnBool getColumnBool(const char* name) { return completedb_Record_getColumnBool(m, name); }
59  inline ColumnDouble getColumnDouble(const char* name) { return completedb_Record_getColumnDouble(m, name); }
63  inline ColumnFloat getColumnFloat(const char* name) { return completedb_Record_getColumnFloat(m, name); }
67  inline ColumnInt16 getColumnInt16(const char* name) { return completedb_Record_getColumnInt16(m, name); }
71  inline ColumnInt32 getColumnInt32(const char* name) { return completedb_Record_getColumnInt32(m, name); }
75  inline ColumnInt64 getColumnInt64(const char* name) { return completedb_Record_getColumnInt64(m, name); }
79  inline ColumnInt8 getColumnInt8(const char* name) { return completedb_Record_getColumnInt8(m, name); }
83  inline ColumnString getColumnString(const char* name) { return completedb_Record_getColumnString(m, name); }
84 
85 public: // override LastError iface
86 
94  inline const char* getLastError() const { return completedb_Record_getLastError(m); }
95 
96 public: // override FastStatement iface
97 
101  inline bool prepare() { return completedb_Record_prepare(m); }
102 
103 public: // iface
104 
108  inline bool commitRow() { return completedb_Record_commitRow(m); }
109  inline bool commitRow(DirectId& directId) { return completedb_Record_commitRowEx(m, &directId); }
110  inline bool copyBuffer() { return completedb_Record_copyBuffer(m); }
114  inline bool deleteDirect(const DirectId& directId) { return completedb_Record_deleteDirect(m, &directId); }
118  inline bool deleteRow() { return completedb_Record_deleteRow(m); }
122  inline bool deleteSurrogate(const SurrogateId& surrogateId) { return completedb_Record_deleteSurrogate(m, &surrogateId); }
126  inline bool getDirectId(DirectId& directId) { return completedb_Record_getDirectId(m, &directId); }
130  inline bool getSurrogateId(SurrogateId& surrogateId) { return completedb_Record_getSurrogateId(m, &surrogateId); }
134  inline bool holdDirect(const DirectId& directId) { return completedb_Record_holdDirect(m, &directId); }
138  inline bool holdRow() { return completedb_Record_holdRow(m); }
142  inline bool holdSurrogate(const SurrogateId& surrogateId) { return completedb_Record_holdSurrogate(m, &surrogateId); }
146  inline bool insertSurrogate(const SurrogateId& surrogateId) { return completedb_Record_insertSurrogate(m, &surrogateId); }
150  inline bool loadDirect(const DirectId& directId) { return completedb_Record_loadDirect(m, &directId); }
154  inline bool loadDirectOutside(const DirectId& directId) { return completedb_Record_loadDirectOutside(m, &directId); }
158  inline bool loadRow() { return completedb_Record_loadRow(m); }
166  inline bool loadSurrogate(const SurrogateId& surrogateId) { return completedb_Record_loadSurrogate(m, &surrogateId); }
170  inline bool loadSurrogateOutside(const SurrogateId& surrogateId) { return completedb_Record_loadSurrogateOutside(m, &surrogateId); }
174  inline bool nextRow() { return completedb_Record_nextRow(m); }
186  inline bool rollbackRow() { return completedb_Record_rollbackRow(m); }
187  inline uint32_t getBufferSize() const { return completedb_Record_getBufferSize(m); }
188 
189 public: // factory lvalue
190 
191  Record& operator=(const Record& src) { completedb_Record_assign(&m, src.m, src.getClassType()); return *this; }
193 
194 public: // factory
195 
198 
199 private: // factory
200 
201  Record(void* src) : Object(src) {}
202 
203 };
204 
205 } // namespace
206 
207 #endif /* COMPLETEDB_RECORD_HPP */