12 #ifndef INC_dbChannel_H
13 #define INC_dbChannel_H
33 #include "db_field_log.h"
35 #include "dbCoreAPI.h"
49 struct event_que * ev_que;
55 char callBackInProgress;
101 parse_stop, parse_continue
287 int level,
const unsigned short indent);
374 #define dbChannelName(pChan) ((pChan)->name)
381 #define dbChannelRecord(pChan) ((pChan)->addr.precord)
388 #define dbChannelFldDes(pChan) ((pChan)->addr.pfldDes)
395 #define dbChannelElements(pChan) ((pChan)->addr.no_elements)
402 #define dbChannelFieldType(pChan) ((pChan)->addr.field_type)
409 #define dbChannelExportType(pChan) ((pChan)->addr.dbr_field_type)
416 #define dbChannelExportCAType(pChan) (dbDBRnewToDBRold[dbChannelExportType(pChan)])
423 #define dbChannelFieldSize(pChan) ((pChan)->addr.field_size)
430 #define dbChannelFinalElements(pChan) ((pChan)->final_no_elements)
437 #define dbChannelFinalFieldType(pChan) ((pChan)->final_type)
444 #define dbChannelFinalCAType(pChan) (dbDBRnewToDBRold[(pChan)->final_type])
450 #define dbChannelFinalFieldSize(pChan) ((pChan)->final_field_size)
457 #define dbChannelSpecial(pChan) ((pChan)->addr.special)
467 #define dbChannelField(pChan) ((pChan)->addr.pfield)
485 void *pbuffer,
long *options,
long *nRequest,
void *pfl);
501 void *pbuffer,
long *options,
long *nRequest,
void *pfl);
515 const void *pbuffer,
long nRequest);
528 const void *pbuffer,
long nRequest);
538 const unsigned short indent);
548 const unsigned short indent);
560 DBCORE_API
void dbRegisterFilter(
const char *key,
566 DBCORE_API
const chFilterPlugin * dbFindFilter(
const char *key,
size_t len);
567 DBCORE_API
void dbChannelGetArrayInfo(
dbChannel *chan,
568 void **pfield,
long *no_elements,
long *offset);
DBCORE_API unsigned short dbDBRnewToDBRold[]
Request (DBR) type conversion array.
Channel Filter Interface.
parse_result(* parse_map_key)(chFilter *filter, const char *key, size_t stringLen)
Parser saw a JSON map key.
parse_result(* parse_double)(chFilter *filter, double doubleVal)
Parser saw double value.
DBCORE_API long dbChannelGet(dbChannel *chan, short type, void *pbuffer, long *options, long *nRequest, void *pfl)
dbGet() through a dbChannel.
A Database Channel object.
void(* channel_register_pre)(chFilter *filter, chPostEventFunc **cb_out, void **arg_out, db_field_log *probe)
Get pre-chain filter function.
void(* parse_abort)(chFilter *filter)
Parsing of filter instance is being cancelled.
parse_result(* parse_end)(chFilter *filter)
Parsing of filter instance has completed successfully.
dbChannel * chan
The dbChannel we belong to.
The core data types used by epics.
chPostEventFunc * post_func
post-chain filter function
void * puser
For use by the plugin.
parse_result(* parse_end_array)(chFilter *filter)
Parser saw end of a JSON array value.
DBCORE_API long dbChannelTest(const char *name)
Test the given PV name for existance.
parse_result(* parse_start_map)(chFilter *filter)
Parser saw start of a JSON map value.
const char * name
Filter name.
DBCORE_API long dbChannelOpen(dbChannel *chan)
Open a dbChannel for doing I/O.
void(* priv_free)(void *puser)
Release private filter data.
DBCORE_API long dbChannelGetField(dbChannel *chan, short type, void *pbuffer, long *options, long *nRequest, void *pfl)
dbGetField() through a dbChannel.
void(* channel_report)(chFilter *filter, int level, const unsigned short indent)
Print information about filter to stdout.
DBCORE_API long dbChannelPut(dbChannel *chan, short type, const void *pbuffer, long nRequest)
dbPut() through a dbChannel.
A doubly-linked list library.
void * post_arg
post-chain context pointer
void(* channel_register_post)(chFilter *filter, chPostEventFunc **cb_out, void **arg_out, db_field_log *probe)
Get post-chain filter function.
void * puser
For use by the plugin.
DBCORE_API long dbChannelPutField(dbChannel *chan, short type, const void *pbuffer, long nRequest)
dbPutField() through a dbChannel.
parse_result(* parse_start)(chFilter *filter)
Create new filter instance.
DBCORE_API void dbChannelInit(void)
Initialize the dbChannel subsystem.
chPostEventFunc * pre_func
pre-chain filter function
void * pre_arg
pre-chain context pointer
DBCORE_API void dbChannelDelete(dbChannel *chan)
Delete a channel.
ELLNODE pre_node
List node (dbChannel->pre_chain)
parse_result(* parse_end_map)(chFilter *filter)
Parser saw end of a JSON map value.
parse_result(* parse_integer)(chFilter *filter, long integerVal)
Parser saw integer value.
parse_result(* parse_null)(chFilter *filter)
Parser saw null value.
parse_result
Result returned by chFilterIf parse routines.
const chFilterPlugin * plug
The plugin that created us.
ELLNODE post_node
List node (dbChannel->post_chain)
DBCORE_API void dbChannelShow(dbChannel *chan, int level, const unsigned short indent)
Print report on a channel.
ELLNODE list_node
List node (dbChannel->filters)
long(* channel_open)(chFilter *filter)
Open filter on channel.
ELLNODE node
List node (dbBase->filterList)
DBCORE_API void dbChannelExit(void)
Cleanup the dbChannel subsystem.
db_field_log *( chPostEventFunc)(void *pvt, dbChannel *chan, db_field_log *pLog)
Event filter function type.
DBCORE_API void dbChannelFilterShow(dbChannel *chan, int level, const unsigned short indent)
Print report on a channel's filters.
const chFilterIf * fif
Filter interface routines.
Miscellaneous macro definitions.
parse_result(* parse_boolean)(chFilter *filter, int boolVal)
Parser saw boolean value.
DBCORE_API dbChannel * dbChannelCreate(const char *name)
Create a dbChannel object for the given PV name.
parse_result(* parse_start_array)(chFilter *filter)
Parser saw start of a JSON array value.
void(* channel_close)(chFilter *filter)
Close filter.
parse_result(* parse_string)(chFilter *filter, const char *stringVal, size_t stringLen)
Parser saw string value.