Cursor< K, V > Class Template Reference

#include <Cursor.h>

Collaboration diagram for Cursor< K, V >:

Public Member Functions

 Cursor (ion_dictionary_t *dictionary, ion_predicate_t *predicate)
 
 ~Cursor ()
 
bool hasNext ()
 
bool next ()
 
getKey ()
 
getValue ()
 

Private Attributes

ion_dictionary_tdictionary
 
ion_dict_cursor_tcursor
 
ion_record_t record
 

Detailed Description

template<typename K, typename V>
class Cursor< K, V >

Definition at line 42 of file Cursor.h.

Constructor & Destructor Documentation

template<typename K, typename V>
Cursor< K, V >::Cursor ( ion_dictionary_t dictionary,
ion_predicate_t predicate 
)
inline

Definition at line 44 of file Cursor.h.

47  {
48  this->dictionary = dictionary;
49  dictionary_find(dictionary, predicate, &cursor);
50  record.key = malloc(dictionary->instance->record.key_size);
51  record.value = malloc(dictionary->instance->record.value_size);
52 }
ion_record_info_t record
ion_dictionary_parent_t * instance
ion_value_t value
Definition: kv_system.h:318
ion_key_t key
Definition: kv_system.h:316
ion_dict_cursor_t * cursor
Definition: Cursor.h:90
ion_key_size_t key_size
Definition: kv_system.h:307
ion_err_t dictionary_find(ion_dictionary_t *dictionary, ion_predicate_t *predicate, ion_dict_cursor_t **cursor)
Uses the given predicate and cursor to search the dictionary.
Definition: dictionary.c:562
ion_dictionary_t * dictionary
Definition: Cursor.h:89
ion_record_t record
Definition: Cursor.h:91
ion_value_size_t value_size
Definition: kv_system.h:309

Here is the call graph for this function:

template<typename K, typename V>
Cursor< K, V >::~Cursor ( )
inline

Definition at line 54 of file Cursor.h.

55  {
57  free(record.key);
58  free(record.value);
59 }
ion_value_t value
Definition: kv_system.h:318
void(* destroy)(ion_dict_cursor_t **)
ion_key_t key
Definition: kv_system.h:316
ion_dict_cursor_t * cursor
Definition: Cursor.h:90
ion_record_t record
Definition: Cursor.h:91

Member Function Documentation

template<typename K, typename V>
K Cursor< K, V >::getKey ( )
inline

Definition at line 76 of file Cursor.h.

77  {
78  return *((K *) record.key);
79 }
ion_key_t key
Definition: kv_system.h:316
ion_record_t record
Definition: Cursor.h:91
template<typename K, typename V>
V Cursor< K, V >::getValue ( )
inline

Definition at line 82 of file Cursor.h.

83  {
84  return *((V *) record.value);
85 }
ion_value_t value
Definition: kv_system.h:318
ion_record_t record
Definition: Cursor.h:91
template<typename K, typename V>
bool Cursor< K, V >::hasNext ( )
inline

Definition at line 62 of file Cursor.h.

63  {
65 }
ion_cursor_status_t status
ion_dict_cursor_t * cursor
Definition: Cursor.h:90
template<typename K, typename V>
bool Cursor< K, V >::next ( )
inline

Definition at line 68 of file Cursor.h.

69  {
71 
72  return status == cs_cursor_initialized || status == cs_cursor_active;
73 }
ion_cursor_status_t(* next)(ion_dict_cursor_t *, ion_record_t *record)
ion_dict_cursor_t * cursor
Definition: Cursor.h:90
ion_record_t record
Definition: Cursor.h:91
char ion_cursor_status_t
A type for the status of a cursor.

Member Data Documentation

template<typename K, typename V>
ion_dict_cursor_t* Cursor< K, V >::cursor
private

Definition at line 90 of file Cursor.h.

template<typename K, typename V>
ion_dictionary_t* Cursor< K, V >::dictionary
private

Definition at line 89 of file Cursor.h.

template<typename K, typename V>
ion_record_t Cursor< K, V >::record
private

Definition at line 91 of file Cursor.h.


The documentation for this class was generated from the following file: