@@ -172,7 +172,7 @@ class BerkeleyDatabase
172
172
};
173
173
174
174
/* * RAII class that provides access to a Berkeley database */
175
- class BerkeleyBatch
175
+ class BerkeleyBatch : public DatabaseBatch
176
176
{
177
177
/* * RAII class that automatically cleanses its data on destruction */
178
178
class SafeDbt final
@@ -195,10 +195,10 @@ class BerkeleyBatch
195
195
};
196
196
197
197
private:
198
- bool ReadKey (CDataStream&& key, CDataStream& value);
199
- bool WriteKey (CDataStream&& key, CDataStream&& value, bool overwrite = true );
200
- bool EraseKey (CDataStream&& key);
201
- bool HasKey (CDataStream&& key);
198
+ bool ReadKey (CDataStream&& key, CDataStream& value) override ;
199
+ bool WriteKey (CDataStream&& key, CDataStream&& value, bool overwrite = true ) override ;
200
+ bool EraseKey (CDataStream&& key) override ;
201
+ bool HasKey (CDataStream&& key) override ;
202
202
203
203
protected:
204
204
Db* pdb;
@@ -211,71 +211,20 @@ class BerkeleyBatch
211
211
212
212
public:
213
213
explicit BerkeleyBatch (BerkeleyDatabase& database, const char * pszMode = " r+" , bool fFlushOnCloseIn =true );
214
- ~BerkeleyBatch () { Close (); }
214
+ ~BerkeleyBatch () override { Close (); }
215
215
216
216
BerkeleyBatch (const BerkeleyBatch&) = delete ;
217
217
BerkeleyBatch& operator =(const BerkeleyBatch&) = delete ;
218
218
219
- void Flush ();
220
- void Close ();
221
-
222
- template <typename K, typename T>
223
- bool Read (const K& key, T& value)
224
- {
225
- CDataStream ssKey (SER_DISK, CLIENT_VERSION);
226
- ssKey.reserve (1000 );
227
- ssKey << key;
228
-
229
- CDataStream ssValue (SER_DISK, CLIENT_VERSION);
230
- if (!ReadKey (std::move (ssKey), ssValue)) return false ;
231
- try {
232
- ssValue >> value;
233
- return true ;
234
- } catch (const std::exception&) {
235
- return false ;
236
- }
237
- }
238
-
239
- template <typename K, typename T>
240
- bool Write (const K& key, const T& value, bool fOverwrite = true )
241
- {
242
- CDataStream ssKey (SER_DISK, CLIENT_VERSION);
243
- ssKey.reserve (1000 );
244
- ssKey << key;
245
-
246
- CDataStream ssValue (SER_DISK, CLIENT_VERSION);
247
- ssValue.reserve (10000 );
248
- ssValue << value;
249
-
250
- return WriteKey (std::move (ssKey), std::move (ssValue), fOverwrite );
251
- }
252
-
253
- template <typename K>
254
- bool Erase (const K& key)
255
- {
256
- CDataStream ssKey (SER_DISK, CLIENT_VERSION);
257
- ssKey.reserve (1000 );
258
- ssKey << key;
259
-
260
- return EraseKey (std::move (ssKey));
261
- }
262
-
263
- template <typename K>
264
- bool Exists (const K& key)
265
- {
266
- CDataStream ssKey (SER_DISK, CLIENT_VERSION);
267
- ssKey.reserve (1000 );
268
- ssKey << key;
269
-
270
- return HasKey (std::move (ssKey));
271
- }
219
+ void Flush () override ;
220
+ void Close () override ;
272
221
273
- bool StartCursor ();
274
- bool ReadAtCursor (CDataStream& ssKey, CDataStream& ssValue, bool & complete);
275
- void CloseCursor ();
276
- bool TxnBegin ();
277
- bool TxnCommit ();
278
- bool TxnAbort ();
222
+ bool StartCursor () override ;
223
+ bool ReadAtCursor (CDataStream& ssKey, CDataStream& ssValue, bool & complete) override ;
224
+ void CloseCursor () override ;
225
+ bool TxnBegin () override ;
226
+ bool TxnCommit () override ;
227
+ bool TxnAbort () override ;
279
228
};
280
229
281
230
std::string BerkeleyDatabaseVersion ();
0 commit comments