]> sigrok.org Git - libsigrok.git/commitdiff
Make struct sr_session opaque.
authorUwe Hermann <redacted>
Fri, 22 Nov 2013 14:02:12 +0000 (15:02 +0100)
committerUwe Hermann <redacted>
Fri, 22 Nov 2013 14:02:12 +0000 (15:02 +0100)
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.

libsigrok-internal.h
libsigrok.h

index c418c4e1dc53b1c1e6599e8adc3eb3226c4962d0..f742e127518233c3304d7459a7496e660ee07866 100644 (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);
index 910e52453f5ae6565d00bc9cf0ae2b0fdec67a4d..f0f6d0cc60085053e49207eaba1590265512461f 100644 (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"