00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef LiveSupport_Core_RdsContainer_h
00030 #define LiveSupport_Core_RdsContainer_h
00031
00032 #ifndef __cplusplus
00033 #error This is a C++ include file
00034 #endif
00035
00036
00037
00038
00039 #ifdef HAVE_CONFIG_H
00040 #include "configure.h"
00041 #endif
00042
00043 #include <map>
00044
00045 #include "LiveSupport/Core/Ptr.h"
00046 #include "LiveSupport/Core/Configurable.h"
00047
00048 #include "LiveSupport/Core/RdsItem.h"
00049
00050
00051 namespace LiveSupport {
00052 namespace Core {
00053
00054 using namespace LiveSupport::Core;
00055
00056
00057
00058
00059
00060
00061
00062
00063
00095 class RdsContainer : public Configurable
00096 {
00097 private:
00102 static const std::string configElementName;
00103
00107 typedef std::vector<Ptr<RdsItem>::Ref>
00108 RdsItemListType;
00109
00113 RdsItemListType rdsItemList;
00114
00118 Ptr<xmlpp::Document>::Ref xmlDocument;
00119
00123 bool touched;
00124
00125
00126 public:
00130 RdsContainer() throw ()
00131 : touched(false)
00132 {
00133 }
00134
00138 virtual
00139 ~RdsContainer(void) throw ()
00140 {
00141 }
00142
00149 static const std::string
00150 getConfigElementName(void) throw ()
00151 {
00152 return configElementName;
00153 }
00154
00162 virtual void
00163 configure(const xmlpp::Element &element)
00164 throw (std::invalid_argument);
00165
00176 void
00177 setRdsOptions(Ptr<const Glib::ustring>::Ref key,
00178 Ptr<const Glib::ustring>::Ref value,
00179 bool enabled) throw ();
00180
00190 Ptr<const Glib::ustring>::Ref
00191 getRdsValue(Ptr<const Glib::ustring>::Ref key)
00192 throw (std::invalid_argument);
00193
00201 bool
00202 getRdsEnabled(Ptr<const Glib::ustring>::Ref key)
00203 throw (std::invalid_argument);
00204
00210 Ptr<Glib::ustring>::Ref
00211 toString(void) throw ();
00212
00219 const xmlpp::Element *
00220 toXmlElement(void) throw ();
00221
00229 bool
00230 isTouched(void) throw ()
00231 {
00232 return touched;
00233 }
00234 };
00235
00236
00237
00238
00239
00240
00241
00242
00243 }
00244 }
00245
00246 #endif // LiveSupport_Core_RdsContainer_h
00247