00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef DTN_API_H
00018 #define DTN_API_H
00019
00020 #include "dtn_errno.h"
00021 #include "dtn_types.h"
00022
00026 typedef int* dtn_handle_t;
00027
00028 #ifdef __cplusplus
00029 extern "C" {
00030 #endif
00031
00032
00033
00034
00035
00036
00037
00045 extern int dtn_open(dtn_handle_t* handle);
00046
00050 extern int dtn_close(dtn_handle_t handle);
00051
00055 extern int dtn_errno(dtn_handle_t handle);
00056
00060 extern void dtn_set_errno(dtn_handle_t handle, int err);
00061
00066 extern int dtn_build_local_eid(dtn_handle_t handle,
00067 dtn_endpoint_id_t* local_eid,
00068 const char* service_tag);
00069
00077 extern int dtn_register(dtn_handle_t handle,
00078 dtn_reg_info_t* reginfo,
00079 dtn_reg_id_t* newregid);
00080
00091 extern int dtn_unregister(dtn_handle_t handle,
00092 dtn_reg_id_t regid);
00093
00099 extern int dtn_find_registration(dtn_handle_t handle,
00100 dtn_endpoint_id_t* eid,
00101 dtn_reg_id_t* newregid);
00102
00106 extern int dtn_change_registration(dtn_handle_t handle,
00107 dtn_reg_id_t regid,
00108 dtn_reg_info_t *reginfo);
00109
00114 extern int dtn_bind(dtn_handle_t handle, dtn_reg_id_t regid);
00115
00122 extern int dtn_unbind(dtn_handle_t handle, dtn_reg_id_t regid);
00123
00127 extern int dtn_send(dtn_handle_t handle,
00128 dtn_reg_id_t regid,
00129 dtn_bundle_spec_t* spec,
00130 dtn_bundle_payload_t* payload,
00131 dtn_bundle_id_t* id);
00132
00136 extern int dtn_cancel(dtn_handle_t handle,
00137 dtn_bundle_id_t* id);
00138
00150 extern int dtn_recv(dtn_handle_t handle,
00151 dtn_bundle_spec_t* spec,
00152 dtn_bundle_payload_location_t location,
00153 dtn_bundle_payload_t* payload,
00154 dtn_timeval_t timeout);
00155
00163 extern int dtn_session_update(dtn_handle_t handle,
00164 unsigned int* status,
00165 dtn_endpoint_id_t* session,
00166 dtn_timeval_t timeout);
00167
00172 extern int dtn_poll_fd(dtn_handle_t handle);
00173
00189 extern int dtn_begin_poll(dtn_handle_t handle, dtn_timeval_t timeout);
00190
00194 extern int dtn_cancel_poll(dtn_handle_t handle);
00195
00196
00197
00198
00199
00200
00201
00205 extern void dtn_copy_eid(dtn_endpoint_id_t* dst, dtn_endpoint_id_t* src);
00206
00211 extern int dtn_parse_eid_string(dtn_endpoint_id_t* eid, const char* str);
00212
00220 extern int dtn_set_payload(dtn_bundle_payload_t* payload,
00221 dtn_bundle_payload_location_t location,
00222 char* val, int len);
00223
00228 void dtn_free_payload(dtn_bundle_payload_t* payload);
00229
00233 const char* dtn_status_report_reason_to_str(dtn_status_report_reason_t err);
00234
00235 #ifdef __cplusplus
00236 }
00237 #endif
00238
00239 #endif