00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00018 #ifndef RTR_H
00019 #define RTR_H
00020 #include <pthread.h>
00021 #include <stdbool.h>
00022 #include <stdint.h>
00023
00024 enum rtr_rtvals {
00025 RTR_SUCCESS = 0,
00026 RTR_ERROR = -1,
00027 RTR_INVALID_PARAM = -2
00028 };
00029
00033 enum rtr_interval_mode {
00034 RTR_INTERVAL_MODE_IGNORE_ANY,
00035 RTR_INTERVAL_MODE_ACCEPT_ANY,
00036 RTR_INTERVAL_MODE_DEFAULT_MIN_MAX,
00037 RTR_INTERVAL_MODE_IGNORE_ON_FAILURE
00038 };
00039
00043 enum rtr_socket_state {
00045 RTR_CONNECTING,
00046
00048 RTR_ESTABLISHED,
00049
00051 RTR_RESET,
00052
00054 RTR_SYNC,
00055
00057 RTR_FAST_RECONNECT,
00058
00060 RTR_ERROR_NO_DATA_AVAIL,
00061
00063 RTR_ERROR_NO_INCR_UPDATE_AVAIL,
00064
00066 RTR_ERROR_FATAL,
00067
00069 RTR_ERROR_TRANSPORT,
00070
00072 RTR_SHUTDOWN,
00073
00075 RTR_CLOSED,
00076 };
00077
00078 struct rtr_socket;
00079
00083 typedef void (*rtr_connection_state_fp)(const struct rtr_socket *rtr_socket, const enum rtr_socket_state state, void *connection_state_fp_param_config, void *connection_state_fp_param_group);
00084
00109 struct rtr_socket {
00110 struct tr_socket *tr_socket;
00111 unsigned int refresh_interval;
00112 time_t last_update;
00113 unsigned int expire_interval;
00114 unsigned int retry_interval;
00115 enum rtr_interval_mode iv_mode;
00116 enum rtr_socket_state state;
00117 uint32_t session_id;
00118 bool request_session_id;
00119 uint32_t serial_number;
00120 struct pfx_table *pfx_table;
00121 pthread_t thread_id;
00122 rtr_connection_state_fp connection_state_fp;
00123 void *connection_state_fp_param_config;
00124 void *connection_state_fp_param_group;
00125 unsigned int version;
00126 bool has_received_pdus;
00127 struct spki_table *spki_table;
00128 bool is_resetting;
00129 };
00130
00131
00138 const char *rtr_state_to_str(enum rtr_socket_state state);
00139
00146 void rtr_set_interval_mode(struct rtr_socket *rtr_socket, enum rtr_interval_mode option);
00147
00153 enum rtr_interval_mode rtr_get_interval_mode(struct rtr_socket *rtr_socket);
00154 #endif
00155