Defines | Functions | Variables

kogmo_rtdb_funcs.h File Reference

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)

Detailed Description

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 Documentation

#define _const

constant argument, but irrelevant in C

Definition at line 21 of file kogmo_rtdb_funcs.h.


Function Documentation

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.


Generated for KogMo-RTDB by Matthias.Goebl (mattias.goebl*kogmo-rtdb.de) - all rights reserved.