This repository has been archived on 2020-04-11. You can view files and clone it, but cannot push or open issues or pull requests.
gnoemoe/gnoemoe/mcp/gm-mcp-package.h

90 lines
2.7 KiB
C

#ifndef __GM_MCP_PACKAGE_H__
#define __GM_MCP_PACKAGE_H__
#include <glib-object.h>
G_BEGIN_DECLS
/*
* Type checking and casting macros
*/
#define GM_TYPE_MCP_PACKAGE (gm_mcp_package_get_type())
#define GM_MCP_PACKAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), \
GM_TYPE_MCP_PACKAGE, GmMcpPackage))
#define GM_MCP_PACKAGE_CONST(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),\
GM_TYPE_MCP_PACKAGE, GmMcpPackage const))
#define GM_MCP_PACKAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), \
GM_TYPE_MCP_PACKAGE, GmMcpPackageClass))
#define GM_IS_MCP_PACKAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), \
GM_TYPE_MCP_PACKAGE))
#define GM_IS_MCP_PACKAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), \
GM_TYPE_MCP_PACKAGE))
#define GM_MCP_PACKAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), \
GM_TYPE_MCP_PACKAGE, GmMcpPackageClass))
#define GM_MCP_PACKAGE_SESSION(obj) (GM_MCP_SESSION( \
gm_mcp_package_get_session(GM_MCP_PACKAGE(obj))))
/* Private structure type */
typedef struct _GmMcpPackagePrivate GmMcpPackagePrivate;
/*
* Main object structure
*/
typedef struct _GmMcpPackage GmMcpPackage;
struct _GmMcpPackage {
GObject parent;
/*< private > */
GmMcpPackagePrivate *priv;
};
/*
* Class definition
*/
typedef struct _GmMcpPackageClass GmMcpPackageClass;
struct _GmMcpPackageClass {
GObjectClass parent_class;
gchar *name;
gdouble min_version;
gdouble max_version;
GList *depends;
GList *overrides;
void (* handle_simple)(GmMcpPackage *package, gchar *suffix, GList *fields);
gboolean (* handle_multi)(GmMcpPackage *package, gchar *data_tag,
gchar *key, gchar *value, GList *allValues);
/* Signals
void (* proto) (GmMcpPackage *obj); */
};
/* Public */
GType gm_mcp_package_get_type(void) G_GNUC_CONST;
GmMcpPackage *gm_mcp_package_new();
void gm_mcp_package_set_session(GmMcpPackage *package, GObject *session);
void gm_mcp_package_handle_simple(GmMcpPackage *package, gchar *suffix,
GList *fields);
gboolean gm_mcp_package_can_handle_simple(GmMcpPackage *package);
gboolean gm_mcp_package_handle_multi(GmMcpPackage *package, gchar *data_tag,
gchar *key, gchar *value, GList *allValues);
gboolean gm_mcp_package_can_handle_multi(GmMcpPackage *package);
void gm_mcp_package_set_version(GmMcpPackage *package, gdouble version);
gdouble gm_mcp_package_get_version(GmMcpPackage *package);
GObject *gm_mcp_package_get_session(GmMcpPackage *package);
/* Class getters */
gchar const *gm_mcp_package_get_name(GmMcpPackage *package);
GList const *gm_mcp_package_get_depends(GmMcpPackage *package);
GList const *gm_mcp_package_get_overrides(GmMcpPackage *package);
gdouble gm_mcp_package_get_min_version(GmMcpPackage *package);
gdouble gm_mcp_package_get_max_version(GmMcpPackage *package);
G_END_DECLS
#endif /* __GM_MCP_PACKAGE_H__ */