Skip Headers
Oracle® Call Interface Programmer's Guide,
11g Release 2 (11.2)

Part Number E10646-03
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Index
Index
Go to Master Index
Master Index
Go to Feedback page
Contact Us

Go to previous page
Previous
Go to next page
Next
View PDF

Cartridge Services — Memory Services

This section describes the memory services functions.

Table 20-3 Memory Services Functions

Function/Page Purpose

OCIDurationBegin()

Starts a user duration.

OCIDurationEnd()

Terminates a user duration.

OCIMemoryAlloc()

Allocates memory of a given size from a given duration.

OCIMemoryResize()

Resizes a memory chunk.

OCIMemoryFree()

Frees a memory chunk.


See Also:

For more information about using these functions, see Oracle Database Data Cartridge Developer's Guide

OCIDurationBegin()

Purpose

Starts a user duration.

Syntax

sword OCIDurationBegin ( OCIEnv              *env,
                         OCIError            *err,
                         const OCISvcCtx     *svc, 
                         OCIDuration         parent,
                         OCIDuration         *duration );

Parameters

env (IN/OUT)

The OCI environment handle. This should be passed as NULL for cartridge services.

err (IN/OUT)

The OCI error handle. If there is an error, it is recorded in err and this function returns OCI_ERROR. Diagnostic information can be obtained by calling OCIErrorGet().

svc (IN)

The OCI service context handle.

parent (IN)

The duration number of the parent duration. One of these:

duration (OUT)

An identifier unique to the newly created user duration.

Comments

This function starts a user duration. A user can have multiple active user durations simultaneously. The user durations do not have to be nested. The duration parameter is used to return a number which uniquely identifies the duration created by this call.

Note that the environment and service context parameters cannot both be NULL.

Related Functions

OCIDurationEnd()


OCIDurationEnd()

Purpose

Terminates a user duration.

Syntax

sword OCIDurationEnd ( OCIEnv             *env, 
                       OCIError           *err, 
                       const OCISvcCtx    *svc,
                       OCIDuration        duration );

Parameters

env (IN/OUT)

The OCI environment handle.

err (IN/OUT)

The OCI error handle. If there is an error, it is recorded in err and this function returns OCI_ERROR. Diagnostic information can be obtained by calling OCIErrorGet().

svc (IN)

OCI service context (this should be passed as NULL for cartridge services, otherwise non-NULL).

duration (IN)

A user duration previously created by OCIDurationBegin().

Comments

This function terminates a user duration.

Note that the environment and service context parameters cannot both be NULL.

Related Functions

OCIDurationBegin()


OCIMemoryAlloc()

Purpose

This call allocates memory of a given size from a given duration.

Syntax

sword OCIMemoryAlloc( void         *hndl, 
                      OCIError     *err, 
                      void         **mem, 
                      OCIDuration  dur, 
                      ub4          size, 
                      ub4          flags );

Parameters

hndl (IN)

The OCI environment handle (OCIEnv *), if dur is OCI_DURATION_PROCESS, otherwise, the user session handle (OCISession *).

err (IN)

The error handle.

mem (OUT)

Memory allocated.

dur (IN)

A previously created user duration or one of the following:

OCI_DURATION_CALLOUT

OCI_DURATION_STATEMENT

OCI_DURATION_SESSION

OCI_DURATION_PROCESS

size (IN)

Size of memory to be allocated.

flags (IN)

Set OCI_MEMORY_CLEARED bit to get memory that has been cleared.

Comments

To allocate memory for duration of callout of agent, that is, external procedure duration, use OCIExtProcAllocCallMemory() or OCIMemoryAlloc() with dur as OCI_DURATION_CALLOUT.

Returns

Error code.


OCIMemoryResize()

Purpose

This call resizes a memory chunk to a new size.

Syntax

sword OCIMemoryResize( void         *hndl, 
                       OCIError     *err, 
                       void         **mem, 
                       ub4          newsize, 
                       ub4          flags );

Parameters

hndl (IN)

The OCI environment or user session handle.

err (IN)

The error handle.

mem (IN/OUT)

Pointer to memory allocated previously using OCIMemoryAlloc().

newsize (IN)

Size of memory requested.

flags (IN)

Set OCI_MEMORY_CLEARED bit to get memory that has been cleared

Comments

Memory must have been allocated before this function can be called to resize.

Returns

Error code.


OCIMemoryFree()

Purpose

This call frees a memory chunk.

Syntax

sword OCIMemoryFree ( void     *hndl, 
                      OCIError *err, 
                      void     *mem );

Parameters

hndl (IN)

The OCI environment or user session handle.

err (IN)

The error handle.

mem (IN/OUT)

Pointer to memory allocated previously using OCIMemoryAlloc().

Returns

Error code.