tap-driver.sh: flush stdout after each test result
[babeltrace.git] / bindings / python / bt2 / bt2 / native_bt.i
index 59595a3117965a5bb432d39b2819d7236a8ef614..8a43edf0ce80bff4eb63611375945e63417c7933 100644 (file)
 #define BT_LOG_TAG "PY-NATIVE"
 #include "logging.h"
 
-#include <babeltrace/babeltrace.h>
+#include <babeltrace2/babeltrace.h>
+#include <babeltrace2/property.h>
+#include <babeltrace2/assert-internal.h>
 
-typedef const unsigned char *BTUUID;
+typedef const uint8_t *bt_uuid;
 %}
 
 typedef int bt_bool;
@@ -42,16 +44,28 @@ typedef int bt_bool;
 /* For uint*_t/int*_t */
 %include "stdint.i"
 
-/* Remove `bt_` and `BT_` prefixes from function names and enumeration items */
+/*
+ * Remove `bt_` and `BT_` prefixes from function names, global variables and
+ * enumeration items
+ */
 %rename("%(strip:[bt_])s", %$isfunction) "";
+%rename("%(strip:[bt_])s", %$isvariable) "";
 %rename("%(strip:[BT_])s", %$isenumitem) "";
 
-/* Output argument typemap for string output (always appends) */
-%typemap(in, numinputs=0) const char **BTOUTSTR (char *temp_value = NULL) {
+/*
+ * Output argument typemap for string output (always appends)
+ *
+ * We initialize the output parameter `temp_value` to an invalid but non-zero
+ * pointer value.  This is to make sure we don't rely on its initial value in
+ * the epilogue (where we call SWIG_Python_str_FromChar).  When they fail,
+ * functions on which we apply this typemap don't guarantee that the value of
+ * `temp_value` will be unchanged or valid.
+ */
+%typemap(in, numinputs=0) (const char **OUT) (char *temp_value = (void *) 1) {
        $1 = &temp_value;
 }
 
-%typemap(argout) const char **BTOUTSTR {
+%typemap(argout) (const char **OUT) {
        if (*$1) {
                /* SWIG_Python_AppendOutput() steals the created object */
                $result = SWIG_Python_AppendOutput($result, SWIG_Python_str_FromChar(*$1));
@@ -62,47 +76,17 @@ typedef int bt_bool;
        }
 }
 
-/* Output argument typemap for field type output (always appends) */
-%typemap(in, numinputs=0) struct bt_ctf_field_type **BTOUTFT (struct bt_ctf_field_type *temp_ft = NULL) {
-       $1 = &temp_ft;
-}
-
-%typemap(argout) struct bt_ctf_field_type **BTOUTFT {
-       if (*$1) {
-               /* SWIG_Python_AppendOutput() steals the created object */
-               $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(SWIG_as_voidptr(*$1), SWIGTYPE_p_bt_ctf_field_type, 0));
-       } else {
-               /* SWIG_Python_AppendOutput() steals Py_None */
-               Py_INCREF(Py_None);
-               $result = SWIG_Python_AppendOutput($result, Py_None);
-       }
-}
-
-/* Output argument typemap for component output (always appends) */
-%typemap(in, numinputs=0) struct bt_component **BTOUTCOMP (struct bt_component *temp_comp = NULL) {
-       $1 = &temp_comp;
-}
-
-%typemap(argout) struct bt_component **BTOUTCOMP {
-       if (*$1) {
-               /* SWIG_Python_AppendOutput() steals the created object */
-               $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(SWIG_as_voidptr(*$1), SWIGTYPE_p_bt_component, 0));
-       } else {
-               /* SWIG_Python_AppendOutput() steals Py_None */
-               Py_INCREF(Py_None);
-               $result = SWIG_Python_AppendOutput($result, Py_None);
-       }
-}
-
-/* Output argument typemap for connection output (always appends) */
-%typemap(in, numinputs=0) struct bt_connection **BTOUTCONN (struct bt_connection *temp_conn = NULL) {
-       $1 = &temp_conn;
+/* Output argument typemap for value output (always appends) */
+%typemap(in, numinputs=0) (bt_value **OUT) (struct bt_value *temp_value = NULL) {
+       $1 = &temp_value;
 }
 
-%typemap(argout) struct bt_connection **BTOUTCONN {
+%typemap(argout) (bt_value **OUT) {
        if (*$1) {
                /* SWIG_Python_AppendOutput() steals the created object */
-               $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(SWIG_as_voidptr(*$1), SWIGTYPE_p_bt_connection, 0));
+               $result = SWIG_Python_AppendOutput($result,
+                               SWIG_NewPointerObj(SWIG_as_voidptr(*$1),
+                                       SWIGTYPE_p_bt_value, 0));
        } else {
                /* SWIG_Python_AppendOutput() steals Py_None */
                Py_INCREF(Py_None);
@@ -110,63 +94,50 @@ typedef int bt_bool;
        }
 }
 
-/* Output argument typemap for private port output (always appends) */
-%typemap(in, numinputs=0) struct bt_private_port **BTOUTPRIVPORT (struct bt_private_port *temp_priv_port = NULL) {
-       $1 = &temp_priv_port;
+/* Output argument typemap for initialized uint64_t output parameter (always appends) */
+%typemap(in, numinputs=0) (uint64_t *OUT) (uint64_t temp) {
+       $1 = &temp;
 }
 
-%typemap(argout) struct bt_private_port **BTOUTPRIVPORT {
-       if (*$1) {
-               /* SWIG_Python_AppendOutput() steals the created object */
-               $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(SWIG_as_voidptr(*$1), SWIGTYPE_p_bt_private_port, 0));
-       } else {
-               /* SWIG_Python_AppendOutput() steals Py_None */
-               Py_INCREF(Py_None);
-               $result = SWIG_Python_AppendOutput($result, Py_None);
-       }
+%typemap(argout) uint64_t *OUT {
+       $result = SWIG_Python_AppendOutput(resultobj,
+                       SWIG_From_unsigned_SS_long_SS_long((*$1)));
 }
 
-/* Output argument typemap for value output (always appends) */
-%typemap(in, numinputs=0) struct bt_value **BTOUTVALUE (struct bt_value *temp_value = NULL) {
-       $1 = &temp_value;
+/* Output argument typemap for initialized int64_t output parameter (always appends) */
+%typemap(in, numinputs=0) (int64_t *OUT) (int64_t temp) {
+       $1 = &temp;
 }
 
-%typemap(argout) struct bt_value **BTOUTVALUE {
-       if (*$1) {
-               /* SWIG_Python_AppendOutput() steals the created object */
-               $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(SWIG_as_voidptr(*$1), SWIGTYPE_p_bt_value, 0));
-       } else {
-               /* SWIG_Python_AppendOutput() steals Py_None */
-               Py_INCREF(Py_None);
-               $result = SWIG_Python_AppendOutput($result, Py_None);
-       }
+%typemap(argout) (int64_t *OUT) {
+       $result = SWIG_Python_AppendOutput(resultobj, SWIG_From_long_SS_long((*$1)));
 }
 
-/* Output argument typemap for initialized uint64_t output parameter (always appends) */
-%typemap(in, numinputs=0) uint64_t *OUTPUTINIT (uint64_t temp = -1ULL) {
+/* Output argument typemap for initialized unsigned int output parameter (always appends) */
+%typemap(in, numinputs=0) (unsigned int *OUT) (unsigned int temp) {
        $1 = &temp;
 }
 
-%typemap(argout) uint64_t *OUTPUTINIT {
-       $result = SWIG_Python_AppendOutput(resultobj, SWIG_From_unsigned_SS_long_SS_long((*$1)));
+%typemap(argout) (unsigned int *OUT) {
+       $result = SWIG_Python_AppendOutput(resultobj,
+                       SWIG_From_unsigned_SS_long_SS_long((uint64_t) (*$1)));
 }
-
-/* Output argument typemap for initialized unsigned int output parameter (always appends) */
-%typemap(in, numinputs=0) unsigned int *OUTPUTINIT (unsigned int temp = -1) {
+/* Output argument typemap for initialized double output parameter (always appends) */
+%typemap(in, numinputs=0) (double *OUT) (double temp) {
        $1 = &temp;
 }
 
-%typemap(argout) unsigned int *OUTPUTINIT {
-       $result = SWIG_Python_AppendOutput(resultobj, SWIG_From_unsigned_SS_long_SS_long((uint64_t) (*$1)));
+%typemap(argout) (double *OUT) {
+       $result = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*$1)));
 }
 
 /* Input argument typemap for UUID bytes */
-%typemap(in) BTUUID {
+%typemap(in) bt_uuid {
        $1 = (unsigned char *) PyBytes_AsString($input);
 }
 
 /* Output argument typemap for UUID bytes */
-%typemap(out) BTUUID {
+%typemap(out) bt_uuid {
        if (!$1) {
                Py_INCREF(Py_None);
                $result = Py_None;
@@ -175,6 +146,22 @@ typedef int bt_bool;
        }
 }
 
+/* Input argument typemap for bt_bool */
+%typemap(in) bt_bool {
+       $1 = PyObject_IsTrue($input);
+}
+
+/* Output argument typemap for bt_bool */
+%typemap(out) bt_bool {
+       if ($1 > 0) {
+               $result = Py_True;
+       } else {
+               $result = Py_False;
+       }
+       Py_INCREF($result);
+       return $result;
+}
+
 /*
  * Input and output argument typemaps for raw Python objects (direct).
  *
@@ -192,28 +179,35 @@ typedef int bt_bool;
        $result = $1;
 }
 
+/* From property.h */
+
+typedef enum bt_property_availability {
+       BT_PROPERTY_AVAILABILITY_AVAILABLE,
+       BT_PROPERTY_AVAILABILITY_NOT_AVAILABLE,
+} bt_property_availability;
+
 /* Per-module interface files */
-%include "native_btccpriomap.i"
-%include "native_btclockclass.i"
-%include "native_btcomponent.i"
-%include "native_btcomponentclass.i"
-%include "native_btconnection.i"
-%include "native_btctfwriter.i"
-%include "native_btevent.i"
-%include "native_bteventclass.i"
-%include "native_btfields.i"
-%include "native_btft.i"
-%include "native_btgraph.i"
-%include "native_btlogging.i"
-%include "native_btnotification.i"
-%include "native_btnotifiter.i"
-%include "native_btpacket.i"
-%include "native_btplugin.i"
-%include "native_btport.i"
-%include "native_btqueryexec.i"
-%include "native_btref.i"
-%include "native_btstream.i"
-%include "native_btstreamclass.i"
-%include "native_bttrace.i"
-%include "native_btvalues.i"
-%include "native_btversion.i"
+%include "native_bt_clock_class.i"
+%include "native_bt_clock_snapshot.i"
+%include "native_bt_component.i"
+%include "native_bt_component_class.i"
+%include "native_bt_connection.i"
+%include "native_bt_event.i"
+%include "native_bt_event_class.i"
+%include "native_bt_field.i"
+%include "native_bt_field_class.i"
+%include "native_bt_field_path.i"
+%include "native_bt_graph.i"
+%include "native_bt_logging.i"
+%include "native_bt_message.i"
+%include "native_bt_notifier.i"
+%include "native_bt_packet.i"
+%include "native_bt_plugin.i"
+%include "native_bt_port.i"
+%include "native_bt_query_exec.i"
+%include "native_bt_stream.i"
+%include "native_bt_stream_class.i"
+%include "native_bt_trace.i"
+%include "native_bt_trace_class.i"
+%include "native_bt_value.i"
+%include "native_bt_version.i"
This page took 0.028546 seconds and 4 git commands to generate.