PyGILState_STATE gil_state;\
gil_state = PyGILState_Ensure();
+#define CPY_RETURN_FROM_THREADS \
+ PyGILState_Release(gil_state);\
+ return
+
#define CPY_RELEASE_THREADS \
PyGILState_Release(gil_state);\
}
#endif
typedef struct {
- PyObject_HEAD /* No semicolon! */
- PyObject *parent;
- PyObject *key;
- PyObject *values;
- PyObject *children;
+ PyObject_HEAD /* No semicolon! */
+ PyObject *parent; /* Config */
+ PyObject *key; /* String */
+ PyObject *values; /* Sequence */
+ PyObject *children; /* Sequence */
} Config;
PyTypeObject ConfigType;
+
+typedef struct {
+ PyObject_HEAD /* No semicolon! */
+ double time;
+ char host[DATA_MAX_NAME_LEN];
+ char plugin[DATA_MAX_NAME_LEN];
+ char plugin_instance[DATA_MAX_NAME_LEN];
+ char type[DATA_MAX_NAME_LEN];
+ char type_instance[DATA_MAX_NAME_LEN];
+} PluginData;
+
+PyTypeObject PluginDataType;
+
+typedef struct {
+ PluginData data;
+ PyObject *values; /* Sequence */
+ int interval;
+} Values;
+
+PyTypeObject ValuesType;
+
+typedef struct {
+ PluginData data;
+ int severity;
+ char message[NOTIF_MAX_MSG_LEN];
+} Notification;
+
+PyTypeObject NotificationType;