nodejs-db-informix  master
nodejs bindings for Informix
 All Classes Functions Pages
connection.h
1 #ifndef __NODEJS_CONNECTION_H_INCLUDED__
2 #define __NODEJS_CONNECTION_H_INCLUDED__
3 
4 #include <pthread.h>
5 #include <stdint.h>
6 #include <cstring>
7 #include <string>
8 #include "exception.h"
9 #include "result.h"
10 
11 namespace nodejs_db {
12 class Connection {
13  public:
14  static pthread_mutex_t staticConnectionLock;
15 
16  const char quoteString;
17 
18  Connection();
19  virtual ~Connection();
20  virtual std::string getHostname() const;
21  virtual void setHostname(const std::string& hostname);
22  virtual std::string getUser() const;
23  virtual void setUser(const std::string& user);
24  virtual std::string getPassword() const;
25  virtual void setPassword(const std::string& password);
26  virtual std::string getDatabase() const;
27  virtual void setDatabase(const std::string& database);
28  virtual uint32_t getPort() const;
29  virtual void setPort(uint32_t port);
30  virtual bool isAlive(bool ping = false);
31  virtual std::string escapeName(const std::string& string) const throw(Exception&);
32  virtual void open() throw(Exception&) = 0;
33  virtual void close() = 0;
34  virtual std::string escape(const std::string& string) const throw(Exception&) = 0;
35  virtual std::string version() const = 0;
36  virtual Result* query(const std::string& query) const throw(Exception&) = 0;
37  virtual Result* query_x(const std::string& query) const throw(Exception&) = 0;
38  virtual void lock();
39  virtual void unlock();
40 
41  protected:
42  std::string hostname;
43  std::string user;
44  std::string password;
45  std::string database;
46  uint32_t port;
47  bool alive;
48  char quoteName;
49  pthread_mutex_t *connectionLock;
50 };
51 }
52 
53 #endif // __NODEJS_CONNECTION_H_INCLUDED__