diff options
Diffstat (limited to 'lasso/xml/id-wsf-2.0')
-rw-r--r-- | lasso/xml/id-wsf-2.0/disco_query.c | 126 | ||||
-rw-r--r-- | lasso/xml/id-wsf-2.0/disco_query.h | 72 | ||||
-rw-r--r-- | lasso/xml/id-wsf-2.0/disco_query_response.c | 163 | ||||
-rw-r--r-- | lasso/xml/id-wsf-2.0/disco_query_response.h | 77 |
4 files changed, 438 insertions, 0 deletions
diff --git a/lasso/xml/id-wsf-2.0/disco_query.c b/lasso/xml/id-wsf-2.0/disco_query.c new file mode 100644 index 00000000..9da0448b --- /dev/null +++ b/lasso/xml/id-wsf-2.0/disco_query.c @@ -0,0 +1,126 @@ +/* $Id: disco_query.c,v 1.7 2005/01/22 15:57:55 $ + * + * Lasso - A free implementation of the Liberty Alliance specifications. + * + * Copyright (C) 2007 Entr'ouvert + * http://lasso.entrouvert.org + * + * Authors: See AUTHORS file in top-level directory. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include <lasso/xml/id-wsf-2.0/disco_query.h> + +/* + * Schema fragments (liberty-idwsf-disco-svc-v2.0.xsd) : + * + * <xs:element name="Query" type="QueryType"/> + * + * <xs:complexType name="QueryType"> + * <xs:sequence> + * <xs:element name="RequestedService" + * type="RequestedServiceType" + * minOccurs="0" + * maxOccurs="unbounded"/> + * </xs:sequence> + * <xs:anyAttribute namespace="##other" processContents="lax"/> + * </xs:complexType> + */ + +/*****************************************************************************/ +/* private methods */ +/*****************************************************************************/ + +static struct XmlSnippet schema_snippets[] = { +// { "ResourceID", SNIPPET_NODE, G_STRUCT_OFFSET(LassoIdwsf2DiscoQuery, ResourceID) }, +// { "EncryptedResourceID", +// SNIPPET_NODE, G_STRUCT_OFFSET(LassoIdwsf2DiscoQuery, EncryptedResourceID) }, +// { "RequestedServiceType", SNIPPET_LIST_NODES, +// G_STRUCT_OFFSET(LassoIdwsf2DiscoQuery, RequestedServiceType) }, + { "id", SNIPPET_ATTRIBUTE, G_STRUCT_OFFSET(LassoIdwsf2DiscoQuery, id) }, + { NULL, 0, 0} +}; + +/*****************************************************************************/ +/* instance and class init functions */ +/*****************************************************************************/ + +static void +instance_init(LassoIdwsf2DiscoQuery *node) +{ +// node->ResourceID = NULL; +// node->EncryptedResourceID = NULL; +// node->RequestedServiceType = NULL; + node->id = NULL; +} + +static void +class_init(LassoIdwsf2DiscoQueryClass *klass) +{ + LassoNodeClass *nclass = LASSO_NODE_CLASS(klass); + + nclass->node_data = g_new0(LassoNodeClassData, 1); + lasso_node_class_set_nodename(nclass, "Query"); + lasso_node_class_set_ns(nclass, LASSO_IDWSF2_DISCO_HREF, LASSO_IDWSF2_DISCO_PREFIX); + lasso_node_class_add_snippets(nclass, schema_snippets); +} + +GType +lasso_idwsf2_disco_query_get_type() +{ + static GType this_type = 0; + + if (!this_type) { + static const GTypeInfo this_info = { + sizeof (LassoIdwsf2DiscoQueryClass), + NULL, + NULL, + (GClassInitFunc) class_init, + NULL, + NULL, + sizeof(LassoIdwsf2DiscoQuery), + 0, + (GInstanceInitFunc) instance_init, + }; + + this_type = g_type_register_static(LASSO_TYPE_NODE, + "LassoIdwsf2DiscoQuery", &this_info, 0); + } + return this_type; +} + +LassoIdwsf2DiscoQuery* +lasso_idwsf2_disco_query_new() +{ + LassoIdwsf2DiscoQuery *node; + + node = g_object_new(LASSO_TYPE_IDWSF2_DISCO_QUERY, NULL); + + return node; +} + +LassoIdwsf2DiscoQuery* +lasso_idwsf2_disco_query_new_from_message(const gchar *message) +{ + LassoIdwsf2DiscoQuery *node; + + g_return_val_if_fail(message != NULL, NULL); + + node = g_object_new(LASSO_TYPE_IDWSF2_DISCO_QUERY, NULL); + lasso_node_init_from_message(LASSO_NODE(node), message); + + return node; +} diff --git a/lasso/xml/id-wsf-2.0/disco_query.h b/lasso/xml/id-wsf-2.0/disco_query.h new file mode 100644 index 00000000..5fbc29b5 --- /dev/null +++ b/lasso/xml/id-wsf-2.0/disco_query.h @@ -0,0 +1,72 @@ +/* $Id: disco_query.h,v 1.8 2005/01/22 15:57:55 $ + * + * Lasso - A free implementation of the Liberty Alliance specifications. + * + * Copyright (C) 2007 Entr'ouvert + * http://lasso.entrouvert.org + * + * Authors: See AUTHORS file in top-level directory. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef __LASSO_IDWSF2_DISCO_QUERY_H__ +#define __LASSO_IDWSF2_DISCO_QUERY_H__ + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +#include <lasso/xml/xml.h> +//#include <lasso/xml/disco_resource_id.h> +//#include <lasso/xml/disco_encrypted_resource_id.h> +//#include <lasso/xml/disco_requested_service_type.h> + +#define LASSO_TYPE_IDWSF2_DISCO_QUERY (lasso_idwsf2_disco_query_get_type()) +#define LASSO_IDWSF2_DISCO_QUERY(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), \ + LASSO_TYPE_IDWSF2_DISCO_QUERY, LassoIdwsf2DiscoQuery)) +#define LASSO_IDWSF2_DISCO_QUERY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), \ + LASSO_TYPE_IDWSF2_DISCO_QUERY, LassoIdwsf2DiscoQueryClass)) +#define LASSO_IS_IDWSF2_DISCO_QUERY(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), LASSO_TYPE_IDWSF2_DISCO_QUERY)) +#define LASSO_IS_IDWSF2_DISCO_QUERY_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE ((klass),LASSO_TYPE_IDWSF2_DISCO_QUERY)) +#define LASSO_IDWSF2_DISCO_QUERY_GET_CLASS(o) \ + (G_TYPE_INSTANCE_GET_CLASS ((o), LASSO_TYPE_IDWSF2_DISCO_QUERY, LassoIdwsf2DiscoQueryClass)) + +typedef struct _LassoIdwsf2DiscoQuery LassoIdwsf2DiscoQuery; +typedef struct _LassoIdwsf2DiscoQueryClass LassoIdwsf2DiscoQueryClass; + +struct _LassoIdwsf2DiscoQuery { + LassoNode parent; + +// GList *RequestedService; + gchar *id; +}; + +struct _LassoIdwsf2DiscoQueryClass { + LassoNodeClass parent; +}; + +LASSO_EXPORT GType lasso_idwsf2_disco_query_get_type(void); + +LASSO_EXPORT LassoIdwsf2DiscoQuery* lasso_idwsf2_disco_query_new(void); + +LASSO_EXPORT LassoIdwsf2DiscoQuery* lasso_idwsf2_disco_query_new_from_message(const gchar *message); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __LASSO_IDWSF2_DISCO_QUERY_H__ */ diff --git a/lasso/xml/id-wsf-2.0/disco_query_response.c b/lasso/xml/id-wsf-2.0/disco_query_response.c new file mode 100644 index 00000000..44aa5690 --- /dev/null +++ b/lasso/xml/id-wsf-2.0/disco_query_response.c @@ -0,0 +1,163 @@ +/* $Id: disco_query_response.c,v 1.9 2005/08/12 09:08:44$ + * + * Lasso - A free implementation of the Liberty Alliance specifications. + * + * Copyright (C) 2007 Entr'ouvert + * http://lasso.entrouvert.org + * + * Authors: See AUTHORS file in top-level directory. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include <lasso/xml/id-wsf-2.0/disco_query_response.h> + +/* + * Schema fragment (liberty-idwsf-disco-svc-v2.0.xsd): + * + * <xs:element name="QueryResponse" type="QueryResponseType"/> + * + * <xs:complexType name="QueryResponseType"> + * <xs:sequence> + * <xs:element ref="lu:Status"/> + * <xs:element ref="wsa:EndpointReference" + * minOccurs="0" + * maxOccurs="unbounded"/> + * </xs:sequence> + * <xs:anyAttribute namespace="##other" processContents="lax"/> + * </xs:complexType> + */ + +/*****************************************************************************/ +/* private methods */ +/*****************************************************************************/ + +static struct XmlSnippet schema_snippets[] = { +// { "Status", SNIPPET_NODE, +// G_STRUCT_OFFSET(LassoIdwsf2DiscoQueryResponse, Status) }, +// { "ResourceOffering", SNIPPET_LIST_NODES, +// G_STRUCT_OFFSET(LassoIdwsf2DiscoQueryResponse, ResourceOffering) }, +// { "Credentials", SNIPPET_NODE, +// G_STRUCT_OFFSET(LassoIdwsf2DiscoQueryResponse, Credentials) }, + { "id", SNIPPET_ATTRIBUTE, + G_STRUCT_OFFSET(LassoIdwsf2DiscoQueryResponse, id) }, + { NULL, 0, 0} +}; + +static LassoNodeClass *parent_class = NULL; + +static void +insure_namespace(xmlNode *xmlnode, xmlNs *ns) +{ + xmlNode *t = xmlnode->children; + + xmlSetNs(xmlnode, ns); + while (t) { + if (t->type == XML_ELEMENT_NODE && t->ns == NULL) + insure_namespace(t, ns); + t = t->next; + } +} + +static xmlNode* +get_xmlNode(LassoNode *node, gboolean lasso_dump) +{ + xmlNode *xmlnode; + xmlNs *ns; + + xmlnode = parent_class->get_xmlNode(node, lasso_dump); + ns = xmlNewNs(NULL, (xmlChar*)LASSO_IDWSF2_DISCO_HREF, (xmlChar*)LASSO_IDWSF2_DISCO_PREFIX); + insure_namespace(xmlnode, ns); + + return xmlnode; +} + +/*****************************************************************************/ +/* instance and class init functions */ +/*****************************************************************************/ + +static void +instance_init(LassoIdwsf2DiscoQueryResponse *node) +{ + node->Status = NULL; +// node->ResourceOffering = NULL; +// node->Credentials = NULL; + + node->id = NULL; +} + +static void +class_init(LassoIdwsf2DiscoQueryResponseClass *class) +{ + LassoNodeClass *nclass = LASSO_NODE_CLASS(class); + + parent_class = g_type_class_peek_parent(class); + nclass->get_xmlNode = get_xmlNode; + nclass->node_data = g_new0(LassoNodeClassData, 1); + lasso_node_class_set_nodename(nclass, "QueryResponse"); + lasso_node_class_set_ns(nclass, LASSO_IDWSF2_DISCO_HREF, LASSO_IDWSF2_DISCO_PREFIX); + lasso_node_class_add_snippets(nclass, schema_snippets); +} + +GType +lasso_idwsf2_disco_query_response_get_type() +{ + static GType this_type = 0; + + if (!this_type) { + static const GTypeInfo this_info = { + sizeof (LassoIdwsf2DiscoQueryResponseClass), + NULL, + NULL, + (GClassInitFunc) class_init, + NULL, + NULL, + sizeof(LassoIdwsf2DiscoQueryResponse), + 0, + (GInstanceInitFunc) instance_init, + }; + + this_type = g_type_register_static(LASSO_TYPE_NODE, + "LassoIdwsf2DiscoQueryResponse", &this_info, 0); + } + return this_type; +} + +LassoIdwsf2DiscoQueryResponse* +lasso_idwsf2_disco_query_response_new(LassoUtilityStatus *status) +{ + LassoIdwsf2DiscoQueryResponse *node; + + g_return_val_if_fail(LASSO_IS_UTILITY_STATUS(status), NULL); + + node = g_object_new(LASSO_TYPE_IDWSF2_DISCO_QUERY_RESPONSE, NULL); + + node->Status = status; + + return node; +} + +LassoIdwsf2DiscoQueryResponse* +lasso_idwsf2_disco_query_response_new_from_message(const gchar *message) +{ + LassoIdwsf2DiscoQueryResponse *response; + + g_return_val_if_fail(message != NULL, NULL); + + response = g_object_new(LASSO_TYPE_IDWSF2_DISCO_QUERY_RESPONSE, NULL); + lasso_node_init_from_message(LASSO_NODE(response), message); + + return response; +} diff --git a/lasso/xml/id-wsf-2.0/disco_query_response.h b/lasso/xml/id-wsf-2.0/disco_query_response.h new file mode 100644 index 00000000..6f13a25e --- /dev/null +++ b/lasso/xml/id-wsf-2.0/disco_query_response.h @@ -0,0 +1,77 @@ +/* $Id: disco_query_response.h,v 1.5 2005/01/22 15:57:55 $ + * + * Lasso - A free implementation of the Liberty Alliance specifications. + * + * Copyright (C) 2007 Entr'ouvert + * http://lasso.entrouvert.org + * + * Authors: See AUTHORS file in top-level directory. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef __LASSO_IDWSF2_DISCO_QUERY_RESPONSE_H__ +#define __LASSO_IDWSF2_DISCO_QUERY_RESPONSE_H__ + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +#include <lasso/xml/xml.h> +//#include <lasso/xml/disco_credentials.h> +#include <lasso/xml/utility_status.h> + +#define LASSO_TYPE_IDWSF2_DISCO_QUERY_RESPONSE (lasso_idwsf2_disco_query_response_get_type()) +#define LASSO_IDWSF2_DISCO_QUERY_RESPONSE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), \ + LASSO_TYPE_IDWSF2_DISCO_QUERY_RESPONSE, LassoIdwsf2DiscoQueryResponse)) +#define LASSO_IDWSF2_DISCO_QUERY_RESPONSE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), \ + LASSO_TYPE_IDWSF2_DISCO_QUERY_RESPONSE, LassoIdwsf2DiscoQueryResponseClass)) +#define LASSO_IS_IDWSF2_DISCO_QUERY_RESPONSE(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), LASSO_TYPE_IDWSF2_DISCO_QUERY_RESPONSE)) +#define LASSO_IS_IDWSF2_DISCO_QUERY_RESPONSE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE ((klass), LASSO_TYPE_IDWSF2_DISCO_QUERY_RESPONSE)) +#define LASSO_IDWSF2_DISCO_QUERY_RESPONSE_GET_CLASS(o) \ + (G_TYPE_INSTANCE_GET_CLASS ((o), LASSO_TYPE_IDWSF2_DISCO_QUERY_RESPONSE, \ + LassoIdwsf2DiscoQueryResponseClass)) + +typedef struct _LassoIdwsf2DiscoQueryResponse LassoIdwsf2DiscoQueryResponse; +typedef struct _LassoIdwsf2DiscoQueryResponseClass LassoIdwsf2DiscoQueryResponseClass; + +struct _LassoIdwsf2DiscoQueryResponse { + LassoNode parent; + + LassoUtilityStatus *Status; +// GList *ResourceOffering; +// LassoIdwsf2DiscoCredentials *Credentials; + + char *id; +}; + +struct _LassoIdwsf2DiscoQueryResponseClass { + LassoNodeClass parent; +}; + +LASSO_EXPORT GType lasso_idwsf2_disco_query_response_get_type(void); + +LASSO_EXPORT LassoIdwsf2DiscoQueryResponse* lasso_idwsf2_disco_query_response_new(LassoUtilityStatus *status); + +LASSO_EXPORT LassoIdwsf2DiscoQueryResponse* lasso_idwsf2_disco_query_response_new_from_message( + const gchar *message); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __LASSO_IDWSF2_DISCO_QUERY_RESPONSE_H__ */ |