[Pkg-javascript-commits] [node-leveldown] 100/492: fix up virtual methods & reformat
Andrew Kelley
andrewrk-guest at moszumanska.debian.org
Sun Jul 6 17:13:49 UTC 2014
This is an automated email from the git hooks/post-receive script.
andrewrk-guest pushed a commit to annotated tag rocksdb-0.10.1
in repository node-leveldown.
commit 795aedd65426aa05048070a04bb649d75ae5e7a8
Author: Rod Vagg <rod at vagg.org>
Date: Fri Dec 14 22:02:13 2012 +1100
fix up virtual methods & reformat
---
src/async.cc | 2 ++
src/async.h | 19 +++++++------
src/batch.cc | 2 ++
src/batch.h | 18 ++++++------
src/database.cc | 6 ++--
src/database.h | 14 ++++-----
src/database_async.cc | 48 ++++++++++++++++++-------------
src/database_async.h | 78 +++++++++++++++++++++++----------------------------
src/iterator.cc | 7 -----
src/iterator.h | 47 ++++++++++++++++++-------------
src/iterator_async.cc | 4 +++
src/iterator_async.h | 32 +++++++++------------
12 files changed, 142 insertions(+), 135 deletions(-)
diff --git a/src/async.cc b/src/async.cc
index bc3ec91..f236514 100644
--- a/src/async.cc
+++ b/src/async.cc
@@ -19,6 +19,8 @@ using namespace leveldb;
/** ASYNC BASE **/
+AsyncWorker::~AsyncWorker () {}
+
void AsyncWorker::WorkComplete () {
HandleScope scope;
if (status.ok())
diff --git a/src/async.h b/src/async.h
index 64108b5..c683d3b 100644
--- a/src/async.h
+++ b/src/async.h
@@ -18,19 +18,20 @@ public:
, Persistent<Function> callback
) : database(database)
, callback(callback) {
- request.data = this;
+ request.data = this;
};
- uv_work_t request;
- Database* database;
- Persistent<Function> callback;
- Status status;
- virtual void WorkComplete ();
- virtual void Execute () {};
+ virtual ~AsyncWorker ();
+ uv_work_t request;
+ virtual void WorkComplete ();
+ virtual void Execute () =0;
protected:
- virtual void HandleOKCallback ();
- virtual void HandleErrorCallback ();
+ Database* database;
+ Persistent<Function> callback;
+ Status status;
+ virtual void HandleOKCallback ();
+ virtual void HandleErrorCallback ();
};
void AsyncExecute (uv_work_t* req);
diff --git a/src/batch.cc b/src/batch.cc
index 26b4057..9fa5b2e 100644
--- a/src/batch.cc
+++ b/src/batch.cc
@@ -9,6 +9,8 @@
using namespace std;
+BatchOp::~BatchOp () {}
+
BatchDelete::~BatchDelete () {
keyPtr.Dispose();
}
diff --git a/src/batch.h b/src/batch.h
index 50f791e..ac95d38 100644
--- a/src/batch.h
+++ b/src/batch.h
@@ -11,7 +11,8 @@
class BatchOp {
public:
BatchOp () {};
- virtual void Execute (WriteBatch* batch);
+ virtual ~BatchOp ();
+ virtual void Execute (WriteBatch* batch) =0;
};
class BatchDelete : public BatchOp {
@@ -23,30 +24,31 @@ public:
, keyPtr(keyPtr)
{};
~BatchDelete ();
+ void Execute (WriteBatch* batch);
- virtual void Execute (WriteBatch* batch);
-
-protected:
+private:
Slice key;
Persistent<Object> keyPtr;
};
-class BatchWrite : public BatchDelete {
+class BatchWrite : public BatchOp {
public:
BatchWrite (
Slice key
, Slice value
, Persistent<Object> keyPtr
, Persistent<Object> valuePtr
- ) : BatchDelete(key, keyPtr)
+ ) : key(key)
+ , keyPtr(keyPtr)
, value(value)
, valuePtr(valuePtr)
{};
~BatchWrite ();
-
- virtual void Execute (WriteBatch* batch);
+ void Execute (WriteBatch* batch);
private:
+ Slice key;
+ Persistent<Object> keyPtr;
Slice value;
Persistent<Object> valuePtr;
};
diff --git a/src/database.cc b/src/database.cc
index 3be28c0..12f4ee8 100644
--- a/src/database.cc
+++ b/src/database.cc
@@ -289,7 +289,7 @@ Handle<Value> Database::Batch (const Arguments& args) {
bool sync = optionsObj->Has(option_sync) && optionsObj->Get(option_sync)->BooleanValue();
Persistent<Function> callback = Persistent<Function>::New(Local<Function>::Cast(args[2]));
- vector<BatchOp*> operations;
+ vector<BatchOp*>* operations = new vector<BatchOp*>;
for (unsigned int i = 0; i < array->Length(); i++) {
if (!array->Get(i)->IsObject())
continue;
@@ -306,7 +306,7 @@ Handle<Value> Database::Batch (const Arguments& args) {
Slice key(Buffer::Data(keyBuffer), Buffer::Length(keyBuffer));
if (obj->Get(str_type)->StrictEquals(str_del)) {
- operations.push_back(new BatchDelete(key, Persistent<Object>::New(keyBuffer)));
+ operations->push_back(new BatchDelete(key, Persistent<Object>::New(keyBuffer)));
} else if (obj->Get(str_type)->StrictEquals(str_put) && obj->Has(str_value)) {
if (!obj->Get(str_value)->IsObject())
continue;
@@ -314,7 +314,7 @@ Handle<Value> Database::Batch (const Arguments& args) {
if (!Buffer::HasInstance(valueBuffer))
continue;
Slice value(Buffer::Data(valueBuffer), Buffer::Length(valueBuffer));
- operations.push_back(new BatchWrite(key, value, Persistent<Object>::New(keyBuffer), Persistent<Object>::New(valueBuffer)));
+ operations->push_back(new BatchWrite(key, value, Persistent<Object>::New(keyBuffer), Persistent<Object>::New(valueBuffer)));
}
}
diff --git a/src/database.h b/src/database.h
index d4dcd1c..124a371 100644
--- a/src/database.h
+++ b/src/database.h
@@ -23,15 +23,15 @@ public:
static void Init ();
static v8::Handle<v8::Value> NewInstance (const v8::Arguments& args);
- Status OpenDatabase (Options* options, string location);
- Status PutToDatabase (WriteOptions* options, Slice key, Slice value);
- Status GetFromDatabase (ReadOptions* options, Slice key, string& value);
- Status DeleteFromDatabase (WriteOptions* options, Slice key);
- Status WriteBatchToDatabase (WriteOptions* options, WriteBatch* batch);
+ Status OpenDatabase (Options* options, string location);
+ Status PutToDatabase (WriteOptions* options, Slice key, Slice value);
+ Status GetFromDatabase (ReadOptions* options, Slice key, string& value);
+ Status DeleteFromDatabase (WriteOptions* options, Slice key);
+ Status WriteBatchToDatabase (WriteOptions* options, WriteBatch* batch);
leveldb::Iterator* NewIterator (ReadOptions* options);
const leveldb::Snapshot* NewSnapshot ();
- void ReleaseSnapshot (const leveldb::Snapshot* snapshot);
- void CloseDatabase ();
+ void ReleaseSnapshot (const leveldb::Snapshot* snapshot);
+ void CloseDatabase ();
private:
Database ();
diff --git a/src/database_async.cc b/src/database_async.cc
index c701701..17039b1 100644
--- a/src/database_async.cc
+++ b/src/database_async.cc
@@ -20,12 +20,18 @@ using namespace leveldb;
/** OPEN WORKER **/
+OpenWorker::~OpenWorker () {
+ delete options;
+}
+
void OpenWorker::Execute () {
status = database->OpenDatabase(options, location);
}
/** CLOSE WORKER **/
+CloseWorker::~CloseWorker () {}
+
void CloseWorker::Execute () {
database->CloseDatabase();
}
@@ -38,26 +44,13 @@ void CloseWorker::WorkComplete () {
/** IO WORKER (abstract) **/
+IOWorker::~IOWorker () {}
+
void IOWorker::WorkComplete () {
AsyncWorker::WorkComplete();
keyPtr.Dispose();
}
-/** WRITE WORKER **/
-
-WriteWorker::~WriteWorker () {
- delete options;
-}
-
-void WriteWorker::Execute () {
- status = database->PutToDatabase(options, key, value);
-}
-
-void WriteWorker::WorkComplete () {
- IOWorker::WorkComplete();
- valuePtr.Dispose();
-}
-
/** READ WORKER **/
ReadWorker::~ReadWorker () {
@@ -86,17 +79,32 @@ void DeleteWorker::Execute () {
status = database->DeleteFromDatabase(options, key);
}
+/** WRITE WORKER **/
+
+void WriteWorker::Execute () {
+ status = database->PutToDatabase(options, key, value);
+}
+
+void WriteWorker::WorkComplete () {
+ IOWorker::WorkComplete();
+ valuePtr.Dispose();
+}
+
/** BATCH WORKER **/
BatchWorker::~BatchWorker () {
- for (unsigned int i = 0; i < operations.size(); i++)
- delete operations[i];
- operations.clear();
+ for (vector<BatchOp*>::iterator it = operations->begin(); it != operations->end();) {
+ delete *it;
+ it = operations->erase(it);
+ }
+ delete operations;
+ delete options;
}
void BatchWorker::Execute () {
WriteBatch batch;
- for (unsigned int i = 0; i < operations.size(); i++)
- operations[i]->Execute(&batch);
+ for (vector<BatchOp*>::iterator it = operations->begin(); it != operations->end();) {
+ (*it++)->Execute(&batch);
+ }
status = database->WriteBatchToDatabase(options, &batch);
}
diff --git a/src/database_async.h b/src/database_async.h
index da17e17..5e95e62 100644
--- a/src/database_async.h
+++ b/src/database_async.h
@@ -24,18 +24,17 @@ public:
) : AsyncWorker(database, callback)
, location(location)
{
- options = new Options();
+ options = new Options();
options->create_if_missing = createIfMissing;
- options->error_if_exists = errorIfExists;
+ options->error_if_exists = errorIfExists;
};
- ~OpenWorker () {
- delete options;
- }
+ virtual ~OpenWorker ();
+ virtual void Execute ();
- string location;
- Options* options;
- virtual void Execute ();
+private:
+ string location;
+ Options* options;
};
class CloseWorker : public AsyncWorker {
@@ -46,10 +45,9 @@ public:
) : AsyncWorker(database, callback)
{};
- virtual void Execute ();
-
-private:
- virtual void WorkComplete ();
+ virtual ~CloseWorker ();
+ virtual void Execute ();
+ virtual void WorkComplete ();
};
class IOWorker : public AsyncWorker {
@@ -64,11 +62,12 @@ public:
, keyPtr(keyPtr)
{};
- virtual void WorkComplete ();
+ virtual ~IOWorker ();
+ virtual void WorkComplete ();
protected:
- Slice key;
- Persistent<Object> keyPtr;
+ Slice key;
+ Persistent<Object> keyPtr;
};
class ReadWorker : public IOWorker {
@@ -83,16 +82,13 @@ public:
options = new ReadOptions();
};
- ~ReadWorker ();
-
- ReadOptions* options;
- virtual void Execute ();
-
-protected:
- virtual void HandleOKCallback ();
+ virtual ~ReadWorker ();
+ virtual void Execute ();
+ virtual void HandleOKCallback ();
private:
- string value;
+ ReadOptions* options;
+ string value;
};
class DeleteWorker : public IOWorker {
@@ -105,16 +101,15 @@ public:
, Persistent<Object> keyPtr
) : IOWorker(database, callback, key, keyPtr)
{
- options = new WriteOptions();
- options->sync = sync;
+ options = new WriteOptions();
+ options->sync = sync;
};
- ~DeleteWorker ();
-
- virtual void Execute ();
+ virtual ~DeleteWorker ();
+ virtual void Execute ();
protected:
- WriteOptions* options;
+ WriteOptions* options;
};
class WriteWorker : public DeleteWorker {
@@ -132,14 +127,12 @@ public:
, valuePtr(valuePtr)
{};
- ~WriteWorker ();
-
- virtual void Execute ();
- virtual void WorkComplete ();
+ virtual void Execute ();
+ virtual void WorkComplete ();
private:
- Slice value;
- Persistent<Object> valuePtr;
+ Slice value;
+ Persistent<Object> valuePtr;
};
class BatchWorker : public AsyncWorker {
@@ -147,22 +140,21 @@ public:
BatchWorker (
Database* database
, Persistent<Function> callback
- , vector<BatchOp*> operations
+ , vector<BatchOp*>* operations
, bool sync
) : AsyncWorker(database, callback)
, operations(operations)
{
- options = new WriteOptions();
- options->sync = sync;
+ options = new WriteOptions();
+ options->sync = sync;
};
- ~BatchWorker ();
-
- virtual void Execute ();
+ virtual ~BatchWorker ();
+ virtual void Execute ();
private:
- WriteOptions* options;
- vector<BatchOp*> operations;
+ WriteOptions* options;
+ vector<BatchOp*>* operations;
};
#endif
diff --git a/src/iterator.cc b/src/iterator.cc
index 371e460..f1cf20b 100644
--- a/src/iterator.cc
+++ b/src/iterator.cc
@@ -15,13 +15,6 @@ using namespace v8;
using namespace node;
using namespace levelup;
-LU_OPTION ( start );
-LU_OPTION ( end );
-LU_OPTION ( limit );
-LU_OPTION ( reverse );
-LU_OPTION ( keys );
-LU_OPTION ( values );
-
bool levelup::Iterator::GetIterator () {
if (dbIterator == NULL) {
dbIterator = database->NewIterator(options);
diff --git a/src/iterator.h b/src/iterator.h
index bf844d6..4970350 100644
--- a/src/iterator.h
+++ b/src/iterator.h
@@ -15,26 +15,33 @@ using namespace leveldb;
namespace levelup {
+LU_OPTION ( start );
+LU_OPTION ( end );
+LU_OPTION ( limit );
+LU_OPTION ( reverse );
+LU_OPTION ( keys );
+LU_OPTION ( values );
+
Handle<Value> CreateIterator (const Arguments& args);
class Iterator : public node::ObjectWrap {
public:
- static void Init ();
+ static void Init ();
static v8::Handle<v8::Value> NewInstance (const v8::Arguments& args);
- bool IteratorNext (string& key, string& value);
+ bool IteratorNext (string& key, string& value);
Status IteratorStatus ();
- void IteratorEnd ();
+ void IteratorEnd ();
private:
Iterator (
- Database* database
- , Slice* start
- , string* end
- , bool reverse
- , bool keys
- , bool values
- , int limit
+ Database* database
+ , Slice* start
+ , string* end
+ , bool reverse
+ , bool keys
+ , bool values
+ , int limit
) : database(database)
, start(start)
, end(end)
@@ -56,16 +63,16 @@ private:
delete end;
};
- Database* database;
- leveldb::Iterator* dbIterator;
- ReadOptions* options;
- Slice* start;
- string* end;
- bool reverse;
- bool keys;
- bool values;
- int limit;
- int count;
+ Database* database;
+ leveldb::Iterator* dbIterator;
+ ReadOptions* options;
+ Slice* start;
+ string* end;
+ bool reverse;
+ bool keys;
+ bool values;
+ int limit;
+ int count;
bool GetIterator ();
diff --git a/src/iterator_async.cc b/src/iterator_async.cc
index 0314a6a..2a4788c 100644
--- a/src/iterator_async.cc
+++ b/src/iterator_async.cc
@@ -17,6 +17,8 @@ using namespace v8;
using namespace node;
using namespace leveldb;
+NextWorker::~NextWorker () {}
+
void NextWorker::Execute () {
ok = iterator->IteratorNext(key, value);
if (!ok)
@@ -37,6 +39,8 @@ void NextWorker::HandleOKCallback () {
}
}
+EndWorker::~EndWorker () {}
+
void EndWorker::Execute () {
iterator->IteratorEnd();
}
diff --git a/src/iterator_async.h b/src/iterator_async.h
index 3d265b5..db57fc6 100644
--- a/src/iterator_async.h
+++ b/src/iterator_async.h
@@ -13,33 +13,30 @@ using namespace std;
using namespace v8;
using namespace leveldb;
-class NextWorker : public AsyncWorker {
+class NextWorker : public AsyncWorker {
public:
NextWorker (
- levelup::Iterator* iterator
+ levelup::Iterator* iterator
, Persistent<Function> dataCallback
, Persistent<Function> endCallback
) : AsyncWorker(database, dataCallback)
, iterator(iterator)
, endCallback(endCallback)
- { };
-
- ~NextWorker () {};
-
- virtual void Execute ();
+ {};
-protected:
- virtual void HandleOKCallback ();
+ virtual ~NextWorker ();
+ virtual void Execute ();
+ virtual void HandleOKCallback ();
private:
- levelup::Iterator* iterator;
+ levelup::Iterator* iterator;
Persistent<Function> endCallback;
- string key;
- string value;
- bool ok;
+ string key;
+ string value;
+ bool ok;
};
-class EndWorker : public AsyncWorker {
+class EndWorker : public AsyncWorker {
public:
EndWorker (
levelup::Iterator* iterator
@@ -48,12 +45,11 @@ public:
, iterator(iterator)
{};
- ~EndWorker () {};
-
- virtual void Execute ();
+ virtual ~EndWorker ();
+ virtual void Execute ();
private:
- levelup::Iterator* iterator;
+ levelup::Iterator* iterator;
};
#endif
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/node-leveldown.git
More information about the Pkg-javascript-commits
mailing list