diff options
Diffstat (limited to 'gisi/client.h')
-rw-r--r-- | gisi/client.h | 91 |
1 files changed, 16 insertions, 75 deletions
diff --git a/gisi/client.h b/gisi/client.h index 16c459f0..51acf0aa 100644 --- a/gisi/client.h +++ b/gisi/client.h @@ -28,93 +28,34 @@ extern "C" { #include <stdint.h> #include <glib/gtypes.h> -#include <gisi/modem.h> -#include "phonet.h" + +#include "modem.h" struct _GIsiClient; typedef struct _GIsiClient GIsiClient; -struct _GIsiRequest; -typedef struct _GIsiRequest GIsiRequest; - -typedef void (*GIsiVerifyFunc)(GIsiClient *client, gboolean alive, - uint16_t object, void *opaque); - -typedef gboolean (*GIsiResponseFunc)(GIsiClient *client, - const void *restrict data, size_t len, - uint16_t object, void *opaque); - -typedef void (*GIsiIndicationFunc) (GIsiClient *client, - const void *restrict data, size_t len, - uint16_t object, void *opaque); - GIsiClient *g_isi_client_create(GIsiModem *modem, uint8_t resource); - -GIsiRequest *g_isi_verify(GIsiClient *client, GIsiVerifyFunc func, - void *opaque); - -GIsiRequest *g_isi_verify_resource(GIsiClient *client, uint8_t resource, - GIsiVerifyFunc func, void *opaque); - +GIsiModem *g_isi_client_modem(GIsiClient *client); uint8_t g_isi_client_resource(GIsiClient *client); - -void g_isi_version_set(GIsiClient *client, int major, int minor); -int g_isi_version_major(GIsiClient *client); -int g_isi_version_minor(GIsiClient *client); - -void g_isi_server_object_set(GIsiClient *client, uint16_t obj); -uint8_t g_isi_server_object(GIsiClient *client); - -void g_isi_client_set_debug(GIsiClient *client, GIsiDebugFunc func, - void *opaque); - void g_isi_client_destroy(GIsiClient *client); -int g_isi_client_error(const GIsiClient *client); - -GIsiRequest *g_isi_request_make(GIsiClient *client, const void *data, +GIsiPending *g_isi_client_send(GIsiClient *client, const void *__restrict msg, size_t len, unsigned timeout, - GIsiResponseFunc func, void *opaque); -struct iovec; -GIsiRequest *g_isi_request_vmake(GIsiClient *client, const struct iovec *iov, - size_t iovlen, unsigned timeout, - GIsiResponseFunc func, void *opaque); - -GIsiRequest *g_isi_sendto(GIsiClient *client, - struct sockaddr_pn *dst, - const void *data, size_t len, - unsigned timeout, - GIsiResponseFunc func, void *opaque, - GDestroyNotify notify); - -GIsiRequest *g_isi_send(GIsiClient *client, const void *data, size_t len, - unsigned timeout, - GIsiResponseFunc func, void *opaque, - GDestroyNotify notify); - -GIsiRequest *g_isi_vsendto(GIsiClient *client, - struct sockaddr_pn *dst, - const struct iovec *iov, size_t iovlen, - unsigned timeout, - GIsiResponseFunc func, void *opaque, - GDestroyNotify notify); - -GIsiRequest *g_isi_vsend(GIsiClient *client, - const struct iovec *iov, size_t iovlen, - unsigned timeout, - GIsiResponseFunc func, void *opaque, - GDestroyNotify notify); + GIsiNotifyFunc notify, void *data, + GDestroyNotify destroy); -void g_isi_request_cancel(GIsiRequest *req); +GIsiPending *g_isi_client_vsend(GIsiClient *client, const struct iovec *iov, + size_t iovlen, unsigned timeout, + GIsiNotifyFunc notify, void *data, + GDestroyNotify destroy); -int g_isi_commit_subscriptions(GIsiClient *client); -int g_isi_add_subscription(GIsiClient *client, uint8_t res, uint8_t type, - GIsiIndicationFunc cb, void *data); -void g_isi_remove_subscription(GIsiClient *client, uint8_t res, uint8_t type); +GIsiPending *g_isi_client_ind_subscribe(GIsiClient *client, uint8_t type, + GIsiNotifyFunc notify, void *data); +GIsiPending *g_isi_client_ntf_subscribe(GIsiClient *client, uint8_t type, + GIsiNotifyFunc notify, void *data); -int g_isi_subscribe(GIsiClient *client, uint8_t type, - GIsiIndicationFunc func, void *opaque); -void g_isi_unsubscribe(GIsiClient *client, uint8_t type); +GIsiPending *g_isi_client_verify(GIsiClient *client, GIsiNotifyFunc notify, + void *data, GDestroyNotify destroy); #ifdef __cplusplus } |