Functions to Access the Real-time Vehicle Database (C-Interface). More...
#include <errno.h>#include <pthread.h>#include "kogmo_rtdb_types.h"Go to the source code of this file.
Defines | |
| #define | _const |
| constant argument, but irrelevant in C | |
| #define | HAVE_DEFINED_setstatus |
| #define | KOGMO_RTDB_ERR_NOPERM EACCES |
| 13 Permission denied | |
| #define | KOGMO_RTDB_ERR_NOTFOUND ENOENT |
| 2 Object/Process not found | |
| #define | KOGMO_RTDB_ERR_NOMEMORY ENOMEM |
| 12 Out of Memory | |
| #define | KOGMO_RTDB_ERR_INVALID EINVAL |
| 22 Invalid Argument(s) | |
| #define | KOGMO_RTDB_ERR_OUTOFOBJ EMFILE |
| 24 Out of Object/Process Slots | |
| #define | KOGMO_RTDB_ERR_NOTUNIQ EEXIST |
| 17 Unique Object already exists | |
| #define | KOGMO_RTDB_ERR_UNKNOWN EPERM |
| 1 General/unspecified error (-1) | |
| #define | KOGMO_RTDB_ERR_CONNDENY ECONNREFUSED |
| 111 Connection refused | |
| #define | KOGMO_RTDB_ERR_NOCONN ENOTCONN |
| 107 Not connected to the RTDB, can be returned by any function with a database handle, | |
| #define | KOGMO_RTDB_ERR_HISTWRAP ESTALE |
| even if not explicitly specified as possible return value | |
| #define | KOGMO_RTDB_ERR_TOOFAST EAGAIN |
| 11 Updates too fast, try again | |
| #define | KOGMO_RTDB_ERR_TIMEOUT ETIMEDOUT |
| Waiting for data timed out. | |
Functions | |
| int | kogmo_rtdb_obj_initinfo (kogmo_rtdb_handle_t *db_h, kogmo_rtdb_obj_info_t *metadata_p, _const char *name, kogmo_rtdb_objtype_t otype, kogmo_rtdb_objsize_t size_max) |
| Initialize Metadata for a new Object. | |
| kogmo_rtdb_objid_t | kogmo_rtdb_obj_insert (kogmo_rtdb_handle_t *db_h, kogmo_rtdb_obj_info_t *metadata_p) |
| Insert a new Object into the Database. | |
| int | kogmo_rtdb_obj_delete (kogmo_rtdb_handle_t *db_h, kogmo_rtdb_obj_info_t *metadata_p) |
| Delete an existing Object. | |
| int | kogmo_rtdb_obj_readinfo (kogmo_rtdb_handle_t *db_h, kogmo_rtdb_objid_t oid, kogmo_timestamp_t ts, kogmo_rtdb_obj_info_t *metadata_p) |
| Read the Metadata of an Object given by its Object-ID. | |
| char * | kogmo_rtdb_obj_dumpinfo_str (kogmo_rtdb_handle_t *db_h, kogmo_rtdb_obj_info_t *metadata_p) |
| Dump the Metadata of a given Object into an ASCII-String. | |
| kogmo_rtdb_objid_t | kogmo_rtdb_obj_searchinfo (kogmo_rtdb_handle_t *db_h, _const char *name, kogmo_rtdb_objtype_t otype, kogmo_rtdb_objid_t parent_oid, kogmo_rtdb_objid_t proc_oid, kogmo_timestamp_t ts, kogmo_rtdb_objid_list_t idlist, int nth) |
| Find Objects by their Name, Parent, creating Process and Time. | |
| kogmo_rtdb_objid_t | kogmo_rtdb_obj_searchinfo_wait (kogmo_rtdb_handle_t *db_h, _const char *name, kogmo_rtdb_objtype_t otype, kogmo_rtdb_objid_t parent_oid, kogmo_rtdb_objid_t proc_oid) |
| Search and Wait until an Object specified by its Name, Parent, creating Process and Time exists. | |
| kogmo_rtdb_objid_t | kogmo_rtdb_obj_searchinfo_wait_until (kogmo_rtdb_handle_t *db_h, _const char *name, kogmo_rtdb_objtype_t otype, kogmo_rtdb_objid_t parent_oid, kogmo_rtdb_objid_t proc_oid, kogmo_timestamp_t wakeup_ts) |
| Search and Wait until an Object specified by its Name, Parent, creating Process and Time exists, but return after a Timeout. | |
| int | kogmo_rtdb_obj_searchinfo_waitnext (kogmo_rtdb_handle_t *db_h, _const char *name, kogmo_rtdb_objtype_t otype, kogmo_rtdb_objid_t parent_oid, kogmo_rtdb_objid_t proc_oid, kogmo_rtdb_objid_list_t known_idlist, kogmo_rtdb_objid_list_t added_idlist, kogmo_rtdb_objid_list_t deleted_idlist) |
| Watch for the Creation and Deletion of Objects matching certain criteria and Wait until there is a Change. | |
| int | kogmo_rtdb_obj_searchinfo_waitnext_until (kogmo_rtdb_handle_t *db_h, _const char *name, kogmo_rtdb_objtype_t otype, kogmo_rtdb_objid_t parent_oid, kogmo_rtdb_objid_t proc_oid, kogmo_rtdb_objid_list_t known_idlist, kogmo_rtdb_objid_list_t added_idlist, kogmo_rtdb_objid_list_t deleted_idlist, kogmo_timestamp_t wakeup_ts) |
| Watch for the Creation and Deletion of Objects matching certain criteria and Wait until there is a Change, but return after a Timeout. | |
| int | kogmo_rtdb_obj_initdata (kogmo_rtdb_handle_t *db_h, kogmo_rtdb_obj_info_t *metadata_p, void *data_p) |
| Initialize a new data block for an existing object. | |
| int | kogmo_rtdb_obj_writedata (kogmo_rtdb_handle_t *db_h, kogmo_rtdb_objid_t oid, void *data_p) |
| Write the local Data block of an Object to the Database. | |
| kogmo_rtdb_objsize_t | kogmo_rtdb_obj_readdata (kogmo_rtdb_handle_t *db_h, kogmo_rtdb_objid_t oid, kogmo_timestamp_t ts, void *data_p, kogmo_rtdb_objsize_t size) |
| Read the latest Data of an Object from the Database. | |
| kogmo_rtdb_objsize_t | kogmo_rtdb_obj_readdata_older (kogmo_rtdb_handle_t *db_h, kogmo_rtdb_objid_t oid, kogmo_timestamp_t ts, void *data_p, kogmo_rtdb_objsize_t size) |
| Read the Data of an Object committed before a given Timestamp. | |
| kogmo_rtdb_objsize_t | kogmo_rtdb_obj_readdata_younger (kogmo_rtdb_handle_t *db_h, kogmo_rtdb_objid_t oid, kogmo_timestamp_t ts, void *data_p, kogmo_rtdb_objsize_t size) |
| Read the Data of an Object committed after a given Timestamp. | |
| kogmo_rtdb_objsize_t | kogmo_rtdb_obj_readdata_datatime (kogmo_rtdb_handle_t *db_h, kogmo_rtdb_objid_t oid, kogmo_timestamp_t ts, void *data_p, kogmo_rtdb_objsize_t size) |
| Read the Data of an Object from the Database that was valid for the given Data Timestamp. | |
| kogmo_rtdb_objsize_t | kogmo_rtdb_obj_readdata_dataolder (kogmo_rtdb_handle_t *db_h, kogmo_rtdb_objid_t oid, kogmo_timestamp_t ts, void *data_p, kogmo_rtdb_objsize_t size) |
| Read the Data of Object that has an Data Timestamp older than a given Timestamp. | |
| kogmo_rtdb_objsize_t | kogmo_rtdb_obj_readdata_datayounger (kogmo_rtdb_handle_t *db_h, kogmo_rtdb_objid_t oid, kogmo_timestamp_t ts, void *data_p, kogmo_rtdb_objsize_t size) |
| Read the Data of Object that has an Data Timestamp younger than a given Timestamp. | |
| kogmo_rtdb_objsize_t | kogmo_rtdb_obj_readdata_waitnext (kogmo_rtdb_handle_t *db_h, kogmo_rtdb_objid_t oid, kogmo_timestamp_t old_ts, void *data_p, kogmo_rtdb_objsize_t size) |
| Get the latest Data for an Object that has been committed after a given timestamp, and wait if there is no newer data. | |
| kogmo_rtdb_objsize_t | kogmo_rtdb_obj_readdata_waitnext_ptr (kogmo_rtdb_handle_t *db_h, kogmo_rtdb_objid_t oid, kogmo_timestamp_t old_ts, void *data_p, kogmo_rtdb_objsize_t size) |
| kogmo_rtdb_obj_readdata_waitnext() with pointer. | |
| kogmo_rtdb_objsize_t | kogmo_rtdb_obj_readdata_ptr (kogmo_rtdb_handle_t *db_h, kogmo_rtdb_objid_t oid, kogmo_timestamp_t ts, void *data_pp) |
| Get a Pointer to the latest Data of an Object within the Database. | |
| kogmo_rtdb_objsize_t | kogmo_rtdb_obj_writedata_ptr_begin (kogmo_rtdb_handle_t *db_h, kogmo_rtdb_objid_t oid, void *data_pp) |
| Start pointer-based write (fast but dangerous). | |
| kogmo_rtdb_objsize_t | kogmo_rtdb_obj_writedata_ptr_commit (kogmo_rtdb_handle_t *db_h, kogmo_rtdb_objid_t oid, void *data_pp) |
| Finish pointer-based write and publish data. | |
| kogmo_rtdb_objsize_t | kogmo_rtdb_obj_readdata_waitnext_until (kogmo_rtdb_handle_t *db_h, kogmo_rtdb_objid_t oid, kogmo_timestamp_t old_ts, void *data_p, kogmo_rtdb_objsize_t size, kogmo_timestamp_t wakeup_ts) |
| kogmo_rtdb_obj_readdata_waitnext() with wakeup. see: kogmo_rtdb_obj_readdata_waitnext() | |
| kogmo_rtdb_objsize_t | kogmo_rtdb_obj_readdata_waitnext_until_ptr (kogmo_rtdb_handle_t *db_h, kogmo_rtdb_objid_t oid, kogmo_timestamp_t old_ts, void *data_p, kogmo_rtdb_objsize_t size, kogmo_timestamp_t wakeup_ts) |
| kogmo_rtdb_obj_readdata_waitnext_ptr() with wakeup. see: kogmo_rtdb_obj_readdata_waitnext_ptr() | |
| kogmo_timestamp_t | kogmo_rtdb_timestamp_now (kogmo_rtdb_handle_t *db_h) |
| Get absolute Timestamp for current Time within the given database (can be different to kogmo_timestamp_now() when in simulation mode. | |
| int | kogmo_rtdb_timestamp_set (kogmo_rtdb_handle_t *db_h, kogmo_timestamp_t new_ts) |
| Set current Time to the given absolute Timestamp. This has only an effect if the rtdb is in simulation mode (kogmo_rtdb_man -s) and the clients use kogmo_rtdb_timestamp_now() instead of kogmo_timestamp_now()). | |
| int | kogmo_rtdb_connect_initinfo (kogmo_rtdb_connect_info_t *conninfo, _const char *dbhost, _const char *procname, float cycletime) |
| Init Info for a new Database Connection This does not connect. It's only for convenience. See kogmo_rtdb_connect_info_t. | |
| kogmo_rtdb_objid_t | kogmo_rtdb_connect (kogmo_rtdb_handle_t **db_h, kogmo_rtdb_connect_info_t *conninfo) |
| Open Connection to Real-time Vehicle Database. | |
| int | kogmo_rtdb_disconnect (kogmo_rtdb_handle_t *db_h, void *discinfo) |
| int | kogmo_rtdb_setstatus (kogmo_rtdb_handle_t *db_h, uint32_t status, _const char *msg, uint32_t flags) |
| int | kogmo_rtdb_cycle_done (kogmo_rtdb_handle_t *db_h, uint32_t flags) |
| int | kogmo_rtdb_pthread_create (kogmo_rtdb_handle_t *db_h, pthread_t *thread, pthread_attr_t *attr, void *(*start_routine)(void *), void *arg) |
| int | kogmo_rtdb_pthread_kill (kogmo_rtdb_handle_t *db_h, pthread_t thread, int sig) |
| int | kogmo_rtdb_pthread_join (kogmo_rtdb_handle_t *db_h, pthread_t thread, void **value_ptr) |
| int | kogmo_rtdb_sleep_until (kogmo_rtdb_handle_t *db_h, _const kogmo_timestamp_t wakeup_ts) |
| int | kogmo_rtdb_obj_searchinfo_lists_nonblocking (kogmo_rtdb_handle_t *db_h, _const char *name, kogmo_rtdb_objtype_t otype, kogmo_rtdb_objid_t parent_oid, kogmo_rtdb_objid_t proc_oid, kogmo_rtdb_objid_list_t known_idlist, kogmo_rtdb_objid_list_t added_idlist, kogmo_rtdb_objid_list_t deleted_idlist) |
| Temporary solution for simulation because of thread-blocking (boost problem?) similar to kogmo_rtdb_obj_searchinfo_waitnext() but non-blocking. | |
| kogmo_rtdb_objsize_t | kogmo_rtdb_obj_readdataslot_ptr (kogmo_rtdb_handle_t *db_h, int32_t mode, int32_t offset, kogmo_rtdb_obj_slot_t *objslot, void *data_pp) |
| (internal) Function to access object history slot-by-slot mode: 0=get latest + init objslot (use this first) 1=check old objslot + use offset for reading (use this afterwards and set offset) -1=use offset for reading (don't check old objslot - will not detect a wrap-around) | |
| kogmo_rtdb_objsize_t | kogmo_rtdb_obj_readdataslot_init (kogmo_rtdb_handle_t *db_h, kogmo_rtdb_obj_slot_t *objslot, kogmo_rtdb_objid_t oid) |
| Comfortable Function to access object history slot-by-slot see examples/kogmo_rtdb_slotreader.c for an example. | |
| kogmo_rtdb_objsize_t | kogmo_rtdb_obj_readdataslot_relative (kogmo_rtdb_handle_t *db_h, kogmo_rtdb_obj_slot_t *objslot, int offset, void *data_p, kogmo_rtdb_objsize_t size) |
| Comfortable Function to access object history slot-by-slot see examples/kogmo_rtdb_slotreader.c for an example. | |
| kogmo_rtdb_objsize_t | kogmo_rtdb_obj_readdataslot_relative_ptr (kogmo_rtdb_handle_t *db_h, kogmo_rtdb_obj_slot_t *objslot, int offset, void *data_pp) |
| Comfortable Function to access object history slot-by-slot. | |
| kogmo_rtdb_objsize_t | kogmo_rtdb_obj_readdataslot_check (kogmo_rtdb_handle_t *db_h, kogmo_rtdb_obj_slot_t *objslot) |
| Comfortable Function to access object history slot-by-slot. | |
Variables | |
| int | kogmo_rtdb_debug |
| current debug-level (internal) | |
Functions to Access the Real-time Vehicle Database (C-Interface).
Copyright (c) 2003-2006 Matthias Goebl <matthias.goebl*goebl.net> Lehrstuhl fuer Realzeit-Computersysteme (RCS) Technische Universitaet Muenchen (TUM)
Definition in file kogmo_rtdb_funcs.h.
| #define _const |
constant argument, but irrelevant in C
Definition at line 21 of file kogmo_rtdb_funcs.h.
| kogmo_rtdb_objsize_t kogmo_rtdb_obj_readdataslot_check | ( | kogmo_rtdb_handle_t * | db_h, | |
| kogmo_rtdb_obj_slot_t * | objslot | |||
| ) |
Comfortable Function to access object history slot-by-slot.
| kogmo_rtdb_objsize_t kogmo_rtdb_obj_readdataslot_init | ( | kogmo_rtdb_handle_t * | db_h, | |
| kogmo_rtdb_obj_slot_t * | objslot, | |||
| kogmo_rtdb_objid_t | oid | |||
| ) |
Comfortable Function to access object history slot-by-slot see examples/kogmo_rtdb_slotreader.c for an example.
| kogmo_rtdb_objsize_t kogmo_rtdb_obj_readdataslot_ptr | ( | kogmo_rtdb_handle_t * | db_h, | |
| int32_t | mode, | |||
| int32_t | offset, | |||
| kogmo_rtdb_obj_slot_t * | objslot, | |||
| void * | data_pp | |||
| ) |
(internal) Function to access object history slot-by-slot mode: 0=get latest + init objslot (use this first) 1=check old objslot + use offset for reading (use this afterwards and set offset) -1=use offset for reading (don't check old objslot - will not detect a wrap-around)
| kogmo_rtdb_objsize_t kogmo_rtdb_obj_readdataslot_relative | ( | kogmo_rtdb_handle_t * | db_h, | |
| kogmo_rtdb_obj_slot_t * | objslot, | |||
| int | offset, | |||
| void * | data_p, | |||
| kogmo_rtdb_objsize_t | size | |||
| ) |
Comfortable Function to access object history slot-by-slot see examples/kogmo_rtdb_slotreader.c for an example.
| kogmo_rtdb_objsize_t kogmo_rtdb_obj_readdataslot_relative_ptr | ( | kogmo_rtdb_handle_t * | db_h, | |
| kogmo_rtdb_obj_slot_t * | objslot, | |||
| int | offset, | |||
| void * | data_pp | |||
| ) |
Comfortable Function to access object history slot-by-slot.
| int kogmo_rtdb_obj_searchinfo_lists_nonblocking | ( | kogmo_rtdb_handle_t * | db_h, | |
| _const char * | name, | |||
| kogmo_rtdb_objtype_t | otype, | |||
| kogmo_rtdb_objid_t | parent_oid, | |||
| kogmo_rtdb_objid_t | proc_oid, | |||
| kogmo_rtdb_objid_list_t | known_idlist, | |||
| kogmo_rtdb_objid_list_t | added_idlist, | |||
| kogmo_rtdb_objid_list_t | deleted_idlist | |||
| ) |
Temporary solution for simulation because of thread-blocking (boost problem?) similar to kogmo_rtdb_obj_searchinfo_waitnext() but non-blocking.