13 #ifndef __TRANSFORMER_H__ 14 #define __TRANSFORMER_H__ 24 #define TRANSFORMER_VERSION "6.2.9" 26 #define TRANSFORMER_MAJOR_VERSION 6 27 #define TRANSFORMER_MINOR_VERSION 2 28 #define TRANSFORMER_PATCH_VERSION 9 32 #ifndef TRANSFORMER_EXPORT 33 #define TRANSFORMER_EXPORT extern 35 #ifndef TRANSFORMER_MODULE_EXPORT 36 #define TRANSFORMER_MODULE_EXPORT extern 39 #ifndef TRANSFORMER_EXPORT 40 #define TRANSFORMER_EXPORT __declspec(dllimport) 42 #ifndef TRANSFORMER_MODULE_EXPORT 43 #define TRANSFORMER_MODULE_EXPORT __declspec(dllexport) 52 typedef struct _userinfo userinfo_t;
55 typedef struct _authfuncs authfuncs_t;
58 typedef struct _tfhandle tf_handle_t;
61 typedef int (*tf_request_cb)(tf_handle_t *handle,
int peer,
const char *subject,
int flags,
int id,
void *data);
64 typedef int (*tf_discard_cb)(tf_handle_t *handle,
int peer,
const char *subject,
int flags,
int id,
void *data);
67 typedef int (*tf_update_cb)(tf_handle_t *handle,
int peer,
ds_data_t *dsdata,
int flags,
int id,
void *data);
70 typedef int (*tf_nodata_cb)(tf_handle_t *handle,
int peer,
const char *subject,
short nodata_flags,
int flags,
int id,
void *data);
73 typedef int (*tf_status_cb)(tf_handle_t *handle,
int peer,
const char *subject,
int status, u_short code,
const char *message,
int flags,
int id,
void *data);
76 typedef void (*update_cb)(
int peer,
ds_data_t *dsdata, time_t update_time,
int val,
void *data);
87 TRANSFORMER_EXPORT
int register_interest(
const char *name, update_cb update,
int id,
void *data);
91 TRANSFORMER_EXPORT
int deregister_interest(
const char *name, update_cb update,
int id,
void *data);
97 TRANSFORMER_EXPORT
void free_array(
int argc,
char *argv[]);
100 typedef int (*provider_cb)(
int peer,
char *name,
int isrequest);
103 #define PROVIDER_DENY -1 106 #define PROVIDER_OK 0 109 #define TF_LISTENER_DEFAULT 0 112 #define TF_LISTENER_WILDNOW 2 115 #define TF_LISTENER_WILDNEXT 4 118 #define TF_LISTENER_WILDREMOVE 8 121 #define TF_LISTENER_WILDCARD (TF_LISTENER_WILDNOW|TF_LISTENER_WILDNEXT) 124 #define TF_LISTENER_NOASKPEERS 16 127 #define TF_LISTENER_NOASKMODULES 32 137 #define TF_LISTENER_ACCESSORY (1|TF_LISTENER_NOASKPEERS|TF_LISTENER_NOASKMODULES) 139 #define TF_LISTENER_PROVIDEONCE 64 142 #define TF_LISTENER_NOREGEX 128 145 #define TF_LISTENER_ONCE 256 147 TRANSFORMER_EXPORT tf_handle_t *
tf_add_listener(
const char *pattern,
int listener_typeflags, tf_update_cb update, tf_nodata_cb nodata, tf_status_cb status,
int val,
void *data,
void *reserved);
149 TRANSFORMER_EXPORT tf_handle_t *
tf_add_listener_get_cache(
const char *pattern,
int listener_typeflags, tf_update_cb update, tf_nodata_cb nodata, tf_status_cb status,
int val,
void *data,
void *reserved,
ds_data_t **dsdata_ptr);
151 TRANSFORMER_EXPORT tf_handle_t *
tf_add_listener_nspace(
ds5_namespace_t *nspace,
int listener_typeflags, tf_update_cb update, tf_nodata_cb nodata, tf_status_cb status,
int val,
void *data,
void *reserved);
153 TRANSFORMER_EXPORT tf_handle_t *
tf_add_type_listener(
int data_type,
int listener_typeflags, tf_update_cb update, tf_nodata_cb nodata, tf_status_cb status,
int val,
void *data,
void *reserved);
155 TRANSFORMER_EXPORT tf_handle_t *
tf_add_provider(
const char *pattern,
int provider_typeflags, tf_request_cb request, tf_discard_cb discard,
int val,
void *data,
void *reserved);
156 TRANSFORMER_EXPORT tf_handle_t *
tf_add_provider_nspace(
ds5_namespace_t *nspace,
int provider_typeflags, tf_request_cb request, tf_discard_cb discard,
int val,
void *data,
void *reserved);
160 TRANSFORMER_EXPORT
int tf_handle_set_listener_params(tf_handle_t *handle, tf_update_cb update, tf_nodata_cb nodata, tf_status_cb status,
int val,
void *data);
162 TRANSFORMER_EXPORT
int tf_handle_set_provider_params(tf_handle_t *handle, tf_request_cb request, tf_discard_cb discard,
int val,
void *data);
184 typedef enum _authdirection
193 int (*map_object)(
int peer,
char *orig,
char *destbuf,
int destlen, authdirection_t direction);
195 int (*request_object)(
int peer,
char *orig,
char *mapname,
void **userptr);
197 int (*discard_object)(
int peer,
char *orig,
char *mapname,
void **userptr);
198 int *(*return_peers)(
char *name,
int *peers_num);
199 ds_data_t *(*map_fields)(
int peerno,
char *basename,
ds_data_t *orig,
void **userptr,
int *cancel_sub);
214 TRANSFORMER_EXPORT
int file_reading();
216 TRANSFORMER_EXPORT
void file_write_pkt(FILE *fp,
ds_data_t *pkt, time_t tim);
222 TRANSFORMER_EXPORT
char *filename_expand(
char *format);
225 TRANSFORMER_EXPORT
ds_log_t *rtas_log;
227 TRANSFORMER_EXPORT
int c_debug_level;
229 #define DBG(level) ( ( c_debug_level >= (level) ) ) 241 TRANSFORMER_EXPORT
int debug_level(
char *text);
243 TRANSFORMER_EXPORT
char *debug_string(
int level);
246 #define PACKET_STORE 1 249 #define PACKET_PUBLISH 2 252 #define PACKET_OWRITE 4 255 #define PACKET_FREE 8 258 #define PACKET_NOLISTEN 32 261 #define PACKET_UPDATE 128 264 #define PACKET_NOFEEDTIME 256 284 TRANSFORMER_EXPORT
void packet_log_dump(
ds_log_t *log,
const char *label,
ds_data_t *pkt);
286 TRANSFORMER_EXPORT
void register_provider(
const char *wildcard, provider_cb provider);
291 #define SYMBOL_PUBLISH 2 294 #define SYMBOL_NOSAVE 16 297 #define SYMBOL_NOLISTEN 32 299 TRANSFORMER_EXPORT
int symbol_create(
const char *name,
unsigned flags);
315 TRANSFORMER_EXPORT
void symbol_add_constant(
const char *name,
int fid,
const char *value);
317 TRANSFORMER_EXPORT
char *symbol_get_constant(
const char *name,
int fid);
319 TRANSFORMER_EXPORT
char **
symbol_match(
const char *name,
int *num);
323 TRANSFORMER_EXPORT
void symbol_delete_type2(
const char *name,
const char *index,
int fieldnum);
333 TRANSFORMER_EXPORT
int symbol_request(
const char *name, update_cb update,
int id,
void *data);
335 TRANSFORMER_EXPORT
int symbol_discard(
const char *name, update_cb update,
int id,
void *data);
351 TRANSFORMER_EXPORT
char **
tf_symbol_match(
const char *pattern,
int *number);
355 TRANSFORMER_EXPORT
void symbol_unset_flag(
const char *subject,
unsigned int flags);
357 TRANSFORMER_EXPORT
void symbol_set_flag(
const char *subject,
unsigned int flags);
369 int (*strprint)(
char *dest,
size_t len,
void *data);
371 void (*filewrite)(FILE *fp,
void *data);
373 void *(*fileread)(FILE *fp,
char *name);
379 TRANSFORMER_EXPORT
void symbol_remove_alluserdata(
const char *wildcard,
unsigned int id,
void (*dataremover)(
void *data));
390 typedef void (*udpcmd_t)(
int argc,
char *argv[]);
392 TRANSFORMER_EXPORT
int udpsignal_addjob(
const char *cmd, udpcmd_t callback,
const char *msg);
394 TRANSFORMER_EXPORT
int udpsignal_deljob(
const char *cmd, udpcmd_t callback);
396 TRANSFORMER_EXPORT
void udpsignal_send(
const char *message);
398 TRANSFORMER_EXPORT
void udpsignal_send_argv(
const char *command,
char *argv[]);
401 #define CMD_DUMP_MEMORY "memory_write" 404 #define CMD_RESTORE_MEMORY "memory_read" 407 #define CMD_MODULE_LOAD "module_load" 410 #define CMD_MODULE_UNLOAD "module_unload" 413 #define CMD_SYMBOL_DEL_PKTS "symbol_delete" 416 #define CMD_SYMBOL_PUBLISH "symbol_publish" 419 #define CMD_SOURCE_UP "source_up" 422 #define CMD_SOURCE_DOWN "source_down" 425 TRANSFORMER_MODULE_EXPORT
void mod_init(
char *module_name);
428 TRANSFORMER_MODULE_EXPORT
void mod_exit();
431 TRANSFORMER_EXPORT
char * mon_module_setup(
const char *name,
const char *description,
const char *version);
TRANSFORMER_EXPORT ds5_namespace_t * tf_create_regex_namespace(const char *expr)
Creates a DataSource namespace which will match subject names using a regular expression.
Definition: namespaces.c:63
int symbol_create(const char *name, unsigned int flags)
Create a new symbol within the Transformer memory.
Definition: symbols.c:263
TRANSFORMER_EXPORT int packet_merge(ds_data_t *dest, ds_data_t *src, int *newfields)
Merge the contents of one packet into the other.
Definition: packet.c:199
TRANSFORMER_EXPORT int tf_symbol_get_type(const char *objname)
Return the type of a particular object.
Definition: symbols.c:602
TRANSFORMER_EXPORT char ** symbol_return_permission_keys(const char *name, int *num)
Returns a list of all the cached permission object keys.
Definition: symbols.c:245
TRANSFORMER_EXPORT tf_handle_t * tf_add_listener(const char *pattern, int listener_typeflags, tf_update_cb update, tf_nodata_cb nodata, tf_status_cb status, int val, void *data, void *reserved)
Create a new object listener.
Definition: test_autopub.c:68
TRANSFORMER_EXPORT void auth_invalidate_perms()
Invalidate permissions for all peers.
Definition: auth.c:164
TRANSFORMER_EXPORT int tf_register_function(const char *name, void *function)
Register a new function against the extension system.
Definition: extender.c:79
TRANSFORMER_EXPORT int tf_handle_set_listener_params(tf_handle_t *handle, tf_update_cb update, tf_nodata_cb nodata, tf_status_cb status, int val, void *data)
Set the the callback parameters for a listener.
Definition: listener.c:687
TRANSFORMER_EXPORT void mod_config_parse_file(const char *file)
Parse a mandatory module configuration file.
Definition: modules.c:589
TRANSFORMER_EXPORT int packet_update_field(ds_data_t *dest, int fid, const char *value)
Update a field within a packet.
Definition: packet.c:305
TRANSFORMER_EXPORT void symbol_set_userdata(const char *name, unsigned int id, void *ptr)
Register a piece of data against a particular symbol and unique id.
Definition: symboluser.c:237
TRANSFORMER_EXPORT int deregister_type_interest(int typ, update_cb update, int id, void *data)
Deregister an interest in a particular DataSource type.
Definition: compat.c:306
TRANSFORMER_EXPORT void symbol_send_nodata(const char *symname, u_short flags)
Send a "nodata" message to the cache and to interested peers.
Definition: symbols.c:35
TRANSFORMER_EXPORT char * symbol_last_field_byname(const char *name, const char *field)
Return the last recieved fieldvalue for a symbol.
Definition: symbols.c:292
TRANSFORMER_EXPORT int tf_symbol_get_status(const char *name, char **status_message_ptr)
Return the status for an object within the cache.
Definition: symbols.c:739
TRANSFORMER_EXPORT void symbol_remove_userdata(const char *name, unsigned int id)
Remove userdata for a given symbol and unique id.
Definition: symboluser.c:210
TRANSFORMER_EXPORT ds_data_t * symbol_last_permission_update(const char *name, const char *key)
Returns the currently cached permission object data.
Definition: symbols.c:160
TRANSFORMER_EXPORT void packet_contrib(ds_data_t *pkt, void *data, int storeflags)
Contribute an update to the memory core/DataSource.
Definition: packet.c:78
TRANSFORMER_EXPORT void symbol_delete_all_mmaker(const char *name)
Delete all the Type 2 data associated with a symbol.
Definition: symbols.c:568
TRANSFORMER_EXPORT void symbol_delete_permission_key(const char *name, const char *index)
Delete the data associated with a permission key.
Definition: symbols.c:533
TRANSFORMER_EXPORT int packet_delete_field(ds_data_t *pkt, int index)
Remove a field in a dsdata.
Definition: packet.c:355
TRANSFORMER_EXPORT int tf_handle_set_status_cb(tf_handle_t *handle, tf_status_cb status)
Set the status callback on a listener.
Definition: listener.c:763
TRANSFORMER_EXPORT int packet_update_field_byname(ds_data_t *dest, const char *field, const char *value)
Update a field within a packet by name.
Definition: packet.c:266
TRANSFORMER_EXPORT char * packet_get_field(ds_data_t *pkt, int fid)
Find a field within a packet.
Definition: packet.c:148
TRANSFORMER_EXPORT void symbol_delete_all_permission_keys(const char *name)
Delete all the data associated with a permission object.
Definition: symbols.c:585
TRANSFORMER_EXPORT char ** tf_symbol_match(const char *pattern, int *number)
Return a list of symbols matching the specifier.
Definition: test_autopub.c:51
TRANSFORMER_EXPORT int packet_update(ds_data_t *dest, ds_data_t *src)
Update the contents of one packet based on the contents of the other.
Definition: packet.c:170
TRANSFORMER_EXPORT ds_data_t * symbol_last_mmaker_update(const char *name, const char *mmaker)
Returns the currently cached Type 2 data for a symbol/Type 2 index.
Definition: symbols.c:114
TRANSFORMER_EXPORT time_t symbol_last_updatetime(const char *name)
Return the time that the last update was received for this symbol.
Definition: symbols.c:45
TRANSFORMER_EXPORT int tf_handle_set_discard_cb(tf_handle_t *handle, tf_discard_cb discard)
Set the discard callback on a provider.
Definition: listener.c:842
TRANSFORMER_EXPORT char ** symbol_return_mmakers(const char *name, int *num)
Returns a list of all the cached Type 2 market makers.
Definition: symbols.c:188
TRANSFORMER_EXPORT void deregister_provider(const char *wildcard, provider_cb provider)
Deregisters the data provider with the Transformer core for the specified object name pattern...
Definition: legacy_listeners.c:932
TRANSFORMER_EXPORT int tf_handle_set_nodata_cb(tf_handle_t *handle, tf_nodata_cb nodata)
Set the nodata callback on a listener.
Definition: listener.c:739
TRANSFORMER_EXPORT char ** tf_symbol_match_bytype(const char *pattern, int type, int *number)
Return a list of symbols matching the pattern and of the specified type.
Definition: symbols.c:703
TRANSFORMER_EXPORT void register_provider(const char *wildcard, provider_cb provider)
Registers the specified data provider with the Transformer core for the specified object name pattern...
Definition: legacy_listeners.c:900
TRANSFORMER_EXPORT int tf_handle_set_callback_params(tf_handle_t *handle, int id, void *data)
Set the callback parameters on a handle.
Definition: test_autopub.c:62
TRANSFORMER_EXPORT void deregister_userdata_funcs(unsigned int id)
Deregister a set of functions that handled a specific id.
Definition: symboluser.c:92
TRANSFORMER_EXPORT char ** symbol_historic_field(const char *name, int fid, int *number)
Get all data for a particular field number within a symbol.
Definition: symbols.c:405
TRANSFORMER_EXPORT int symbol_get_type(const char *objname)
Return the type of a particular object.
Definition: symbols.c:619
TRANSFORMER_EXPORT void symbol_delete_mmaker(const char *symname, const char *mmaker)
Delete the data associated with a type 2 index.
Definition: symbols.c:549
TRANSFORMER_EXPORT ds5_namespace_t * tf_create_globbed_namespace(const char *globbed)
Creates a DataSource namespace which will match subject names using globbing.
Definition: namespaces.c:29
TRANSFORMER_EXPORT ds_data_t * packet_clone(ds_data_t *src)
Duplicate a DataSource packet.
Definition: packet.c:328
TRANSFORMER_EXPORT tf_handle_t * tf_add_listener_get_cache(const char *pattern, int listener_typeflags, tf_update_cb update, tf_nodata_cb nodata, tf_status_cb status, int val, void *data, void *reserved, ds_data_t **dsdata_ptr)
Create a new object listener returning the cache contents.
Definition: listener.c:401
TRANSFORMER_EXPORT tf_handle_t * tf_add_provider(const char *pattern, int provider_typeflags, tf_request_cb request, tf_discard_cb discard, int val, void *data, void *reserved)
Registers the specified data provider with the Transformer core.
Definition: listener.c:543
Definition of the interface that you should implement if you require custom subject matching logic...
Definition: datasrc.h:443
TRANSFORMER_EXPORT void * tf_find_function(const char *name)
Lookup an extension function.
Definition: extender.c:115
TRANSFORMER_EXPORT int register_interest(const char *name, update_cb update, int id, void *data)
Register an interest in a particular group of symbols.
Definition: legacy_listeners.c:536
TRANSFORMER_EXPORT void symbol_delete_type2(const char *name, const char *index, int fieldnum)
Delete the data associated with a type 2 index.
Definition: symbols.c:495
TRANSFORMER_EXPORT int register_type_interest(int typ, update_cb update, int id, void *data)
Register an interest in a particular DataSource type.
Definition: compat.c:277
TRANSFORMER_EXPORT char * packet_get_field_byname(ds_data_t *pkt, const char *field)
Find a field within a packet.
Definition: packet.c:113
TRANSFORMER_EXPORT ds_data_t * symbol_last_update(const char *name)
Returns the currently cached Type 1 data for a symbol.
Definition: test_autopub.c:41
struct _ds_log ds_log_t
The log file object.
Definition: datasrc.h:186
TRANSFORMER_EXPORT tf_handle_t * tf_add_listener_nspace(ds5_namespace_t *nspace, int listener_typeflags, tf_update_cb update, tf_nodata_cb nodata, tf_status_cb status, int val, void *data, void *reserved)
Create a new object listener for subjects that match the supplied namespace.
Definition: listener.c:354
TRANSFORMER_EXPORT void * symbol_get_userdata(const char *name, unsigned int id)
Retrieve module specific data for a given symbol and unique id.
Definition: symboluser.c:127
TRANSFORMER_EXPORT int deregister_interest(const char *name, update_cb update, int id, void *data)
Deregister an interest in a particular group of symbols.
Definition: legacy_listeners.c:689
TRANSFORMER_EXPORT void auth_invalidate_peer_perms(int peernum)
Invalidate permissions for an individual peer.
Definition: auth.c:178
A data update object.
Definition: datasrc.h:2425
TRANSFORMER_EXPORT int tf_regex_namespace_add_expr(ds5_namespace_t *nspace, const char *expr, int exclude)
Adds a regular expression to a namespace.
Definition: namespaces.c:48
TRANSFORMER_EXPORT void register_userdata_funcs(userinfo_t *user)
Register a set of functions to handle a specific id.
Definition: symboluser.c:65
TRANSFORMER_EXPORT void tf_symbol_send_status(const char *name, int status, const char *message)
Send a status message for an object within the cache.
Definition: symbols.c:775
TRANSFORMER_EXPORT int tf_handle_set_provider_params(tf_handle_t *handle, tf_request_cb request, tf_discard_cb discard, int val, void *data)
Set the the callback parameters for a provider.
Definition: listener.c:791
TRANSFORMER_EXPORT void auth_deregister_functions()
Disable the auth API.
Definition: auth.c:151
TRANSFORMER_EXPORT int register_interest_check(const char *name, update_cb update, int id, void *data)
Register an interest in a particular group of symbols checking the provider if necessary.
Definition: legacy_listeners.c:573
TRANSFORMER_EXPORT tf_handle_t * tf_add_provider_nspace(ds5_namespace_t *nspace, int provider_typeflags, tf_request_cb request, tf_discard_cb discard, int val, void *data, void *reserved)
Registers the specified data provider with the Transformer core.
Definition: listener.c:595
TRANSFORMER_EXPORT void tf_handle_delete(tf_handle_t *handle)
Delete a handle to a listener or a provider.
Definition: listener.c:631
TRANSFORMER_EXPORT int tf_handle_set_request_cb(tf_handle_t *handle, tf_request_cb request)
Set the request callback on a provider.
Definition: listener.c:818
TRANSFORMER_EXPORT int tf_handle_set_update_cb(tf_handle_t *handle, tf_update_cb update)
Set the update callback on a listener.
Definition: listener.c:715
TRANSFORMER_EXPORT tf_handle_t * tf_add_type_listener(int data_type, int listener_typeflags, tf_update_cb update, tf_nodata_cb nodata, tf_status_cb status, int val, void *data, void *reserved)
Register an interest in a particular DataSource type.
Definition: listener.c:497
TRANSFORMER_EXPORT void symbol_remove_alluserdata(const char *wildcard, unsigned int id, void(*dataremover)(void *data))
Delete all userdata associated with a particular id for a group of symbols.
Definition: symboluser.c:159
TRANSFORMER_EXPORT void auth_register_functions(authfuncs_t *auth)
Register a set of functions for handling auth capabilities.
Definition: auth.c:138
TRANSFORMER_EXPORT char ** symbol_match_bytype(const char *name, int type, int *number)
Return a list of symbols matching the pattern and of the specified type.
Definition: legacy_misc.c:109
TRANSFORMER_EXPORT char ** symbol_match(const char *name, int *num)
Return a list of symbols matching the specifier.
Definition: legacy_misc.c:82
TRANSFORMER_EXPORT void mod_config_parse_optional_file(const char *file)
Parse an optional module configuration file.
Definition: modules.c:606
TRANSFORMER_EXPORT char * symbol_last_field(const char *name, int fid)
Return the last received fieldvalue for a symbol.
Definition: symbols.c:319