什么是OCCI环境和环境?

时间:2009-04-06 14:49:29

标签: c++ oracle oci

我正在探索一个使用Oracle API的软件,据我所知,对象方法通常期望将“OCCI上下文”或“OCCI环境”值作为参数。

一个例子是Account对象的构造函数:

Account( oracle::occi::Environment* env );

后来超载了

Account( void* oraCtx );

我可以理解,他们不得不使用某种“连接处理程序”,但我想知道更多。

我用Google搜索但我找不到任何足够清晰的内容,似乎每个文档都是从您已经了解Oracle API的假设开始的。

感谢。

1 个答案:

答案 0 :(得分:3)

OCCI Environment可让您定义自己的内存管理功能,OCCI稍后会使用这些功能。

当您创建environment时,您会将指针传递给您自己的mallocreallocfree

static Environment * createEnvironment(Mode mode = DEFAULT,
   void *ctxp = 0,
   void *(*malocfp)(void *ctxp, size_t size) = 0,
   void *(*ralocfp)(void *ctxp, void *memptr, size_t newsize) = 0,
   void (*mfreefp)(void *ctxp, void *memptr) = 0);

Context只是EnvironmentOCCI调用它们时传递给这些函数的指针。