#ifndef SIGNAL_OBJECT_H
#define SIGNAL_OBJECT_H

#include <gio/gio.h>
#include <glibconfig.h>
#include <glib.h>


#define SIGNAL_OBJECT_TYPE                  (signal_object_get_type ())
/*
#define MAMAN_BAR(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), MAMAN_TYPE_BAR, MamanBar))
#define MAMAN_IS_BAR(obj)               (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MAMAN_TYPE_BAR))
#define MAMAN_BAR_CLASS(klass)          (G_TYPE_CHECK_CLASS_CAST ((klass), MAMAN_TYPE_BAR, MamanBarClass))
#define MAMAN_IS_BAR_CLASS(klass)       (G_TYPE_CHECK_CLASS_TYPE ((klass), MAMAN_TYPE_BAR))
#define MAMAN_BAR_GET_CLASS(obj)        (G_TYPE_INSTANCE_GET_CLASS ((obj), MAMAN_TYPE_BAR, MamanBarClass))
*/

typedef struct _SignalObject        SignalObject;
typedef struct _SignalObjectClass   SignalObjectClass;


struct _SignalObject {
	GObject parentInstance;
	gpointer instance;
	gssize (*cb)(GPollableOutputStream* stream, gchar* data);
	GPollableInputStream* inStream;
	GPollableOutputStream* outStream;
	gchar* data;
	gssize size;
};

struct _SignalObjectClass {
	GObjectClass parent_class;
	gpointer instance;
	gssize (*cb)(GPollableOutputStream* stream, gchar* data);
	GPollableInputStream* inStream;
	GPollableOutputStream* outStream;
	gchar* data;
	gssize size;
};

#endif