6d48df2263cdb962b7c1ac5ee0832af43bfc4a3b
[anna.git] / Descriptor.hpp
1 // ANNA - Anna is Not Nothingness Anymore                                                         //
2 //                                                                                                //
3 // (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo                         //
4 //                                                                                                //
5 // See project site at http://redmine.teslayout.com/projects/anna-suite                           //
6 // See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE //
7
8
9 #ifndef anna_dbms_oracle_Descriptor_hpp
10 #define anna_dbms_oracle_Descriptor_hpp
11
12 #include <anna/core/RuntimeException.hpp>
13
14 struct OCIEnv;
15 struct OCIError;
16 struct OCIBind;
17 struct OCILobLocator;
18 struct OCISvcCtx;
19
20 namespace anna {
21
22 namespace dbms {
23
24 namespace oracle  {
25
26 class Database;
27 class Connection;
28
29 struct Descriptor {
30   dvoid** reference;
31   OCIEnv* env;
32   OCIError* error;
33   OCISvcCtx* context;
34   int type;
35
36   Descriptor(dvoid** _handle) : reference(_handle) {
37     *reference = NULL; env = NULL; error = NULL; context = NULL; type = -1;
38   }
39   virtual ~Descriptor();
40
41   void allocate(Database&, Connection*,  const int type)  noexcept(false);
42 };
43
44 }
45 }
46 }
47
48 #endif
49