23 #undef DATASRC_MAJOR_VERSION 24 #undef DATASRC_MINOR_VERSION 25 #undef DATASRC_PATCH_VERSION 27 #define DATASRC_MAJOR_VERSION 9 28 #define DATASRC_MINOR_VERSION 9 29 #define DATASRC_PATCH_VERSION 0 40 #include <sys/timeb.h> 49 #include <sys/types.h> 51 #include <netinet/in.h> 52 #include <sys/socket.h> 53 #include <arpa/inet.h> 55 #include <sys/ioctl.h> 58 #include <sys/timeb.h> 72 #define EXIT_CODE_NML 0 73 #define EXIT_CODE_CFG 1 74 #define EXIT_CODE_LOG 2 75 #define EXIT_CODE_NET 3 76 #define EXIT_CODE_SYS 4 77 #define EXIT_CODE_LIC 5 78 #define EXIT_CODE_SIG 6 79 #define EXIT_CODE_SVC 7 80 #define EXIT_CODE_SSL 8 81 #define EXIT_CODE_JVM 9 84 #define EXIT_CODE_BIN_MISSING 10 85 #define EXIT_CODE_BIN_NOT_EXEC 11 86 #define EXIT_CODE_BIN_EXIT AFTER_FORK 12 87 #define EXIT_CODE_BIN_BAD_ARCH 126 90 #define EXIT_CODE_JAVA_DATASOURCE_ERROR 201 99 #ifndef DATASRC_EXPORT 100 #define DATASRCAPI _declspec(dllimport) 102 #define DATASRCAPI _declspec(dllexport) 110 #define PRINTF(fmt,arg) __attribute__ ((__format__ (__printf__, (fmt), (arg)))) 112 #define PRINTF(fmt,arg) 136 #define INVALID_SOCKET -1 143 #define SOCKET_ERROR -1 147 #include <inttypes.h> 155 typedef uint64_t ds_bitfield_t;
229 typedef void (*
recv_nodata_t)(
int peer,
char *subject,
unsigned short flags);
273 typedef void (*
recv_request_t)(
int peer,
int count,
char **subjects,
unsigned short flags);
293 typedef void (*
recv_discard_t)(
int peer,
int count,
char **subjects,
unsigned short flags);
379 void (*exit_func)(
int exit_code,
char *msg);
390 #define DS_INITIALISER \ 413 DATASRCAPI
void ds_reserve_std_fds();
414 DATASRCAPI
void ds_config_init(
const char *file,
int argc,
char **argv);
415 DATASRCAPI
int ds_init(
ds_init_t *init,
int argc,
char **argv);
416 DATASRCAPI
void ds_thread_init(
int event_module,
int flags);
417 DATASRCAPI
char *ds_filename_expand(
const char *format,
char *buffer,
size_t bufsize);
418 DATASRCAPI
ds_log_t *ds_get_event_log(
void);
465 DATASRCAPI
ds5_namespace_t *ds5_create_prefix_namespace(
const char *prefix);
467 DATASRCAPI
ds5_namespace_t *ds5_create_globbed_namespace(
const char *globbed);
468 DATASRCAPI
ds5_namespace_t *ds5_create_regex_namespace(
const char *expr);
469 DATASRCAPI
int ds5_regex_namespace_add_expr(
ds5_namespace_t *nspace,
const char *expr,
int exclude);
481 #define ds5_namespace_match(nspace, subject) nspace->match(nspace, subject) 487 #define ds5_namespace_free(nspace) nspace->free(nspace) 539 void (*receive_request)(
void *context,
int peer,
const char *subject);
561 void (*receive_discard)(
void *context,
int peer,
const char *subject);
574 DATASRCAPI
void ds5_publish_status(
ds5_publisher_t *pub,
const char *subject,
int status,
const char *message);
575 DATASRCAPI
void ds5_publish_subject_error(
ds5_publisher_t *publisher,
const char *subject,
int flags);
578 DATASRCAPI
void ds5_publish_subject_map(
ds5_publisher_t *publisher,
const char *subject,
const char *mapped_to,
int flags);
606 void (*service_status)(
void *context,
const char *service_name,
int state);
619 void (*peer_status)(
void *context,
int peer_index,
const char *peer_name,
int state);
763 void (*subscription_error)(
void *context,
ds5_subscription_t *sub,
int peer,
const char *subject,
short flags);
776 void (*subscription_status)(
void *context,
ds5_subscription_t *sub,
int peer,
const char *subject,
int status,
const char *message);
784 DATASRCAPI
void ds5_config_init(
const char *configfile,
int argc,
char **argv);
785 DATASRCAPI
int ds5_init(
int argc,
char **argv);
808 #define DS_OFFSET(t,m) ((void *)&((t *)0)->m) 813 #define DS_CONFIG_BOOL 0x0001 819 #define DS_CONFIG_INT 0x0002 824 #define DS_CONFIG_FLOAT 0x0003 829 #define DS_CONFIG_STR 0x0004 834 #define DS_CONFIG_CHAR 0x0005 839 #define DS_CONFIG_FUNC 0x0006 844 #define DS_CONFIG_FILE 0x0007 848 #define DS_CONFIG_GROUP 0x0010 849 #define DS_CONFIG_GROUP_END 0x0011 850 #define DS_CONFIG_SECTION 0x0020 851 #define DS_CONFIG_SECTION_END 0x0021 856 #define DS_CONFIG_JAVA 0x0080 861 #define DS_CONFIG_ARRAY 0x0100 867 #define DS_CONFIG_INT_ARRAY (DS_CONFIG_ARRAY|DS_CONFIG_INT) 872 #define DS_CONFIG_FLOAT_ARRAY (DS_CONFIG_ARRAY|DS_CONFIG_FLOAT) 878 #define DS_CONFIG_STR_ARRAY (DS_CONFIG_ARRAY|DS_CONFIG_STR) 883 #define DS_CONFIG_CHAR_ARRAY (DS_CONFIG_ARRAY|DS_CONFIG_CHAR) 888 #define DS_CONFIG_STRICT 0x0200 894 #define DS_CONFIG_DEPRECATED 0x0400 945 DATASRCAPI
void ds_config_add_search(
const char *path);
946 DATASRCAPI
void ds_config_add_file(
const char *file);
947 DATASRCAPI
void ds_config_add_optional_file(
const char *file);
948 DATASRCAPI
void ds_config_add_option(
char opt,
const char *longopt,
const char *help,
int type,
void *value);
949 DATASRCAPI
void ds_config_add_bounded_option(
char sopt,
const char *longopt,
const char *help,
int type,
void *value,
void *min,
void *max);
950 DATASRCAPI
void ds_config_add_option_enum(
char opt,
const char *longopt,
const char *help,
int type,
void *value,
ds_config_enum_t *enums);
951 DATASRCAPI
void ds_config_add_bounded_option_enum(
char sopt,
const char *longopt,
const char *help,
int type,
void *value,
ds_config_enum_t *enums,
void *min,
void *max);
952 DATASRCAPI
void ds_config_add_array_option(
const char *longopt,
const char *help,
int type,
void *value,
int *num);
953 DATASRCAPI
void ds_config_add_bounded_array_option(
const char *longopt,
const char *help,
int type,
void *value,
int *num,
void *min,
void *max);
954 DATASRCAPI
void ds_config_add_array_option_enum(
const char *longopt,
const char *help,
int type,
void *value,
int *num,
ds_config_enum_t *enums);
955 DATASRCAPI
void ds_config_add_bounded_array_option_enum(
const char *longopt,
const char *help,
int type,
void *value,
int *num,
ds_config_enum_t *enums,
void *min,
void *max);
956 DATASRCAPI
void ds_config_del_option(
const char *longopt);
957 DATASRCAPI
void ds_config_add_group(
const char *longopt,
const char *help,
void *base,
void *def,
size_t size,
int *num);
958 DATASRCAPI
void ds_config_add_group_with_info(
const char *longopt,
const char *help,
void *base,
void *def,
size_t size,
int *num,
int file_offset,
int line_offset);
959 DATASRCAPI
void ds_config_end_group(
const char *longopt,
const char *help);
960 DATASRCAPI
void ds_config_add_section(
const char *longopt,
const char *help);
961 DATASRCAPI
void ds_config_end_section(
const char *longopt,
const char *help);
962 DATASRCAPI
void ds_config_parse_files();
963 DATASRCAPI
void ds_config_parse_args(
int argc,
char **argv,
int *retargc);
964 DATASRCAPI
int ds_config_parse_file(
const char *unresolved_filename);
965 DATASRCAPI
void ds_config_list_options();
966 DATASRCAPI
void ds_config_list_values();
967 DATASRCAPI
int ds_config_get_enum(
const char *value,
ds_config_enum_t *enums);
968 DATASRCAPI
void ds_config_add_error_message_fmt(
const char *fmt,...) PRINTF(1,2);
969 DATASRCAPI
void ds_config_add_config_reading_message_fmt(const
char *fmt,...) PRINTF(1,2);
970 DATASRCAPI
void ds_config_add_error_message(const
char *msg);
971 DATASRCAPI
char *ds_config_get_filename();
972 DATASRCAPI
int ds_config_get_linenumber();
973 DATASRCAPI
void ds_config_set_test(const
char *tag,
char **value);
974 DATASRCAPI
void ds_config_del_test(const
char *tag);
975 DATASRCAPI
void ds_config_set_option(const
char *name, const
char *value);
981 typedef
unsigned long ds_reltime_t;
1044 #define DOUBLE_TO_RELTIME(r,d) r = ((int)(d) << 9) + ((int)(((d) - (int)(d)) * 1000000) >> 11); 1045 #define TIMEVAL_TO_RELTIME(r,tv) r = ((tv).tv_sec << 9) + ((tv).tv_usec >> 11); 1048 DATASRCAPI ds_timed_event_t *ds_add_timed_event(
int id,
double delay,
ds_timed_event_cb cb,
int val,
void *data);
1049 DATASRCAPI ds_read_event_t *ds_add_read_event(sock_t fd,
ds_io_event_cb cb,
int val,
void *data);
1050 DATASRCAPI ds_write_event_t *ds_add_write_event(sock_t fd,
ds_io_event_cb cb,
int val,
void *data);
1051 DATASRCAPI ds_except_event_t *ds_add_except_event(sock_t fd,
ds_io_event_cb cb,
int val,
void *data);
1053 DATASRCAPI
int ds_del_timed_event(ds_timed_event_t *ev);
1054 DATASRCAPI
int ds_del_read_event(ds_read_event_t *ev);
1055 DATASRCAPI
int ds_del_write_event(ds_write_event_t *ev);
1056 DATASRCAPI
int ds_del_except_event(ds_except_event_t *ev);
1058 DATASRCAPI
int ds_del_timed_event_free_data(ds_timed_event_t *ev,
void (*free_data)(
int,
void *));
1059 DATASRCAPI
int ds_del_read_event_free_data(ds_read_event_t *ev,
void (*free_data)(
int,
void *));
1060 DATASRCAPI
int ds_del_write_event_free_data(ds_write_event_t *ev,
void (*free_data)(
int,
void *));
1061 DATASRCAPI
int ds_del_except_event_free_data(ds_except_event_t *ev,
void (*free_data)(
int,
void *));
1063 DATASRCAPI
void ds_timed_event_set_callback(ds_timed_event_t *ev,
ds_timed_event_cb cb,
int val,
void *data);
1064 DATASRCAPI
void ds_read_event_set_callback(ds_read_event_t *ev,
ds_io_event_cb cb,
int val,
void *data);
1065 DATASRCAPI
void ds_write_event_set_callback(ds_write_event_t *ev,
ds_io_event_cb cb,
int val,
void *data);
1067 DATASRCAPI
void ds_set_timed_delay(ds_timed_event_t *ev,
double delay);
1068 DATASRCAPI
void ds_set_timed_delay_next(ds_timed_event_t *ev,
double delay);
1070 DATASRCAPI
void ds_loop();
1071 DATASRCAPI
void ds_stop();
1073 DATASRCAPI ds_reltime_t ds_get_relative_time();
1074 DATASRCAPI time_t ds_get_time();
1075 DATASRCAPI
struct tm *ds_gmtime();
1076 DATASRCAPI
struct tm *ds_localtime();
1077 DATASRCAPI
int ds_get_gmt_offset(time_t t);
1078 DATASRCAPI
char *ds_get_timezone(
char *buf,
int len);
1080 DATASRCAPI ds_timed_event_t *ds_add_periodic_event(
int starttime,
int period,
int id,
ds_timed_event_cb cb,
int val,
void *data);
1081 DATASRCAPI ds_timed_event_t *ds_add_periodic_event_from_time(time_t then,
int starttime,
int period,
int id,
ds_timed_event_cb cb,
int val,
void *data);
1082 DATASRCAPI
int ds_check_periodic_event(
int period, ds_timed_event_t **tev);
1091 #define DS_CACHE_DATASRC -1 1093 DATASRCAPI
void ds_cache_add_object(
char *subject);
1099 DATASRCAPI
void ds_daemon_redirect();
1100 DATASRCAPI
int ds_daemon_disabled();
1113 #define DS_FIELDS_SEPARATOR -65536 1120 #define DS_FIELDS_NOT_DEFINED (-2147483647 - 1) 1122 DATASRCAPI
int ds_fields_max();
1123 DATASRCAPI
int ds_fields_add(
int num,
const char *name,
int flags,
int dp,
const char *fmt);
1124 DATASRCAPI
int ds_fields_numbyname(
const char *name);
1125 DATASRCAPI
char *ds_fields_namebynum(
int num);
1126 DATASRCAPI
int ds_fields_indexbyname(
const char *name);
1127 DATASRCAPI
int ds_fields_indexbynum(
int num);
1128 DATASRCAPI
int ds_fields_numbyindex(
int index);
1129 DATASRCAPI
char *ds_fields_namebyindex(
int index);
1130 DATASRCAPI
char *ds_fields_rttpnumbyindex(
int index);
1131 DATASRCAPI
int ds_fields_getflags(
int index);
1132 DATASRCAPI
int ds_fields_getdp(
int index);
1141 #define DS_LOG_CONFIG 0 1142 #define DS_LOG_ALWAYS 1 1146 #define DS_LOG_CRIT 2 1150 #define DS_LOG_ERROR 3 1154 #define DS_LOG_NOTIFY 4 1158 #define DS_LOG_WARN 5 1162 #define DS_LOG_INFO 6 1166 #define DS_LOG_DEBUG 7 1170 #define DS_LOG_FINER 8 1174 #define DS_LOG_FINEST 9 1178 #define DS_LOG_MONITOR 128 1182 #define DS_LOG_TERMINAL 256 1186 #define DS_LOG_SYSLOG 512 1187 #define DS_LOG_FILEONLY 1024 1188 #define DS_LOG_NO_MONITOR 2048 1210 DATASRCAPI
ds_log_t *ds_new_log(
const char *name,
const char *logname);
1212 DATASRCAPI
ds_log_t *ds_new_headed_log(
const char *name,
const char *logname,
const char *header);
1213 DATASRCAPI
void ds_free_log(
ds_log_t *log);
1214 DATASRCAPI
void ds_write(
ds_log_t *log,
void *data,
size_t len);
1216 DATASRCAPI
void ds_writev(
ds_log_t *log,
struct iovec *vector,
int count);
1218 DATASRCAPI
void ds_printf(
ds_log_t *log,
const char *fmt, ...) PRINTF(2,3);
1219 DATASRCAPI
void ds_printf_time(
ds_log_t *log, const
char *fmt, ...) PRINTF(2,3);
1220 DATASRCAPI
void ds_printf_time_ap(
ds_log_t *log, const
char *extra, const
char *fmt, va_list ap);
1221 DATASRCAPI
void ds_syslog(
ds_log_t *log,
int priority, const
char *fmt, ...) PRINTF(3,4);
1222 DATASRCAPI
void ds_cycle_all_logs(const
char *suffix,
long maxsize);
1223 DATASRCAPI
int ds_cycle_log(
ds_log_t *log, const
char *suffix,
long maxsize);
1224 DATASRCAPI
char *ds_log_getfilename(
ds_log_t *log);
1225 DATASRCAPI
int ds_debug_level(const
char *text);
1226 DATASRCAPI
char *ds_debug_string(
int level);
1227 DATASRCAPI
char *ds_debug_config_string(
int level);
1228 DATASRCAPI
void ds_log(
ds_log_t *log,
int level, const
char *fmt,...) PRINTF(3,4);
1229 DATASRCAPI
int ds_log_set_log_level(
ds_log_t *log, const
char *level);
1232 DATASRCAPI
int ds_log_get_level(
ds_log_t *log);
1274 #define TYPE_BINARY 1 1278 #define TYPE_STRING 2 1282 #define TYPE_SHORT 3 1286 #define TYPE_USHORT 4 1294 #define TYPE_ULONG 6 1298 #define TYPE_LLONG 7 1302 #define TYPE_ULLONG 8 1306 #define TYPE_DOUBLE 9 1312 #define TYPE_TIMESTAMP 10 1318 #define TYPE_BOOLEAN 11 1323 #define TYPE_RELATION 20 1328 #define TYPE_SUBSCRIPTION 21 1334 #define TYPE_PRIMITIVE_MASK 31 1339 #define TYPE_ARRAY 32 1343 #define TYPE_ACTIVE 64 1354 #define TYPE_ACTIVE2 128 1358 #define TYPE_METHOD 256 1362 #define TYPE_KEY 512 1366 #define TYPE_HIERARCHY 1024 1373 #define TYPE_OPTIONAL 2048 1383 union _ds_mondata_value {
1406 union _ds_mondata_value2
1451 typedef ds_monitor_t *(*ds_monitor_method_cb)(
char *templatename,
char *key,
char *property,
int argc,
char *argv[]);
1462 typedef ds_monitor_t *(*ds_monitor_active_cb)(
char *templatename,
char *key,
char *propertyname);
1491 DATASRCAPI
char *ds_monitor_module_name();
1494 DATASRCAPI
void ds_monitor_add_server_type(
const char *type,
const char *root);
1495 DATASRCAPI
void ds_monitor_start_template(
const char *templatename,
const char *description);
1496 DATASRCAPI
void ds_monitor_add_template_member(
const char *templatename,
const char *propertyname,
const char *description,
int typeflags,
ds_arguments_t *args,
void *ptr);
1497 DATASRCAPI
void ds_monitor_add_template_relation(
const char *templatename,
const char *propertyname,
const char *targettemplate,
const char *description,
int thisend_multiple,
int thatend_multiple);
1498 DATASRCAPI
void ds_monitor_add_template_subscription(
const char *templatename,
const char *propertyname,
const char *targettemplate,
const char *description,
const char *singleton,
ds_monitor_active_cb callback_fn);
1501 DATASRCAPI
void ds_monitor_add_relation(
const char *templatename,
const char *key,
const char *propertyname,
const char *targetkey);
1502 DATASRCAPI
void ds_monitor_del_relation(
const char *templatename,
const char *key,
const char *propertyname,
const char *targetkey);
1504 DATASRCAPI
void ds_monitor_add_subscription(
const char *templatename,
const char *key,
const char *propertyname,
const char *value);
1505 DATASRCAPI
void ds_monitor_del_subscription(
const char *templatename,
const char *key,
const char *propertyname,
const char *value);
1507 DATASRCAPI
void ds_monitor_end_template(
const char *templatename);
1509 DATASRCAPI
void ds_monitor_create_group(
const char *templatename,
const char *key,
const char *brief,
const char *description);
1510 DATASRCAPI
void ds_monitor_delete_group(
const char *templatename,
const char *key);
1514 DATASRCAPI
void ds_monitor_update(
const char *templatename,
const char *key,
ds_monitor_t *mondata);
1515 DATASRCAPI
void ds_monitor_update_string(
const char *templatename,
const char *key,
const char *propertyname,
const char *value);
1516 DATASRCAPI
void ds_monitor_update_ushort(
const char *templatename,
const char *key,
const char *propertyname, uint16_t);
1517 DATASRCAPI
void ds_monitor_update_short(
const char *templatename,
const char *key,
const char *propertyname, int16_t value);
1518 DATASRCAPI
void ds_monitor_update_ulong(
const char *templatename,
const char *key,
const char *propertyname, uint32_t value);
1519 DATASRCAPI
void ds_monitor_update_long(
const char *templatename,
const char *key,
const char *propertyname, int32_t value);
1520 DATASRCAPI
void ds_monitor_update_ullong(
const char *templatename,
const char *key,
const char *propertyname, uint64_t value);
1521 DATASRCAPI
void ds_monitor_update_llong(
const char *templatename,
const char *key,
const char *propertyname, int64_t value);
1522 DATASRCAPI
void ds_monitor_update_double(
const char *templatename,
const char *key,
const char *propertyname,
double value);
1523 DATASRCAPI
void ds_monitor_update_timestamp(
const char *templatename,
const char *key,
const char *propertyname, int64_t value);
1524 DATASRCAPI
void ds_monitor_update_boolean(
const char *templatename,
const char *key,
const char *propertyname, uint8_t value);
1528 DATASRCAPI
ds_monitor_t *ds_monitor_new(
const char *propertyname,
int type,
int datasize,
const void *datum);
1529 DATASRCAPI
ds_monitor_t *ds_monitor_new_array(
const char *propertyname,
int type);
1530 DATASRCAPI
void ds_monitor_add_data(
ds_monitor_t *data,
const void *datum);
1533 DATASRCAPI
void ds_monitor_free_data(
ds_monitor_t *data);
1536 DATASRCAPI
ds_monitor_t *ds_monitor_new_string(
const char *templatename,
const char *key,
const char *propertyname,
const char *value);
1537 DATASRCAPI
ds_monitor_t *ds_monitor_new_ushort(
const char *templatename,
const char *key,
const char *propertyname, uint16_t value);
1538 DATASRCAPI
ds_monitor_t *ds_monitor_new_short(
const char *templatename,
const char *key,
const char *propertyname, int16_t value);
1539 DATASRCAPI
ds_monitor_t *ds_monitor_new_ulong(
const char *templatename,
const char *key,
const char *propertyname, uint32_t value);
1540 DATASRCAPI
ds_monitor_t *ds_monitor_new_long(
const char *templatename,
const char *key,
const char *propertyname, int32_t value);
1541 DATASRCAPI
ds_monitor_t *ds_monitor_new_ullong(
const char *templatename,
const char *key,
const char *propertyname, uint64_t value);
1542 DATASRCAPI
ds_monitor_t *ds_monitor_new_llong(
const char *templatename,
const char *key,
const char *propertyname, int64_t value);
1543 DATASRCAPI
ds_monitor_t *ds_monitor_new_double(
const char *templatename,
const char *key,
const char *propertyname,
double value);
1544 DATASRCAPI
ds_monitor_t *ds_monitor_new_timestamp(
const char *templatename,
const char *key,
const char *propertyname, int64_t value);
1545 DATASRCAPI
ds_monitor_t *ds_monitor_new_boolean(
const char *templatename,
const char *key,
const char *propertyname, uint8_t value);
1554 DATASRCAPI sock_t ds_listen_socket(
const char *addr,
int port,
int backlog);
1555 DATASRCAPI sock_t ds_accept_socket(sock_t fd);
1556 DATASRCAPI sock_t ds_multicast_listen_socket(
const char *p_interface,
const char *addr,
int port);
1557 DATASRCAPI sock_t ds_udp_listen_socket(
const char *p_interface,
int port);
1558 DATASRCAPI sock_t ds_client_socket(
const char *serv,
unsigned short port);
1559 DATASRCAPI sock_t ds_client_socket_nonblocking(
const char *serv,
unsigned short port);
1560 DATASRCAPI
int ds_udp_send(
const char *data,
int len,
const char *addr,
int port);
1561 DATASRCAPI
int ds_udp_sendto(
const char *data,
int len,
struct sockaddr_storage *serv_addr);
1562 DATASRCAPI sock_t ds_udp_client_socket(
const char *addr,
int port,
struct sockaddr_storage *serv_addr);
1563 DATASRCAPI
int ds_udp_bind_client_socket(sock_t sock,
const char *addr,
int port);
1564 DATASRCAPI
char *ds_interface_address(
const char *ifname);
1565 DATASRCAPI
void ds_setnonblocking(sock_t fd);
1566 DATASRCAPI
char *ds_getnameinfo(
const struct sockaddr_storage *addr,
char *buf,
size_t buflen);
1567 DATASRCAPI
int ds_compare_sockaddr(
struct sockaddr_storage *sa,
struct sockaddr_storage *sb);
1568 DATASRCAPI
int ds_pipe(sock_t fds[2]);
1569 DATASRCAPI
int ds_check_subnet(
const char *s_address,
const char *s_network,
const char *s_netmask);
1570 DATASRCAPI
struct sockaddr_storage *ds_gethostsockaddr(
const char *name,
struct sockaddr_storage *populate);
1571 DATASRCAPI
struct addrinfo *ds_gethostsockaddrs(
const char *name);
1584 #define DS_MSG_CONNECT 0x0100 1593 #define DS_MSG_DISCONNECT 0x0200 1594 #define DS_MSG_STATUS 0x0400 1599 #define DS_T_USERMASK 0x00ff 1610 #define DS_T_ACTIVE 0x0001 1622 #define DS_T_CONTRIB 0x0002 1624 #define DS_T_MSG 0x0100 1629 #define DS_F_USERMASK 0x00ff 1646 #define F_SENDFROMSEQ 0x0001 1648 #define F_SENDFROMFIELD 0x0002 1664 #define F_RECVAUTOREPLAY 0x0004 1681 #define F_NOCONNECT 0x0008 1683 #define F_RECONNECT 0x0100 1684 #define F_FAILOVER 0x0200 1689 #define F_NODATAMASK 0x000f 1700 #define F_NOTFOUND 0x0001 1710 #define F_READDENY 0x0002 1720 #define F_WRITEDENY 0x0003 1730 #define F_DELETEOBJECT 0x0004 1740 #define F_UNAVAILABLE 0x0005 1741 #define F_STATUS 0x0006 1750 #define F_IGNOREREQTIMEOUT 0x0008 1757 #define DS_PAGE_TYPE 221 1761 #define DS_RECORD_TYPE 222 1765 #define DS_RECORD_TYPE2 225 1769 #define DS_RECORD_TYPE3 226 1773 #define DS_NEWS_TYPE 223 1777 #define DS_STORY_TYPE 224 1781 #define DS_CONTAINER_TYPE 228 1785 #define DS_PERMISSION_TYPE 230 1793 #define DS_GENERIC_TYPE 231 1801 #define F_CREATEOBJECT 0x0010 1805 #define F_CREATEPARENT 0x0020 1806 #define F_PERSISTENT 0x0040 1807 #define F_CREATEDATA 0x0080 1812 #define F_CLEAR_PERM 0x0400 1824 #define F_FILTER_PERM 0x0800 1830 #define F_AUTHGLOBAL 0x0100 1835 #define F_CLEAR_TYPE3 0x0100 1840 #define F_FILTER_TYPE3 0x0200 1844 #define F_CLEAR_TYPE2 0x0400 1859 #define F_FILTER_TYPE2 0x0800 1866 #ifdef __DARWIN_NULL 1869 #define F_NOCACHE 0x0400 1877 #define F_DELETE_HEADLINE 0x0100 1886 #define F_CHANGE_HEADLINE 0x0200 1892 #define F_IMAGE 0x1000 1897 #define F_NONACTIVE 0x2000 1901 #define F_AUTHUPDATE 0x4000 1911 #define F_CONSTITUENT_NOAUTH 0x4000 1919 #define F_CHANGEDFIELDS 0x8000 1923 #define FLOAT32_TYPE 1 1924 #define FLOAT64_TYPE 2 1926 #define INT16_TYPE 4 1927 #define INT32_TYPE 5 1928 #define INT64_TYPE 6 1942 #define DS_REQUEST_FAILOVER 1 1952 #define DS_REQUEST_CACHE 4 1967 #define S_INFO 0x0000 1977 #define S_STALE 0x0001 1987 #define S_NOTSTALE 0x0004 2000 #define S_UPDCLR 0x0100 2012 #define S_FAILOVER 0x1101 2027 #define OBJ_STATUS_INFO 0x0000 2041 #define OBJ_STATUS_OK 0x0001 2057 #define OBJ_STATUS_STALE 0x0002 2075 #define OBJ_STATUS_LIMITED 0x0008 2078 #define OBJ_STATUS_NOTMAPPED 0x0010 2088 #define SVC_STATUS_OK 0x0001 2098 #define SVC_STATUS_DOWN 0x0002 2108 #define SVC_STATUS_LIMITED 0x0008 2112 #define DS_MAX_BITFIELD (sizeof(ds_bitfield_t)*8) 2114 #define DS_BITFIELD_SET(n,p) *(p) |= (1ULL << (n)) 2115 #define DS_BITFIELD_CLR(n,p) *(p) &= ~(1ULL << (n)) 2116 #define DS_BITFIELD_ISSET(n,p) (*(p) & (1ULL << (n))) 2117 #define DS_BITFIELD_ZERO(p) *(p) = 0 2118 #define DS_BITFIELD_NONZERO(p) memset((char *)(p), 0xffffffff, sizeof(*(p))) 2122 DATASRCAPI
int ds_iszero(
ds_set_t *p);
2133 #define DS_MAX_PEERS 1024 2139 #define DS_MIN_PEER 0 2145 #define DS_INTERNAL_DATASRC 1023 2147 typedef uint32_t dsset_element_t;
2149 #define DS_NUMBITS (sizeof(dsset_element_t) * 8) 2150 #define DS_NUM_ELEMS (DS_MAX_PEERS+DS_NUMBITS-1)/DS_NUMBITS 2151 #define DS_NUM_BYTES (DS_NUM_ELEMS * sizeof(dsset_element_t)) 2155 dsset_element_t bits[DS_NUM_ELEMS];
2162 #define DS_SET(n,p) ((p)->bits[(n)/DS_NUMBITS] |= ((unsigned)1 << ((n) % DS_NUMBITS))) 2168 #define DS_CLR(n,p) ((p)->bits[(n)/DS_NUMBITS] &= ~((unsigned)1 << ((n) % DS_NUMBITS))) 2174 #define DS_ISSET(n,p) ((p)->bits[(n)/DS_NUMBITS] & ((unsigned)1 << ((n) % DS_NUMBITS))) 2180 #define DS_ZERO(p) memset((char *)(p)->bits, 0, DS_NUM_BYTES) 2186 #define DS_NONZERO(p) memset((char *)(p)->bits, 0xff, DS_NUM_BYTES) 2192 #define DS_ISZERO(p) ds_iszero(p) 2198 #define DS_AND(p1, p2, a) ds_and(p1, p2, a) 2204 #define DS_OR(p1, p2, o) ds_or(p1, p2, o) 2210 #define DS_AND_ISZERO(p1, p2) ds_and_iszero(p1, p2) 2216 #define DS_AND3_ISZERO(p1, p2, p3) ds_and3_iszero(p1, p2, p3) 2222 #define DS_ISEQUAL(p1, p2) ds_isequal(p1, p2) 2224 DATASRCAPI
ds_data_t *ds_init_data(
const char *subject,
unsigned short type,
unsigned short flags);
2225 DATASRCAPI
void ds_set_subject(
ds_data_t *data,
const char *subject);
2227 DATASRCAPI
void ds_add_data(
ds_data_t *data, int32_t fieldnum,
const char *value);
2228 DATASRCAPI
void ds_add_data_fmt(
ds_data_t *data, int32_t fieldnum,
const char *fmt, ...);
2229 DATASRCAPI
void ds_add_data_str(
ds_data_t *data, int32_t fieldnum,
const char *value);
2230 DATASRCAPI
void ds_add_data_float32(
ds_data_t *data, int32_t fieldnum,
float value);
2231 DATASRCAPI
void ds_add_data_float64(
ds_data_t *data, int32_t fieldnum,
double value);
2232 DATASRCAPI
void ds_add_data_int8(
ds_data_t *data, int32_t fieldnum, int8_t value);
2233 DATASRCAPI
void ds_add_data_int16(
ds_data_t *data, int32_t fieldnum, int16_t value);
2234 DATASRCAPI
void ds_add_data_int32(
ds_data_t *data, int32_t fieldnum, int32_t value);
2235 DATASRCAPI
void ds_add_data_int64(
ds_data_t *data, int32_t fieldnum, int64_t value);
2236 DATASRCAPI
void ds_add_data_char(
ds_data_t *data, int32_t fieldnum,
char value);
2240 #define ds_add_data_short(d,f,v) ds_add_data_int16(d,f,v) 2241 #define ds_add_data_int(d,f,v) ds_add_data_int32(d,f,v) 2242 #define ds_add_data_long(d,f,v) ds_add_data_int32(d,f,v) 2243 #define ds_add_data_float(d,f,v) ds_add_data_float32(d,f,v) 2244 #define ds_add_data_double(d,f,v) ds_add_data_float64(d,f,v) 2246 DATASRCAPI
void ds_send_data(
ds_data_t *data);
2247 DATASRCAPI
void ds_send_data_to_peer(
int peer,
ds_data_t *data);
2248 DATASRCAPI
void ds_send_data_no_free(
ds_data_t *data);
2249 DATASRCAPI
void ds_send_data_to_peer_no_free(
int peer,
ds_data_t *data);
2250 DATASRCAPI
void ds_send_nodata(
const char *subject,
unsigned short flags);
2251 DATASRCAPI
void ds_send_nodata_to_peer(
int peer,
const char *subject,
unsigned short flags);
2252 DATASRCAPI
void ds_free_data(
ds_data_t *data);
2253 DATASRCAPI
void ds_send_status(
const char *subject,
unsigned short flags,
unsigned short code,
const char *msgstr);
2254 DATASRCAPI
void ds_send_status_to_peer(
int peer,
const char *subject,
unsigned short flags,
unsigned short code,
const char *msgstr);
2255 DATASRCAPI
void ds_send_data_direct(
ds_data_t *data);
2256 DATASRCAPI
void ds_send_nodata_direct(
const char *subject,
unsigned short flags);
2257 DATASRCAPI
void ds_send_status_direct(
const char *subject,
unsigned short flags,
unsigned short code,
const char *msgstr);
2259 DATASRCAPI
void ds_send_map_to_peer(
int peer,
const char *subject,
const char *mapped,
unsigned short flags);
2260 DATASRCAPI
void ds_send_map(
const char *subject,
const char *mapped,
unsigned short flags);
2275 DATASRCAPI
ds_delay_t *ds_new_delay(
double delay_time,
char *prefix,
double batch_time);
2276 DATASRCAPI
ds_delay_t *ds_new_delay_with_callback(
double delay_time,
char *prefix,
double batch_time,
void *callback_param,
ds_delay_send_cb callback_func);
2279 DATASRCAPI int32_t ds_add_record_str(
ds_data_t *data,
const char *field,
const char *value);
2280 DATASRCAPI int32_t ds_add_record_int(
ds_data_t *data,
const char *field,
int value);
2281 DATASRCAPI int32_t ds_add_record_char(
ds_data_t *data,
const char *field,
char value);
2282 DATASRCAPI int32_t ds_add_record_float(
ds_data_t *data,
const char *field,
double value);
2283 DATASRCAPI int32_t ds_add_record_fmt(
ds_data_t *data,
const char *field,
const char *fmt, ...);
2285 DATASRCAPI
ds_data_t *ds_init_page(
const char *subject,
int rows,
int cols,
const char *type,
unsigned short flags);
2286 DATASRCAPI
void ds_add_page_row(
ds_data_t *data,
int row,
int col,
const char *str);
2287 DATASRCAPI
void ds_add_page_field(
ds_data_t *data, int32_t fieldnum,
const char *value);
2288 DATASRCAPI
void ds_add_page_field_by_name(
ds_data_t *data,
const char *field,
const char *value);
2290 DATASRCAPI
ds_data_t *ds_init_news(
const char *subject,
unsigned short flags);
2291 DATASRCAPI
void ds_add_news_headline(
ds_data_t *data,
const char *headline);
2292 DATASRCAPI
void ds_add_news_storycode(
ds_data_t *data,
const char *story);
2293 DATASRCAPI
void ds_add_news_datetime(
ds_data_t *data,
const char *datestr);
2294 DATASRCAPI
void ds_add_news_authstr(
ds_data_t *data,
const char *authstr);
2295 DATASRCAPI
void ds_add_news_product_code(
ds_data_t *data,
const char *code);
2296 DATASRCAPI
void ds_add_news_topic_code(
ds_data_t *data,
const char *code);
2297 DATASRCAPI
void ds_add_news_company_code(
ds_data_t *data,
const char *code);
2298 DATASRCAPI
void ds_add_news_user_code(
ds_data_t *data,
int codenum,
const char *code);
2299 DATASRCAPI
void ds_add_news_field(
ds_data_t *dsdata,
const char *fieldname,
const char *value);
2301 DATASRCAPI
ds_data_t *ds_init_container(
const char *subject,
const unsigned short flags);
2302 DATASRCAPI
void ds_add_container_symbol_and_request(
ds_data_t *data,
const char *symbol,
const int request);
2303 DATASRCAPI
void ds_add_container_symbol(
ds_data_t *data,
const char *symbol);
2304 DATASRCAPI
void ds_add_container_symbol_at_position(
ds_data_t *data,
int position,
const char *symbol);
2305 DATASRCAPI
void ds_remove_container_symbol(
ds_data_t *data,
const char *symbol);
2306 DATASRCAPI
void ds_cleardown_container_with_prefix(
ds_data_t *data,
const char *prefix);
2308 DATASRCAPI
ds_data_t *ds_init_permission(
const char *subject,
const char *key,
unsigned short flags);
2309 DATASRCAPI
void ds_add_permission_key(
ds_data_t *data,
const char *key);
2311 DATASRCAPI
void ds_add_binary(
ds_data_t *data, int32_t fieldnum,
char *value,
int len,
char type);
2312 DATASRCAPI
void ds_add_binary_float32(
ds_data_t *data, int32_t fieldnum,
float value);
2313 DATASRCAPI
void ds_add_binary_float64(
ds_data_t *data, int32_t fieldnum,
double value);
2314 DATASRCAPI
void ds_add_binary_int8(
ds_data_t *data, int32_t fieldnum, int8_t value);
2315 DATASRCAPI
void ds_add_binary_int16(
ds_data_t *data, int32_t fieldnum, int16_t value);
2316 DATASRCAPI
void ds_add_binary_int32(
ds_data_t *data, int32_t fieldnum, int32_t value);
2317 DATASRCAPI
void ds_add_binary_int64(
ds_data_t *data, int32_t fieldnum, int64_t value);
2318 DATASRCAPI
void ds_add_binary_uint8(
ds_data_t *data, int32_t fieldnum, uint8_t value);
2319 DATASRCAPI
void ds_add_binary_uint16(
ds_data_t *data, int32_t fieldnum, uint16_t value);
2320 DATASRCAPI
void ds_add_binary_uint32(
ds_data_t *data, int32_t fieldnum, uint32_t value);
2321 DATASRCAPI
void ds_add_binary_uint64(
ds_data_t *data, int32_t fieldnum, uint64_t value);
2322 DATASRCAPI
void ds_add_binary_string(
ds_data_t *data, int32_t fieldnum,
char *value);
2323 DATASRCAPI
void ds_add_binary_opaque(
ds_data_t *data, int32_t fieldnum,
char *value,
int len);
2324 DATASRCAPI
void ds_add_binary_time(
ds_data_t *data, int32_t fieldnum, time_t value);
2325 DATASRCAPI
void ds_add_binary_time_millis(
ds_data_t *data, int32_t fieldnum, int64_t value);
2326 DATASRCAPI
void ds_add_binary_timeval(
ds_data_t *data, int32_t fieldnum,
struct timeval value);
2327 DATASRCAPI
void ds_add_binary_timespec(
ds_data_t *data, int32_t fieldnum,
struct timespec value);
2329 #define ds_add_binary_char(d,f,v) ds_add_binary_int8(d,f,v); 2330 #define ds_add_binary_short(d,f,v) ds_add_binary_int16(d,f,v); 2331 #define ds_add_binary_int(d,f,v) ds_add_binary_int32(d,f,v); 2332 #define ds_add_binary_long(d,f,v) ds_add_binary_int32(d,f,v); 2333 #define ds_add_binary_float(d,f,v) ds_add_binary_float32(d,f,v); 2334 #define ds_add_binary_double(d,f,v) ds_add_binary_float64(d,f,v); 2335 #define ds_add_binary_time_micros(d,f,v) ds_add_binary_timeval(d,f,v); 2336 #define ds_add_binary_time_nanos(d,f,v) ds_add_binary_timespec(d,f,v); 2342 #define NEWS_HEADLINE_FIELDNUM 0 2346 #define NEWS_STORYCODE_FIELDNUM 1 2350 #define NEWS_DATETIME_FIELDNUM 2 2354 #define NEWS_AUTHSTR_FIELDNUM 5 2358 #define NEWS_PRODUCT_CODE_FIELDNUM 100 2362 #define NEWS_TOPIC_CODE_FIELDNUM 101 2366 #define NEWS_COMPANY_CODE_FIELDNUM 102 2370 #define NEWS_USER_CODE_FIELDNUM 200 2374 #define NEWS_USER_CODE_MAX 10 2376 #define NEWS_SIZE_FIELDNUM 300 2377 #define NEWS_REASON_FIELDNUM 301 2379 #define NEWS_REQ_SEARCH 1000 2380 #define NEWS_REQ_STORYCODE 1001 2381 #define NEWS_REQ_DATE_TO 1002 2382 #define NEWS_REQ_DATE_FROM 1003 2383 #define NEWS_REQ_FLAGS 1004 2385 #define NEWS_GENERIC_FIELDNUM 1024 2390 DATASRCAPI
extern int ds_num_peers;
2393 DATASRCAPI
int ds_peer_details(
int peer,
char **name);
2394 DATASRCAPI
int ds_peer_host_details(
int peer,
char **addr);
2395 DATASRCAPI
int ds_peer_id(
int peer);
2396 DATASRCAPI
char *ds_peer_name(
int peer);
2397 DATASRCAPI
int ds_peer_flags(
int peer);
2398 DATASRCAPI
int ds_peer_local_type(
int peer);
2399 DATASRCAPI
int ds_peer_type(
int peer);
2400 DATASRCAPI
int ds_peer_up(
int peer);
2401 DATASRCAPI
void ds_peer_add_extra_handshake_data(
int peer,
const char *data);
2402 DATASRCAPI
int ds_peer_all_type(
int flag);
2404 DATASRCAPI
void ds_set_status_down();
2405 DATASRCAPI
void ds_set_status_down_to_peer(
int peer);
2406 DATASRCAPI
void ds_set_status_msg(
unsigned short msgid,
const char *msgstr);
2407 DATASRCAPI
void ds_set_status_msg_to_peer(
int peer,
unsigned short msgid,
const char *msgstr);
2408 DATASRCAPI
void ds_set_status_up();
2409 DATASRCAPI
void ds_set_status_up_to_peer(
int peer);
2410 DATASRCAPI
int ds_peer_by_label(
const char *label);
2411 DATASRCAPI
char *ds_peer_label_byindex(
int index);
2412 DATASRCAPI
int ds_peer_enabled_state(
int peer);
2452 DATASRCAPI
int ds_replay_from_file(
recv_replay_t callback,
char *filename);
2454 DATASRCAPI
void ds_replay_by_time(time_t t,
recv_replay_t callback);
2455 DATASRCAPI
int ds_replay_by_time_from_file(time_t t,
recv_replay_t callback,
char *filename);
2457 DATASRCAPI
void ds_replay_by_field(
int fieldnum,
char *value,
recv_replay_t callback);
2458 DATASRCAPI
int ds_replay_by_field_from_file(
int fieldnum,
char *value,
recv_replay_t callback,
char *filename);
2459 DATASRCAPI
void ds_replay_by_field_from_log(
int fieldnum,
char *value,
recv_replay_t callback,
ds_log_t *log);
2488 DATASRCAPI
void ds_udpsignal_send(
const char *message);
2489 DATASRCAPI
void ds_udpsignal_send_argv(
const char *message,
char *argv[]);
2492 DATASRCAPI
int ds_udpsignal_addjob(
const char *cmd,
void (*fn)(
int argc,
char *argv[]),
const char *description);
2493 DATASRCAPI
int ds_udpsignal_deljob(
const char *cmd,
void (*fn)(
int argc,
char *argv[]));
2498 DATASRCAPI
void ds_set_productname(
const char *name);
2502 DATASRCAPI
char *ds_request_object(
const char *name);
2503 DATASRCAPI
char *ds_request_object_with_flags(
const char *name,
int flags);
2504 DATASRCAPI
int ds_request_objects(
int count,
char **obs,
char ***services);
2505 DATASRCAPI
int ds_request_objects_with_flags(
int count,
char **obs,
int flags,
char ***services);
2506 DATASRCAPI
void ds_discard_object(
const char *name);
2507 DATASRCAPI
void ds_discard_objects(
int count,
char **obs);
2508 DATASRCAPI
char * ds_get_service(
const char *name);
2509 DATASRCAPI
int ds_send_contribution(
ds_data_t *dsdata);
2510 DATASRCAPI
int ds_get_num_services();
2511 DATASRCAPI
int ds_get_service_by_index(
int index,
char **name_ptr);
2512 DATASRCAPI
int ds_object_available(
const char *name);
2513 DATASRCAPI
int ds_object_can_contrib(
const char *name);
2514 DATASRCAPI
void ds_purge_object(
const char *name);
2515 DATASRCAPI
int ds_required_services_status(
char *buf,
size_t buflen);
2516 DATASRCAPI
int ds_get_service_type(
const char *servicename);
2517 DATASRCAPI
int ds_get_is_contrib_source(
const char *name,
int peer);
2521 DATASRCAPI
char **ds_get_request_hints(
const char *name,
int *ret);
2522 DATASRCAPI
void ds_set_object_data(
const char *name,
void *data);
2523 DATASRCAPI
void *ds_get_object_data(
const char *name);
2526 DATASRCAPI
int ds_signature_check(
char *key_id,
char *token);
2527 DATASRCAPI
int ds_signature_verify_username(
char *expected_username,
char *token);
2536 #define DS_SIGNATURE_OK 0 2543 #define DS_SIGNATURE_INVALID_TOKEN 1 2550 #define DS_SIGNATURE_UNKNOWN_KEYID 2 2557 #define DS_SIGNATURE_ALREADY_USED 3 recv_update_t recv_update
Definition: datasrc.h:366
char * log_root
Definition: datasrc.h:361
unsigned short flags
Definition: datasrc.h:2444
Definition: datasrc.h:357
int(* ds_monitor_authenticator_t)(ds_monauth_t *credentials)
Definition of the function type used for monitoring authentication callback.
Definition: datasrc.h:1487
void(* ds_loglevelchange_t)(ds_log_t *log, int new_level)
Callback used when the logging level of a log file is changed.
Definition: datasrc.h:1197
char * application_root
Definition: datasrc.h:360
char * subject
Definition: datasrc.h:2427
struct _ds_delay ds_delay_t
The delay channel object type.
Definition: datasrc.h:164
unsigned short seq
Definition: datasrc.h:2424
ds_monitor_t *(* ds_monitor_active_cb)(char *templatename, char *key, char *propertyname)
Definition of the function type used for active request callbacks.
Definition: datasrc.h:1462
Enumerated types structure.
Definition: datasrc.h:918
A field within a data update.
Definition: datasrc.h:2439
char * application_name
Definition: datasrc.h:359
void(* recv_update_t)(int peer, ds_data_t *pkt)
Definition: datasrc.h:191
int(* ds_timed_event_cb)(int id, int val, void *data)
Definition of the callback for use with timed events.
Definition: datasrc.h:1041
The container object for monitoring array types.
Definition: datasrc.h:1381
DATASRCAPI int ds_set_request_hint(const char *name, int num, char **hints)
void(* ds_logcycled_t)(ds_log_t *log)
Callback used when the log has cycled.
Definition: datasrc.h:1205
int typeflags
Definition: datasrc.h:1429
void(* recv_object_status_t)(int peer, char *subject, int status, unsigned short code, char *msgstr)
Definition: datasrc.h:314
Monitoring credentials object.
Definition: datasrc.h:1470
Definition: datasrc.h:648
unsigned short count
Definition: datasrc.h:2428
recv_object_status_t recv_object_status
Definition: datasrc.h:372
char * name
Definition: datasrc.h:920
char * docstring
Definition: datasrc.h:1432
recv_service_status_t recv_service_status
Definition: datasrc.h:377
char * docstring
Definition: datasrc.h:922
int sock_t
The network socket datatype.
Definition: datasrc.h:128
struct _ds5_subscription_s ds5_subscription_t
Definition: datasrc.h:633
char * description
Definition: datasrc.h:1431
Definition: datasrc.h:594
DATASRCAPI void ds_add_latency_chain2(ds_data_t *dsdata, char suffix, struct timespec tp, char suffix2, struct timespec *tp2)
function used to add two measurement points to latency chain data
ds_field_t * fields
Definition: datasrc.h:2429
unsigned short flags
Definition: datasrc.h:362
void(* recv_discard_t)(int peer, int count, char **subjects, unsigned short flags)
Definition: datasrc.h:293
char * name
Definition: datasrc.h:1430
Definition of the interface that you should implement if you require custom subject matching logic...
Definition: datasrc.h:432
struct _ds5_publisher_s ds5_publisher_t
Definition: datasrc.h:501
struct _ds_udp_event ds_udp_event_t
Opaque type defining a udp event.
Definition: datasrc.h:2469
char * propertyname
Definition: datasrc.h:1404
The container object for all monitoring values.
Definition: datasrc.h:1402
unsigned short flags
Definition: datasrc.h:2425
void(* recv_replay_t)(int peer, ds_data_t *pkt, time_t tm)
Definition: datasrc.h:209
Structure defining the arguments for Monitoring methods.
Definition: datasrc.h:1427
struct _ds_log ds_log_t
The log file object.
Definition: datasrc.h:175
unsigned short type
Definition: datasrc.h:363
void(* free)(ds5_namespace_t *nspace)
Invoked when the namespace should be deleted.
Definition: datasrc.h:439
struct _ds_peer_set ds_set_t
Defines a set of DataSource peers.
Definition: datasrc.h:153
void(* recv_peer_status_t)(int peer, int status, int val, void *data)
Definition: datasrc.h:253
struct _ds_timed_event ds_timed_event_t
Opaque type defining a timed event.
Definition: datasrc.h:987
size_t size
Definition: datasrc.h:1382
A data update object.
Definition: datasrc.h:2422
char * value
Definition: datasrc.h:2443
char * username
Definition: datasrc.h:1472
int(* ds_io_event_cb)(sock_t sock, int val, void *data)
Definition of the callback for use with read and write events.
Definition: datasrc.h:1029
void(* recv_request_t)(int peer, int count, char **subjects, unsigned short flags)
Definition: datasrc.h:273
unsigned short type
Definition: datasrc.h:2426
struct _ds_io_event ds_write_event_t
Opaque type defining a write event.
Definition: datasrc.h:1009
double value
Definition: datasrc.h:921
recv_request_t recv_request
Definition: datasrc.h:364
char * password
Definition: datasrc.h:1473
struct _config_ctx ds_config_ctx_t
The configuration context data type.
Definition: datasrc.h:170
recv_map_t recv_map
Definition: datasrc.h:378
Definition: datasrc.h:519
int32_t fieldnum
Definition: datasrc.h:2441
recv_peer_status_t recv_peer_status
Definition: datasrc.h:368
char * logfile
Definition: datasrc.h:381
ds_log_t * log
Definition: datasrc.h:382
struct _ds_io_event ds_except_event_t
Opaque type defining an exception event.
Definition: datasrc.h:994
struct _ds_io_event ds_read_event_t
Opaque type defining a read event.
Definition: datasrc.h:1002
DATASRCAPI void ds_add_latency_chain(ds_data_t *dsdata, char suffix, struct timespec *tp)
function used to add a measurement point to latency chain data
void(* ds_delay_send_cb)(void *context, ds_data_t *dsdata)
Definition: datasrc.h:2273
void(* ds_config_func)(char *name, int num, char **values)
Definition of function type used for configuration callbacks.
Definition: datasrc.h:939
int32_t len
Definition: datasrc.h:2442
struct _ds_io_event ds_generic_event_t
Opaque type defining a generic read/write event.
Definition: datasrc.h:1016
recv_nodata_t recv_nodata
Definition: datasrc.h:367
void(* recv_nodata_t)(int peer, char *subject, unsigned short flags)
Definition: datasrc.h:229
char * ipaddress
Definition: datasrc.h:1474
void(* recv_map_t)(int peer, char *from, char *to)
Definition: datasrc.h:337
void(* recv_service_status_t)(char *service, int status)
Definition: datasrc.h:325
int(* ds_udp_event_cb)(int argc, char *argv[], int val, void *data)
Definition of the callback for use with udp events.
Definition: datasrc.h:2482
int(* match)(ds5_namespace_t *nspace, const char *subject)
Tests a subject to see if it falls within this namespace.
Definition: datasrc.h:449
int datatype
Definition: datasrc.h:1405
recv_discard_t recv_discard
Definition: datasrc.h:365