CUBRID Engine  latest
api_value_indexer.c File Reference
#include "config.h"
#include <string.h>
#include <assert.h>
#include "api_util.h"
#include "api_common.h"
Include dependency graph for api_value_indexer.c:

Go to the source code of this file.

Classes

struct  array_indexer_s
 
struct  list_indexer_elem_s
 
struct  list_indexer_s
 
struct  li_mapf_arg
 

Typedefs

typedef struct array_indexer_s ARRAY_INDEXER
 
typedef struct list_indexer_elem_s LIST_INDEXER_ELEM
 
typedef struct list_indexer_s LIST_INDEXER
 

Functions

static int ai_api_check (VALUE_INDEXER *indexer, int index, CHECK_PURPOSE pup)
 
static int ai_api_length (VALUE_INDEXER *indexer, int *len)
 
static int ai_api_get (VALUE_INDEXER *indexer, int index, VALUE_AREA **rva, API_VALUE **rv)
 
static int ai_api_set (VALUE_INDEXER *indexer, int index, VALUE_AREA *va, API_VALUE *dv)
 
static int ai_api_map (VALUE_INDEXER *indexer, int(*mapf)(void *, int, VALUE_AREA *, API_VALUE *), void *arg)
 
static int ai_api_insert (VALUE_INDEXER *indexer, int index, VALUE_AREA *va, API_VALUE *dval)
 
static int ai_api_delete (VALUE_INDEXER *indexer, int index, VALUE_AREA **rva, API_VALUE **dbval)
 
static void ai_api_destroy (VALUE_INDEXER *indexer, void(*df)(VALUE_AREA *va, API_VALUE *db))
 
static int li_api_check (VALUE_INDEXER *indexer, int index, CHECK_PURPOSE pup)
 
static int li_api_length (VALUE_INDEXER *indexer, int *len)
 
static int li_api_get (VALUE_INDEXER *indexer, int index, VALUE_AREA **rva, API_VALUE **rv)
 
static int li_api_set (VALUE_INDEXER *indexer, int index, VALUE_AREA *va, API_VALUE *val)
 
static int li_api_map (VALUE_INDEXER *indexer, int(*mapf)(void *, int, VALUE_AREA *, API_VALUE *), void *arg)
 
static int li_api_insert (VALUE_INDEXER *indexer, int index, VALUE_AREA *va, API_VALUE *dval)
 
static int li_api_delete (VALUE_INDEXER *indexer, int index, VALUE_AREA **rva, API_VALUE **dbval)
 
static void li_api_destroy (VALUE_INDEXER *indexer, void(*df)(VALUE_AREA *va, API_VALUE *db))
 
static LIST_INDEXER_ELEMli_getf (LIST_INDEXER *li, int index)
 
static int li_mapf (dlisth *h, void *arg, int *cont)
 
int array_indexer_create (int nvalue, VALUE_INDEXER **rvi)
 
int list_indexer_create (VALUE_INDEXER **rvi)
 

Variables

static VALUE_INDEXER_IFS ARRAY_INDEXER_IFS_
 
static VALUE_INDEXER_IFS LIST_INDEXER_IFS_
 

Typedef Documentation

Definition at line 29 of file api_value_indexer.c.

typedef struct list_indexer_s LIST_INDEXER

Definition at line 31 of file api_value_indexer.c.

Definition at line 30 of file api_value_indexer.c.

Function Documentation

static int ai_api_check ( VALUE_INDEXER indexer,
int  index,
CHECK_PURPOSE  pup 
)
static

Definition at line 91 of file api_value_indexer.c.

References assert, ER_INTERFACE_GENERIC, NO_ERROR, NULL, and array_indexer_s::nvalue.

static int ai_api_delete ( VALUE_INDEXER indexer,
int  index,
VALUE_AREA **  rva,
API_VALUE **  dbval 
)
static

Definition at line 208 of file api_value_indexer.c.

References ER_INTERFACE_NOT_SUPPORTED_OPERATION.

static void ai_api_destroy ( VALUE_INDEXER indexer,
void(*)(VALUE_AREA *va, API_VALUE *db)  df 
)
static
static int ai_api_get ( VALUE_INDEXER indexer,
int  index,
VALUE_AREA **  rva,
API_VALUE **  rv 
)
static
static int ai_api_insert ( VALUE_INDEXER indexer,
int  index,
VALUE_AREA va,
API_VALUE dval 
)
static

Definition at line 194 of file api_value_indexer.c.

References ER_INTERFACE_NOT_SUPPORTED_OPERATION.

static int ai_api_length ( VALUE_INDEXER indexer,
int *  len 
)
static

Definition at line 112 of file api_value_indexer.c.

References assert, NO_ERROR, NULL, and array_indexer_s::nvalue.

static int ai_api_map ( VALUE_INDEXER indexer,
int(*)(void *, int, VALUE_AREA *, API_VALUE *)  mapf,
void *  arg 
)
static
static int ai_api_set ( VALUE_INDEXER indexer,
int  index,
VALUE_AREA va,
API_VALUE dv 
)
static
static int li_api_check ( VALUE_INDEXER indexer,
int  index,
CHECK_PURPOSE  pup 
)
static
static int li_api_delete ( VALUE_INDEXER indexer,
int  index,
VALUE_AREA **  rva,
API_VALUE **  dbval 
)
static
static void li_api_destroy ( VALUE_INDEXER indexer,
void(*)(VALUE_AREA *va, API_VALUE *db)  df 
)
static
static int li_api_get ( VALUE_INDEXER indexer,
int  index,
VALUE_AREA **  rva,
API_VALUE **  rv 
)
static
static int li_api_length ( VALUE_INDEXER indexer,
int *  len 
)
static

Definition at line 287 of file api_value_indexer.c.

References assert, list_indexer_s::nelems, NO_ERROR, and NULL.

static int li_api_map ( VALUE_INDEXER indexer,
int(*)(void *, int, VALUE_AREA *, API_VALUE *)  mapf,
void *  arg 
)
static
static int li_api_set ( VALUE_INDEXER indexer,
int  index,
VALUE_AREA va,
API_VALUE val 
)
static
static LIST_INDEXER_ELEM* li_getf ( LIST_INDEXER li,
int  index 
)
static
static int li_mapf ( dlisth h,
void *  arg,
int *  cont 
)
static

Definition at line 450 of file api_value_indexer.c.

References li_mapf_arg::arg, assert, li_mapf_arg::index, li_mapf_arg::mapf, NO_ERROR, NULL, list_indexer_elem_s::va, and list_indexer_elem_s::value.

Referenced by li_api_map().

Here is the caller graph for this function:

Variable Documentation

VALUE_INDEXER_IFS ARRAY_INDEXER_IFS_
static
Initial value:
= {
}
static int ai_api_length(VALUE_INDEXER *indexer, int *len)
static int ai_api_delete(VALUE_INDEXER *indexer, int index, VALUE_AREA **rva, API_VALUE **dbval)
static int ai_api_insert(VALUE_INDEXER *indexer, int index, VALUE_AREA *va, API_VALUE *dval)
static void ai_api_destroy(VALUE_INDEXER *indexer, void(*df)(VALUE_AREA *va, API_VALUE *db))
static int ai_api_set(VALUE_INDEXER *indexer, int index, VALUE_AREA *va, API_VALUE *dv)
static int ai_api_check(VALUE_INDEXER *indexer, int index, CHECK_PURPOSE pup)
static int ai_api_map(VALUE_INDEXER *indexer, int(*mapf)(void *, int, VALUE_AREA *, API_VALUE *), void *arg)
static int ai_api_get(VALUE_INDEXER *indexer, int index, VALUE_AREA **rva, API_VALUE **rv)

Definition at line 240 of file api_value_indexer.c.

Referenced by array_indexer_create().

VALUE_INDEXER_IFS LIST_INDEXER_IFS_
static
Initial value:
= {
}
static int li_api_length(VALUE_INDEXER *indexer, int *len)
static int li_api_get(VALUE_INDEXER *indexer, int index, VALUE_AREA **rva, API_VALUE **rv)
static int li_api_check(VALUE_INDEXER *indexer, int index, CHECK_PURPOSE pup)
static void li_api_destroy(VALUE_INDEXER *indexer, void(*df)(VALUE_AREA *va, API_VALUE *db))
static int li_api_insert(VALUE_INDEXER *indexer, int index, VALUE_AREA *va, API_VALUE *dval)
static int li_api_map(VALUE_INDEXER *indexer, int(*mapf)(void *, int, VALUE_AREA *, API_VALUE *), void *arg)
static int li_api_delete(VALUE_INDEXER *indexer, int index, VALUE_AREA **rva, API_VALUE **dbval)
static int li_api_set(VALUE_INDEXER *indexer, int index, VALUE_AREA *va, API_VALUE *val)

Definition at line 618 of file api_value_indexer.c.

Referenced by list_indexer_create().