Make struct sr_session opaque.

The fields of this structure should not be used directly by frontends
(and none of the current ones do). Thus, make the struct opaque and hide
its contents from the API.
This commit is contained in:
Uwe Hermann 2013-11-22 15:02:12 +01:00
parent f57924179d
commit e2b2382101
2 changed files with 34 additions and 28 deletions

View File

@ -131,6 +131,35 @@ SR_PRIV int sr_source_add(int fd, int events, int timeout,
/*--- session.c -------------------------------------------------------------*/
struct sr_session {
/** List of struct sr_dev pointers. */
GSList *devs;
/** List of struct datafeed_callback pointers. */
GSList *datafeed_callbacks;
GTimeVal starttime;
gboolean running;
unsigned int num_sources;
/*
* Both "sources" and "pollfds" are of the same size and contain pairs
* of descriptor and callback function. We can not embed the GPollFD
* into the source struct since we want to be able to pass the array
* of all poll descriptors to g_poll().
*/
struct source *sources;
GPollFD *pollfds;
int source_timeout;
/*
* These are our synchronization primitives for stopping the session in
* an async fashion. We need to make sure the session is stopped from
* within the session thread itself.
*/
GMutex stop_mutex;
gboolean abort_session;
};
SR_PRIV int sr_session_send(const struct sr_dev_inst *sdi,
const struct sr_datafeed_packet *packet);
SR_PRIV int sr_session_stop_sync(void);

View File

@ -851,34 +851,11 @@ struct sr_dev_driver {
void *priv;
};
struct sr_session {
/** List of struct sr_dev pointers. */
GSList *devs;
/** List of struct datafeed_callback pointers. */
GSList *datafeed_callbacks;
GTimeVal starttime;
gboolean running;
unsigned int num_sources;
/*
* Both "sources" and "pollfds" are of the same size and contain pairs
* of descriptor and callback function. We can not embed the GPollFD
* into the source struct since we want to be able to pass the array
* of all poll descriptors to g_poll().
*/
struct source *sources;
GPollFD *pollfds;
int source_timeout;
/*
* These are our synchronization primitives for stopping the session in
* an async fashion. We need to make sure the session is stopped from
* within the session thread itself.
*/
GMutex stop_mutex;
gboolean abort_session;
};
/**
* Opaque data structure representing a libsigrok session. None of the fields
* of this structure are meant to be accessed directly.
*/
struct sr_session;
#include "proto.h"
#include "version.h"