mirror of git://git.sysmocom.de/ofono
gisi: Refactor the client API
The new client API is a convenience wrapper on the modem API for clients.
This commit is contained in:
parent
0ccb96f9ab
commit
325e555092
907
gisi/client.c
907
gisi/client.c
File diff suppressed because it is too large
Load Diff
|
@ -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);
|
||||
GIsiNotifyFunc notify, void *data,
|
||||
GDestroyNotify destroy);
|
||||
|
||||
GIsiRequest *g_isi_sendto(GIsiClient *client,
|
||||
struct sockaddr_pn *dst,
|
||||
const void *data, size_t len,
|
||||
unsigned timeout,
|
||||
GIsiResponseFunc func, void *opaque,
|
||||
GDestroyNotify notify);
|
||||
GIsiPending *g_isi_client_vsend(GIsiClient *client, const struct iovec *iov,
|
||||
size_t iovlen, unsigned timeout,
|
||||
GIsiNotifyFunc notify, void *data,
|
||||
GDestroyNotify destroy);
|
||||
|
||||
GIsiRequest *g_isi_send(GIsiClient *client, const void *data, size_t len,
|
||||
unsigned timeout,
|
||||
GIsiResponseFunc func, void *opaque,
|
||||
GDestroyNotify notify);
|
||||
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);
|
||||
|
||||
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);
|
||||
|
||||
void g_isi_request_cancel(GIsiRequest *req);
|
||||
|
||||
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);
|
||||
|
||||
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
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue