- Added other two dialogs for the gui

- Added exception specifications to the methods of the serializer interface and xml plugin

git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@821 3ecf2c5c-341e-0410-92b4-d18e462d057c
This commit is contained in:
elvez 2006-08-04 00:29:37 +00:00
parent 56d7ddbc5a
commit 974702af3e
10 changed files with 678 additions and 48 deletions

View File

@ -0,0 +1,102 @@
<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
<glade-interface>
<widget class="GtkDialog" id="ConfigureCPUPolicyDialog">
<property name="height_request">0</property>
<property name="visible">True</property>
<property name="title" translatable="yes">Configure the CPU Policy</property>
<property name="type">GTK_WINDOW_TOPLEVEL</property>
<property name="window_position">GTK_WIN_POS_MOUSE</property>
<property name="modal">True</property>
<property name="resizable">True</property>
<property name="destroy_with_parent">False</property>
<property name="decorated">True</property>
<property name="skip_taskbar_hint">False</property>
<property name="skip_pager_hint">False</property>
<property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
<property name="focus_on_map">True</property>
<property name="urgency_hint">False</property>
<property name="has_separator">True</property>
<child internal-child="vbox">
<widget class="GtkVBox" id="MainVBox">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child internal-child="action_area">
<widget class="GtkHButtonBox" id="MainButtonBox">
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_SPREAD</property>
<child>
<widget class="GtkButton" id="Cancel.Button">
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
<property name="label">gtk-cancel</property>
<property name="use_stock">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<property name="response_id">-6</property>
</widget>
</child>
<child>
<widget class="GtkButton" id="OK.Button">
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
<property name="label">gtk-ok</property>
<property name="use_stock">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<property name="response_id">-5</property>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack_type">GTK_PACK_END</property>
</packing>
</child>
<child>
<widget class="GtkScrolledWindow" id="PolicyParameters.Scrolled">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
<property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
<property name="shadow_type">GTK_SHADOW_IN</property>
<property name="window_placement">GTK_CORNER_TOP_LEFT</property>
<child>
<widget class="GtkTreeView" id="PolicyParameters.TreeView">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="headers_visible">True</property>
<property name="rules_hint">False</property>
<property name="reorderable">False</property>
<property name="enable_search">True</property>
<property name="fixed_height_mode">False</property>
<property name="hover_selection">False</property>
<property name="hover_expand">False</property>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
</widget>
</child>
</widget>
</glade-interface>

View File

@ -0,0 +1,526 @@
<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
<glade-interface>
<widget class="GtkDialog" id="ConfigureDialog">
<property name="height_request">0</property>
<property name="visible">True</property>
<property name="title" translatable="yes">Configure SGPEMv2</property>
<property name="type">GTK_WINDOW_TOPLEVEL</property>
<property name="window_position">GTK_WIN_POS_MOUSE</property>
<property name="modal">True</property>
<property name="resizable">True</property>
<property name="destroy_with_parent">False</property>
<property name="decorated">True</property>
<property name="skip_taskbar_hint">False</property>
<property name="skip_pager_hint">False</property>
<property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
<property name="focus_on_map">True</property>
<property name="urgency_hint">False</property>
<property name="has_separator">True</property>
<child internal-child="vbox">
<widget class="GtkVBox" id="MainVBox">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child internal-child="action_area">
<widget class="GtkHButtonBox" id="MainButtonBox">
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_SPREAD</property>
<child>
<widget class="GtkButton" id="Cancel.Button">
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
<property name="label">gtk-cancel</property>
<property name="use_stock">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<property name="response_id">-6</property>
</widget>
</child>
<child>
<widget class="GtkButton" id="OK.Button">
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
<property name="label">gtk-ok</property>
<property name="use_stock">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<property name="response_id">-5</property>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack_type">GTK_PACK_END</property>
</packing>
</child>
<child>
<widget class="GtkNotebook" id="TabBar">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="show_tabs">True</property>
<property name="show_border">True</property>
<property name="tab_pos">GTK_POS_TOP</property>
<property name="scrollable">False</property>
<property name="enable_popup">False</property>
<child>
<widget class="GtkVBox" id="Plugins.VBox">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child>
<widget class="GtkScrolledWindow" id="Plugins.Scrolled">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
<property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
<property name="shadow_type">GTK_SHADOW_IN</property>
<property name="window_placement">GTK_CORNER_TOP_LEFT</property>
<child>
<widget class="GtkTreeView" id="Plugins.TreeView">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="headers_visible">True</property>
<property name="rules_hint">False</property>
<property name="reorderable">False</property>
<property name="enable_search">True</property>
<property name="fixed_height_mode">False</property>
<property name="hover_selection">False</property>
<property name="hover_expand">False</property>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
</widget>
<packing>
<property name="tab_expand">False</property>
<property name="tab_fill">True</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="TabBar.Plugins">
<property name="visible">True</property>
<property name="label" translatable="yes">Plugins</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="type">tab</property>
</packing>
</child>
<child>
<widget class="GtkVBox" id="Startup.VBox">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child>
<widget class="GtkFrame" id="Additional.Frame">
<property name="border_width">6</property>
<property name="visible">True</property>
<property name="label_xalign">0</property>
<property name="label_yalign">0.5</property>
<property name="shadow_type">GTK_SHADOW_IN</property>
<child>
<widget class="GtkAlignment" id="Additional.Alignment">
<property name="border_width">6</property>
<property name="visible">True</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xscale">1</property>
<property name="yscale">1</property>
<property name="top_padding">0</property>
<property name="bottom_padding">0</property>
<property name="left_padding">12</property>
<property name="right_padding">0</property>
<child>
<widget class="GtkHBox" id="Additional.HBox">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">10</property>
<child>
<widget class="GtkScrolledWindow" id="Additional.Scrolled">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
<property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
<property name="shadow_type">GTK_SHADOW_IN</property>
<property name="window_placement">GTK_CORNER_TOP_LEFT</property>
<child>
<widget class="GtkTreeView" id="Additional.TreeView">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="headers_visible">True</property>
<property name="rules_hint">False</property>
<property name="reorderable">False</property>
<property name="enable_search">True</property>
<property name="fixed_height_mode">False</property>
<property name="hover_selection">False</property>
<property name="hover_expand">False</property>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
<child>
<widget class="GtkVBox" id="Additional.VBox">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">10</property>
<child>
<widget class="GtkButton" id="Add.Button">
<property name="width_request">100</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<child>
<widget class="GtkAlignment" id="alignment5">
<property name="visible">True</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xscale">0</property>
<property name="yscale">0</property>
<property name="top_padding">0</property>
<property name="bottom_padding">0</property>
<property name="left_padding">0</property>
<property name="right_padding">0</property>
<child>
<widget class="GtkHBox" id="hbox7">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">2</property>
<child>
<widget class="GtkImage" id="image4">
<property name="visible">True</property>
<property name="stock">gtk-open</property>
<property name="icon_size">4</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label10">
<property name="visible">True</property>
<property name="label" translatable="yes">Add</property>
<property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
</widget>
</child>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkButton" id="Remove.Button">
<property name="width_request">100</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<child>
<widget class="GtkAlignment" id="alignment6">
<property name="visible">True</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xscale">0</property>
<property name="yscale">0</property>
<property name="top_padding">0</property>
<property name="bottom_padding">0</property>
<property name="left_padding">0</property>
<property name="right_padding">0</property>
<child>
<widget class="GtkHBox" id="hbox8">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">2</property>
<child>
<widget class="GtkImage" id="image5">
<property name="visible">True</property>
<property name="stock">gtk-remove</property>
<property name="icon_size">4</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label11">
<property name="visible">True</property>
<property name="label" translatable="yes">Remove</property>
<property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
</widget>
</child>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">True</property>
</packing>
</child>
</widget>
</child>
</widget>
</child>
<child>
<widget class="GtkLabel" id="Additional.Label">
<property name="visible">True</property>
<property name="label" translatable="yes">&lt;b&gt;Additional Plugin Directories&lt;/b&gt;</property>
<property name="use_underline">False</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.479999989271</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="type">label_item</property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="Funny.Label">
<property name="visible">True</property>
<property name="label" translatable="yes">&lt;b&gt;PLEASE!
PLEASE!
TELL ME
THERE IS SOME OTHER OPTION TO PUT HERE...&lt;/b&gt;</property>
<property name="use_underline">False</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
</widget>
<packing>
<property name="tab_expand">False</property>
<property name="tab_fill">True</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="ToolBar.Startup">
<property name="visible">True</property>
<property name="label" translatable="yes">Startup</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="type">tab</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label14">
<property name="visible">True</property>
<property name="label" translatable="yes">&lt;b&gt;FILL ME IN...&lt;/b&gt;</property>
<property name="use_underline">False</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="tab_expand">False</property>
<property name="tab_fill">True</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="TabBar.Other">
<property name="visible">True</property>
<property name="label" translatable="yes">Other(?)</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="type">tab</property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
</widget>
</child>
</widget>
</glade-interface>

View File

@ -40,7 +40,7 @@ XMLSerializer::XMLSerializer()
void XMLSerializer::save_snapshot(const Glib::ustring& filename, const History& hist) void XMLSerializer::save_snapshot(const Glib::ustring& filename, const History& hist) throw(SerializeError)
{ {
/* COMPAT: Do not genrate nodes for formatting spaces */ /* COMPAT: Do not genrate nodes for formatting spaces */
LIBXML_TEST_VERSION LIBXML_TEST_VERSION
@ -65,7 +65,7 @@ void XMLSerializer::save_snapshot(const Glib::ustring& filename, const History&
xmlCleanupParser(); xmlCleanupParser();
} }
void XMLSerializer::restore_snapshot(const Glib::ustring& filename, History& hist) void XMLSerializer::restore_snapshot(const Glib::ustring& filename, History& hist) throw(SerializeError)
{ {
// TODO - all to do!! // TODO - all to do!!
// DEBUG - remove me when finished // DEBUG - remove me when finished
@ -222,7 +222,7 @@ void XMLSerializer::clear_history(History& hist)
} }
void XMLSerializer::read_doc(xmlDocPtr doc, XMLSerializerFactory& fact) void XMLSerializer::read_doc(xmlDocPtr doc, XMLSerializerFactory& fact) throw(SerializeError)
{ {
/* /*
* Check the document is of the right kind * Check the document is of the right kind

View File

@ -61,7 +61,7 @@ namespace sgpem
\throws backend::SerializerError on error \throws backend::SerializerError on error
*/ */
virtual void save_snapshot(const Glib::ustring& filename, const History& hist); virtual void save_snapshot(const Glib::ustring& filename, const History& hist) throw(SerializeError);
/** /**
\brief Re-initialize system status from a saved XML snapshot \brief Re-initialize system status from a saved XML snapshot
@ -72,7 +72,7 @@ namespace sgpem
\throws backend::SerializerError \throws backend::SerializerError
*/ */
virtual void restore_snapshot(const Glib::ustring& filename, History& hist); virtual void restore_snapshot(const Glib::ustring& filename, History& hist) throw(SerializeError);
/** /**
\return Constant string "xsgp" \return Constant string "xsgp"
@ -124,7 +124,7 @@ namespace sgpem
Traverse the passed (previously readed) xml document and Traverse the passed (previously readed) xml document and
rebuild the correct image using the XMLSerializerFactory object. rebuild the correct image using the XMLSerializerFactory object.
*/ */
void read_doc(xmlDocPtr doc, XMLSerializerFactory& fact); void read_doc(xmlDocPtr doc, XMLSerializerFactory& fact) throw(SerializeError);
/** /**
\brief Restore all the resources from the passed xml node \brief Restore all the resources from the passed xml node

View File

@ -50,7 +50,7 @@ History* XMLSerializerFactory::get_history()
} }
void void
XMLSerializerFactory::factory_method(const Glib::ustring& class_name, Parameters& parameters) XMLSerializerFactory::factory_method(const Glib::ustring& class_name, Parameters& parameters) throw(SerializeError)
{ {
if(class_name == "Resource") if(class_name == "Resource")
{ {

View File

@ -76,7 +76,7 @@ namespace sgpem
\throw SerializerError If not all necessary parameters for an object creation are provided \throw SerializerError If not all necessary parameters for an object creation are provided
*/ */
void factory_method(const Glib::ustring& class_name, Parameters& parameters); void factory_method(const Glib::ustring& class_name, Parameters& parameters) throw(SerializeError);
protected: protected:
private: private:
typedef Environment::resource_key_t resource_key_t; typedef Environment::resource_key_t resource_key_t;

View File

@ -44,7 +44,7 @@ XMLVisitor::~XMLVisitor()
{ {
} }
void XMLVisitor::from_resource(const Resource& obj) void XMLVisitor::from_resource(const Resource& obj) throw(SerializerError)
{ {
throw SerializerError( throw SerializerError(
_("XMLVisitor: unsupported method from_resource(const Resource& obj)") _("XMLVisitor: unsupported method from_resource(const Resource& obj)")
@ -52,42 +52,42 @@ void XMLVisitor::from_resource(const Resource& obj)
} }
void XMLVisitor::from_history(const History& obj) void XMLVisitor::from_history(const History& obj) throw(SerializerError)
{ {
from_history(_current, obj); from_history(_current, obj);
} }
void XMLVisitor::from_environment(const Environment& obj) void XMLVisitor::from_environment(const Environment& obj) throw(SerializerError)
{ {
from_environment(_current, obj); from_environment(_current, obj);
} }
void XMLVisitor::from_process(const Process& obj) void XMLVisitor::from_process(const Process& obj) throw(SerializerError)
{ {
from_process(_current, obj); from_process(_current, obj);
} }
void XMLVisitor::from_thread(const Thread& obj) void XMLVisitor::from_thread(const Thread& obj) throw(SerializerError)
{ {
from_thread(_current, obj); from_thread(_current, obj);
} }
void XMLVisitor::from_request(const Request& obj) void XMLVisitor::from_request(const Request& obj) throw(SerializerError)
{ {
from_request(_current, obj); from_request(_current, obj);
} }
void XMLVisitor::from_subrequest(const SubRequest& obj) void XMLVisitor::from_subrequest(const SubRequest& obj) throw(SerializerError)
{ {
from_subrequest(_current, obj); from_subrequest(_current, obj);
} }
void XMLVisitor::from_resource(const Resource& obj, const Glib::ustring& key) void XMLVisitor::from_resource(const Resource& obj, const Glib::ustring& key) throw(SerializerError)
{ {
from_resource(_current, obj, key); from_resource(_current, obj, key);
} }
@ -98,7 +98,7 @@ void XMLVisitor::from_resource(const Resource& obj, const Glib::ustring& key)
void XMLVisitor::from_history(xmlNodePtr parent, const History& hist) void XMLVisitor::from_history(xmlNodePtr parent, const History& hist) throw(SerializerError)
{ {
if(parent!=NULL) if(parent!=NULL)
{ {
@ -111,7 +111,7 @@ void XMLVisitor::from_history(xmlNodePtr parent, const History& hist)
} }
void XMLVisitor::from_environment(xmlNodePtr parent, const Environment& env) void XMLVisitor::from_environment(xmlNodePtr parent, const Environment& env) throw(SerializerError)
{ {
if(parent==NULL) if(parent==NULL)
{ {
@ -158,7 +158,7 @@ void XMLVisitor::from_environment(xmlNodePtr parent, const Environment& env)
} }
void XMLVisitor::from_resource(xmlNodePtr parent, const Resource& obj, const Glib::ustring& key) void XMLVisitor::from_resource(xmlNodePtr parent, const Resource& obj, const Glib::ustring& key) throw(SerializerError)
{ {
if(parent!=NULL) if(parent!=NULL)
{ {
@ -182,7 +182,7 @@ void XMLVisitor::from_resource(xmlNodePtr parent, const Resource& obj, const Gli
} }
void XMLVisitor::from_process(xmlNodePtr parent, const Process& obj) void XMLVisitor::from_process(xmlNodePtr parent, const Process& obj) throw(SerializerError)
{ {
if(parent!=NULL) if(parent!=NULL)
{ {
@ -220,7 +220,7 @@ void XMLVisitor::from_process(xmlNodePtr parent, const Process& obj)
} }
void XMLVisitor::from_thread(xmlNodePtr parent, const Thread& obj) void XMLVisitor::from_thread(xmlNodePtr parent, const Thread& obj) throw(SerializerError)
{ {
if(parent!=NULL) if(parent!=NULL)
{ {
@ -261,7 +261,7 @@ void XMLVisitor::from_thread(xmlNodePtr parent, const Thread& obj)
} }
void XMLVisitor::from_request(xmlNodePtr parent, const Request& obj) void XMLVisitor::from_request(xmlNodePtr parent, const Request& obj) throw(SerializerError)
{ {
if(parent!=NULL) if(parent!=NULL)
{ {
@ -294,7 +294,7 @@ void XMLVisitor::from_request(xmlNodePtr parent, const Request& obj)
} }
void XMLVisitor::from_subrequest(xmlNodePtr parent, const SubRequest& obj) void XMLVisitor::from_subrequest(xmlNodePtr parent, const SubRequest& obj) throw(SerializerError)
{ {
if(parent!=NULL) if(parent!=NULL)
{ {

View File

@ -69,61 +69,61 @@ namespace sgpem
\brief Add output to the serializer taking data from history \brief Add output to the serializer taking data from history
Wrapper method: call from_history(xmlNodePtr parent, const History& obj); Wrapper method: call from_history(xmlNodePtr parent, const History& obj);
*/ */
virtual void from_history(const History& obj); virtual void from_history(const History& obj) throw(SerializerError);
/** /**
\brief Add output to the serializer taking data from environment \brief Add output to the serializer taking data from environment
Wrapper method: call from_environment(xmlNodePtr parent, const Environment& obj); Wrapper method: call from_environment(xmlNodePtr parent, const Environment& obj);
*/ */
virtual void from_environment(const Environment& obj); virtual void from_environment(const Environment& obj) throw(SerializerError);
/** /**
\brief Add output to the serializer taking data from resource \brief Add output to the serializer taking data from resource
BUG: a resource must be saved with her own associated key. BUG: a resource must be saved with her own associated key.
Throw an exception. Throw an exception.
*/ */
virtual void from_resource(const Resource& obj); virtual void from_resource(const Resource& obj) throw(SerializerError);
/** /**
\brief Add output to the serializer taking data from resource and key \brief Add output to the serializer taking data from resource and key
BUG FIXED: This save a resource with her own associated key. BUG FIXED: This save a resource with her own associated key.
Wrapper method: call from_resource(xmlNodePtr parent, const Resource& obj, const Glib::ustring& key); Wrapper method: call from_resource(xmlNodePtr parent, const Resource& obj, const Glib::ustring& key);
*/ */
virtual void from_resource(const Resource& obj, const Glib::ustring& key); virtual void from_resource(const Resource& obj, const Glib::ustring& key) throw(SerializerError);
/** /**
\brief Add output to the serializer taking data from process \brief Add output to the serializer taking data from process
Wrapper method: call from_process(xmlNodePtr parent, const Process& obj); Wrapper method: call from_process(xmlNodePtr parent, const Process& obj);
*/ */
virtual void from_process(const Process& obj); virtual void from_process(const Process& obj) throw(SerializerError);
/** /**
\brief Add output to the serializer taking data from thread \brief Add output to the serializer taking data from thread
Wrapper method: call from_thread(xmlNodePtr parent, const Thread& obj); Wrapper method: call from_thread(xmlNodePtr parent, const Thread& obj);
*/ */
virtual void from_thread(const Thread& obj); virtual void from_thread(const Thread& obj) throw(SerializerError);
/** /**
\brief Add output to the serializer taking data from request \brief Add output to the serializer taking data from request
Wrapper method: call from_request(xmlNodePtr parent, const Request& obj); Wrapper method: call from_request(xmlNodePtr parent, const Request& obj);
*/ */
virtual void from_request(const Request& obj); virtual void from_request(const Request& obj) throw(SerializerError);
/** /**
\brief Add output to the serializer taking data from subrequest \brief Add output to the serializer taking data from subrequest
Wrapper method: call from_subrequest(xmlNodePtr parent, const SubRequest& obj); Wrapper method: call from_subrequest(xmlNodePtr parent, const SubRequest& obj);
*/ */
virtual void from_subrequest(const SubRequest& obj); virtual void from_subrequest(const SubRequest& obj) throw(SerializerError);
private: private:
void from_history(xmlNodePtr parent, const History& obj); void from_history(xmlNodePtr parent, const History& obj) throw(SerializerError);
void from_environment(xmlNodePtr parent, const Environment& obj); void from_environment(xmlNodePtr parent, const Environment& obj) throw(SerializerError);
void from_resource(xmlNodePtr parent, const Resource& obj, const Glib::ustring& key); void from_resource(xmlNodePtr parent, const Resource& obj, const Glib::ustring& key) throw(SerializerError);
void from_process(xmlNodePtr parent, const Process& obj); void from_process(xmlNodePtr parent, const Process& obj) throw(SerializerError);
void from_thread(xmlNodePtr parent, const Thread& obj); void from_thread(xmlNodePtr parent, const Thread& obj) throw(SerializerError);
void from_request(xmlNodePtr parent, const Request& obj); void from_request(xmlNodePtr parent, const Request& obj) throw(SerializerError);
void from_subrequest(xmlNodePtr parent, const SubRequest& obj); void from_subrequest(xmlNodePtr parent, const SubRequest& obj) throw(SerializerError);
xmlNodePtr _current; xmlNodePtr _current;
}; };

View File

@ -34,6 +34,8 @@ namespace sgpem
#include "config.h" #include "config.h"
#include "serializer_error.hh"
#include <glibmm/ustring.h> #include <glibmm/ustring.h>
namespace sgpem namespace sgpem
@ -54,45 +56,45 @@ namespace sgpem
/** /**
\brief Add output to the serializer taking data from history \brief Add output to the serializer taking data from history
*/ */
virtual void from_history(const History& obj) = 0; virtual void from_history(const History& obj) throw(SerializerError) = 0;
/** /**
\brief Add output to the serializer taking data from environment \brief Add output to the serializer taking data from environment
*/ */
virtual void from_environment(const Environment& obj) = 0; virtual void from_environment(const Environment& obj) throw(SerializerError) = 0;
/** /**
\brief Add output to the serializer taking data from resource \brief Add output to the serializer taking data from resource
BUG: a resource must be saved with her own associated key. BUG: a resource must be saved with her own associated key.
*/ */
virtual void from_resource(const Resource& obj) = 0; virtual void from_resource(const Resource& obj) throw(SerializerError) = 0;
/** /**
\brief Add output to the serializer taking data from resource and key \brief Add output to the serializer taking data from resource and key
BUG FIXED: This save a resource with her own associated key. BUG FIXED: This save a resource with her own associated key.
*/ */
virtual void from_resource(const Resource& obj, const Glib::ustring& key) = 0; virtual void from_resource(const Resource& obj, const Glib::ustring& key) throw(SerializerError) = 0;
/** /**
\brief Add output to the serializer taking data from process \brief Add output to the serializer taking data from process
*/ */
virtual void from_process(const Process& obj) = 0; virtual void from_process(const Process& obj) throw(SerializerError) = 0;
/** /**
\brief Add output to the serializer taking data from thread \brief Add output to the serializer taking data from thread
*/ */
virtual void from_thread(const Thread& obj) = 0; virtual void from_thread(const Thread& obj) throw(SerializerError) = 0;
/** /**
\brief Add output to the serializer taking data from request \brief Add output to the serializer taking data from request
*/ */
virtual void from_request(const Request& obj) = 0; virtual void from_request(const Request& obj) throw(SerializerError) = 0;
/** /**
\brief Add output to the serializer taking data from subrequest \brief Add output to the serializer taking data from subrequest
*/ */
virtual void from_subrequest(const SubRequest& obj) = 0; virtual void from_subrequest(const SubRequest& obj) throw(SerializerError) = 0;
}; };
} }

View File

@ -35,8 +35,8 @@ namespace sgpem
public: public:
virtual ~Serializer() = 0; virtual ~Serializer() = 0;
virtual void save_snapshot(const Glib::ustring& filename, const History& hist) = 0; virtual void save_snapshot(const Glib::ustring& filename, const History& hist) throw(SerializeError) = 0;
virtual void restore_snapshot(const Glib::ustring& filename, History& hist) = 0; virtual void restore_snapshot(const Glib::ustring& filename, History& hist) throw(SerializeError) = 0;
virtual const Glib::ustring get_filename_extension() = 0; virtual const Glib::ustring get_filename_extension() = 0;
virtual const Glib::ustring get_filename_description() = 0; virtual const Glib::ustring get_filename_description() = 0;
protected: protected: