1 /* $Id$
2  *
3  * Lasso - A free implementation of the Liberty Alliance specifications.
4  *
5  * Copyright (C) 2004-2007 Entr'ouvert
6  * http://lasso.entrouvert.org
7  *
8  * Authors: See AUTHORS file in top-level directory.
9  *
10  * This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with this program; if not, see <http://www.gnu.org/licenses/>.
22  */
23 
24 #ifndef __LASSO_DISCO_RESOURCE_OFFERING_H__
25 #define __LASSO_DISCO_RESOURCE_OFFERING_H__
26 
27 #ifdef __cplusplus
28 extern "C" {
29 #endif /* __cplusplus */
30 
31 #include "xml.h"
32 #include "disco_resource_id.h"
33 #include "disco_encrypted_resource_id.h"
34 #include "disco_service_instance.h"
35 #include "disco_options.h"
36 
37 #define LASSO_TYPE_DISCO_RESOURCE_OFFERING (lasso_disco_resource_offering_get_type())
38 #define LASSO_DISCO_RESOURCE_OFFERING(obj) \
39 	(G_TYPE_CHECK_INSTANCE_CAST((obj), LASSO_TYPE_DISCO_RESOURCE_OFFERING, \
40 				    LassoDiscoResourceOffering))
41 #define LASSO_DISCO_RESOURCE_OFFERING_CLASS(klass) \
42 	(G_TYPE_CHECK_CLASS_CAST((klass), LASSO_TYPE_DISCO_RESOURCE_OFFERING, \
43 				 LassoDiscoResourceOfferingClass))
44 #define LASSO_IS_DISCO_RESOURCE_OFFERING(obj) \
45 	(G_TYPE_CHECK_INSTANCE_TYPE((obj), LASSO_TYPE_DISCO_RESOURCE_OFFERING))
46 #define LASSO_IS_DISCO_RESOURCE_OFFERING_CLASS(klass) \
47 	(G_TYPE_CHECK_CLASS_TYPE ((klass), LASSO_TYPE_DISCO_RESOURCE_OFFERING))
48 #define LASSO_DISCO_RESOURCE_OFFERING_GET_CLASS(o) \
49 	(G_TYPE_INSTANCE_GET_CLASS ((o), LASSO_TYPE_DISCO_RESOURCE_OFFERING, \
50 				    LassoDiscoResourceOfferingClass))
51 
52 typedef struct _LassoDiscoResourceOffering LassoDiscoResourceOffering;
53 typedef struct _LassoDiscoResourceOfferingClass LassoDiscoResourceOfferingClass;
54 
55 struct _LassoDiscoResourceOffering {
56 	LassoNode parent;
57 
58 	/* elements */
59 	LassoDiscoResourceID *ResourceID;
60 	LassoDiscoEncryptedResourceID *EncryptedResourceID;
61 	LassoDiscoServiceInstance *ServiceInstance;
62 
63 	/*
64 	 * If the Options element is present, but it is empty, it means that the service instance
65 	 * explicitly advertises that none of the options are available.
66 	*/
67 	LassoDiscoOptions *Options;
68 	gchar *Abstract;
69 
70 	/* attributes */
71 	gchar *entryID;
72 };
73 
74 struct _LassoDiscoResourceOfferingClass {
75 	LassoNodeClass parent;
76 };
77 
78 LASSO_EXPORT GType lasso_disco_resource_offering_get_type(void);
79 
80 LASSO_EXPORT LassoDiscoResourceOffering* lasso_disco_resource_offering_new(
81 	LassoDiscoServiceInstance *serviceInstance);
82 
83 #ifdef __cplusplus
84 }
85 #endif /* __cplusplus */
86 
87 #endif /* __LASSO_DISCO_RESOURCE_OFFERING_H__ */
88