k/rls/api.h

00001 #ifndef RLS_API_H
00002 #define RLS_API_H
00003 #include "../../str.h"
00004 
00005 typedef int (*rls_handle_subscribe_t)(struct sip_msg*, str, str);
00006 typedef int (*rls_handle_subscribe0_t)(struct sip_msg*);
00007 typedef int (*rls_handle_notify_t)(struct sip_msg*, char*, char*);
00008 
00009 typedef struct rls_binds {
00010         rls_handle_subscribe_t rls_handle_subscribe;
00011         rls_handle_subscribe0_t rls_handle_subscribe0;
00012         rls_handle_notify_t rls_handle_notify;
00013 } rls_api_t;
00014 
00015 typedef int (*bind_rls_f)(rls_api_t*);
00016 
00017 int bind_rls(struct rls_binds*);
00018 
00019 inline static int rls_load_api(rls_api_t *pxb)
00020 {
00021         bind_rls_f bind_rls_exports;
00022         if (!(bind_rls_exports = (bind_rls_f)find_export("bind_rls", 1, 0)))
00023         {
00024                 LM_ERR("Failed to import bind_rls\n");
00025                 return -1;
00026         }
00027         return bind_rls_exports(pxb);
00028 }
00029 
00030 #endif /*RLS_API_H*/