[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