nodejs-db-informix  master
nodejs bindings for Informix
 All Classes Functions Pages
binding.h
1 #ifndef __BINDING_H_INCLUDED__
2 #define __BINDING_H_INCLUDED__
3 
4 #include <node.h>
5 #include <node_version.h>
6 #include <string>
7 #include "node_defs.h"
8 #include "connection.h"
9 #include "events.h"
10 #include "exception.h"
11 #include "query.h"
12 
13 namespace nodejs_db {
14 class Binding : public EventEmitter {
15  public:
16  Connection* connection;
17 
18  protected:
20  v8::Persistent<v8::Object> context;
21  Binding* binding;
22  const char* error;
23  };
24  v8::Persistent<v8::Function>* cbConnect;
25 
26  Binding();
27  ~Binding();
28  static void Init(v8::Handle<v8::Object> target, v8::Persistent<v8::FunctionTemplate> constructorTemplate);
29  static v8::Handle<v8::Value> Connect(const v8::Arguments& args);
30  static v8::Handle<v8::Value> Disconnect(const v8::Arguments& args);
31  static v8::Handle<v8::Value> IsConnected(const v8::Arguments& args);
32  static v8::Handle<v8::Value> Escape(const v8::Arguments& args);
33  static v8::Handle<v8::Value> Name(const v8::Arguments& args);
34  static v8::Handle<v8::Value> Query(const v8::Arguments& args);
35  static uv_async_t g_async;
36  static void uvConnect(uv_work_t* uvRequest);
37  static void uvConnectFinished(uv_work_t* uvRequest, int status);
38  static void connect(connect_request_t* request);
39  static void connectFinished(connect_request_t* request);
40  virtual v8::Handle<v8::Value> set(const v8::Local<v8::Object> options) = 0;
41  virtual v8::Persistent<v8::Object> createQuery() const = 0;
42 };
43 }
44 
45 #endif // __BINDING_H_INCLUDED__