From acd6329cac313df4e545bb1c982810ea88ec55d7 Mon Sep 17 00:00:00 2001 From: fgerlits Date: Sat, 16 Oct 2004 15:30:39 +0000 Subject: [PATCH] moved XML-RPC packing/unpacking functions to XmlRpcTools.cxx --- .../scheduler/doc/model/SchedulerModel.zuml | Bin 116449 -> 120331 bytes .../scheduler/src/DeletePlaylistMethod.cxx | 22 +- .../scheduler/src/DeletePlaylistMethod.h | 15 +- .../scheduler/src/DisplayPlaylistMethod.cxx | 41 +--- .../scheduler/src/DisplayPlaylistMethod.h | 31 +-- .../scheduler/src/DisplayPlaylistsMethod.cxx | 34 +-- .../scheduler/src/DisplayPlaylistsMethod.h | 16 +- .../scheduler/src/DisplayScheduleMethod.cxx | 130 +----------- .../scheduler/src/DisplayScheduleMethod.h | 68 +----- .../src/RemoveFromScheduleMethod.cxx | 33 +-- .../scheduler/src/RemoveFromScheduleMethod.h | 26 +-- .../scheduler/src/RescheduleMethod.cxx | 64 +----- .../products/scheduler/src/RescheduleMethod.h | 44 +--- .../SchedulerDaemonDisplayScheduleTest.cxx | 5 +- .../scheduler/src/UploadPlaylistMethod.cxx | 62 +----- .../scheduler/src/UploadPlaylistMethod.h | 44 +--- .../products/scheduler/src/XmlRpcTools.cxx | 196 +++++++++++++++++- .../products/scheduler/src/XmlRpcTools.h | 122 ++++++++++- 18 files changed, 385 insertions(+), 568 deletions(-) diff --git a/livesupport/products/scheduler/doc/model/SchedulerModel.zuml b/livesupport/products/scheduler/doc/model/SchedulerModel.zuml index a14396569f24b84273b7482e3f8082885f5d6bd5..24be20da036570a61adb8488e48127189e0aa390 100644 GIT binary patch literal 120331 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

`Y^sP@7Z`g}iH?92>PyhqQtUq?r8{!Uyf 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 diff --git a/livesupport/products/scheduler/src/DeletePlaylistMethod.cxx b/livesupport/products/scheduler/src/DeletePlaylistMethod.cxx index ba58b3e47..e0568fe4b 100644 --- a/livesupport/products/scheduler/src/DeletePlaylistMethod.cxx +++ b/livesupport/products/scheduler/src/DeletePlaylistMethod.cxx @@ -22,7 +22,7 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.1 $ + Version : $Revision: 1.2 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/Attic/DeletePlaylistMethod.cxx,v $ ------------------------------------------------------------------------------*/ @@ -39,6 +39,7 @@ #include "LiveSupport/Storage/StorageClientFactory.h" #include "ScheduleInterface.h" #include "ScheduleFactory.h" +#include "XmlRpcTools.h" #include "DeletePlaylistMethod.h" @@ -81,23 +82,6 @@ DeletePlaylistMethod :: DeletePlaylistMethod ( } -/*------------------------------------------------------------------------------ - * Extract the UniqueId from an XML-RPC function call parameter - *----------------------------------------------------------------------------*/ -Ptr::Ref -DeletePlaylistMethod :: extractPlaylistId( - XmlRpc::XmlRpcValue & xmlRpcValue) - throw (std::invalid_argument) -{ - if (!xmlRpcValue.hasMember(playlistIdName)) { - throw std::invalid_argument("no playlist id in parameter structure"); - } - - Ptr::Ref id(new UniqueId((int) xmlRpcValue[playlistIdName])); - return id; -} - - /*------------------------------------------------------------------------------ * Execute the XML-RPC function call. * (Overrides 'execute' in XmlRpcServerMethod.) @@ -114,7 +98,7 @@ DeletePlaylistMethod :: execute(XmlRpc::XmlRpcValue & parameters, return; } - Ptr::Ref id = extractPlaylistId(parameters[0]); + Ptr::Ref id = XmlRpcTools::extractPlaylistId(parameters[0]); Ptr::Ref scf; Ptr::Ref storage; diff --git a/livesupport/products/scheduler/src/DeletePlaylistMethod.h b/livesupport/products/scheduler/src/DeletePlaylistMethod.h index 8f5b0f5b5..1549dc0ea 100644 --- a/livesupport/products/scheduler/src/DeletePlaylistMethod.h +++ b/livesupport/products/scheduler/src/DeletePlaylistMethod.h @@ -22,7 +22,7 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.1 $ + Version : $Revision: 1.2 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/Attic/DeletePlaylistMethod.h,v $ ------------------------------------------------------------------------------*/ @@ -81,7 +81,7 @@ using namespace LiveSupport::Core; * * * @author $Author: fgerlits $ - * @version $Revision: 1.1 $ + * @version $Revision: 1.2 $ */ class DeletePlaylistMethod : public XmlRpc::XmlRpcServerMethod { @@ -98,17 +98,6 @@ class DeletePlaylistMethod : public XmlRpc::XmlRpcServerMethod */ static const std::string playlistIdName; - /** - * Extract the playlist id from the XML-RPC parameters. - * - * @param xmlRpcValue the XML-RPC parameter to extract from. - * @return a UniqueId that was found in the XML-RPC parameter. - * @exception std::invalid_argument if there was no UniqueId - * in xmlRpcValue - */ - Ptr::Ref - extractPlaylistId(XmlRpc::XmlRpcValue & xmlRpcValue) - throw (std::invalid_argument); public: /** diff --git a/livesupport/products/scheduler/src/DisplayPlaylistMethod.cxx b/livesupport/products/scheduler/src/DisplayPlaylistMethod.cxx index 6e0a6f18c..41ce2c1ff 100644 --- a/livesupport/products/scheduler/src/DisplayPlaylistMethod.cxx +++ b/livesupport/products/scheduler/src/DisplayPlaylistMethod.cxx @@ -21,8 +21,8 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Author : $Author: maroy $ - Version : $Revision: 1.1 $ + Author : $Author: fgerlits $ + Version : $Revision: 1.2 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/DisplayPlaylistMethod.cxx,v $ ------------------------------------------------------------------------------*/ @@ -46,6 +46,8 @@ #include "LiveSupport/Storage/StorageClientFactory.h" #include "ScheduleInterface.h" #include "ScheduleFactory.h" +#include "XmlRpcTools.h" + #include "DisplayPlaylistMethod.h" @@ -90,37 +92,6 @@ DisplayPlaylistMethod :: DisplayPlaylistMethod ( } -/*------------------------------------------------------------------------------ - * Extract the UniqueId from an XML-RPC function call parameter - *----------------------------------------------------------------------------*/ -Ptr::Ref -DisplayPlaylistMethod :: extractPlaylistId( - XmlRpc::XmlRpcValue & xmlRpcValue) - throw (std::invalid_argument) -{ - if (!xmlRpcValue.hasMember(playlistIdName)) { - throw std::invalid_argument("no playlist id in parameter structure"); - } - - Ptr::Ref id(new UniqueId((int) xmlRpcValue[playlistIdName])); - return id; -} - - -/*------------------------------------------------------------------------------ - * Convert a Playlist to an XmlRpcValue - *----------------------------------------------------------------------------*/ -void -DisplayPlaylistMethod :: playlistToXmlRpcValue( - Ptr::Ref playlist, - XmlRpc::XmlRpcValue & xmlRpcValue) - throw () -{ - xmlRpcValue["id"] = (int) (playlist->getId()->getId()); - xmlRpcValue["playlength"] = playlist->getPlaylength()->total_seconds(); -} - - /*------------------------------------------------------------------------------ * Execute the stop XML-RPC function call. *----------------------------------------------------------------------------*/ @@ -136,7 +107,7 @@ DisplayPlaylistMethod :: execute(XmlRpc::XmlRpcValue & parameters, return; } - Ptr::Ref id = extractPlaylistId(parameters[0]); + Ptr::Ref id = XmlRpcTools::extractPlaylistId(parameters[0]); Ptr::Ref scf; Ptr::Ref storage; @@ -152,7 +123,7 @@ DisplayPlaylistMethod :: execute(XmlRpc::XmlRpcValue & parameters, Ptr::Ref playlist = storage->getPlaylist(id); - playlistToXmlRpcValue(playlist, returnValue); + XmlRpcTools::playlistToXmlRpcValue(playlist, returnValue); } catch (std::invalid_argument &e) { // TODO: mark error diff --git a/livesupport/products/scheduler/src/DisplayPlaylistMethod.h b/livesupport/products/scheduler/src/DisplayPlaylistMethod.h index 03aa65779..fbacbc2b9 100644 --- a/livesupport/products/scheduler/src/DisplayPlaylistMethod.h +++ b/livesupport/products/scheduler/src/DisplayPlaylistMethod.h @@ -21,8 +21,8 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Author : $Author: maroy $ - Version : $Revision: 1.1 $ + Author : $Author: fgerlits $ + Version : $Revision: 1.2 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/DisplayPlaylistMethod.h,v $ ------------------------------------------------------------------------------*/ @@ -83,8 +83,8 @@ using namespace LiveSupport::Core; * * In case of an error, a simple false value is returned. * - * @author $Author: maroy $ - * @version $Revision: 1.1 $ + * @author $Author: fgerlits $ + * @version $Revision: 1.2 $ */ class DisplayPlaylistMethod : public XmlRpc::XmlRpcServerMethod { @@ -101,29 +101,6 @@ class DisplayPlaylistMethod : public XmlRpc::XmlRpcServerMethod */ static const std::string playlistIdName; - /** - * Extract the playlist id from the XML-RPC parameters. - * - * @param xmlRpcValue the XML-RPC parameter to extract from. - * @return a UniqueId that was found in the XML-RPC parameter. - * @exception std::invalid_argument if there was no UniqueId - * in xmlRpcValue - */ - Ptr::Ref - extractPlaylistId(XmlRpc::XmlRpcValue & xmlRpcValue) - throw (std::invalid_argument); - - /** - * Convert a Playlist to an XmlRpcValue - * - * @param playlist the Playlist to convert. - * @param xmlRpcValue the output parameter holding the value of - * the conversion. - */ - static void - playlistToXmlRpcValue(Ptr::Ref playlist, - XmlRpc::XmlRpcValue & xmlRpcValue) - throw (); public: /** diff --git a/livesupport/products/scheduler/src/DisplayPlaylistsMethod.cxx b/livesupport/products/scheduler/src/DisplayPlaylistsMethod.cxx index 52d570353..8164ab6f3 100644 --- a/livesupport/products/scheduler/src/DisplayPlaylistsMethod.cxx +++ b/livesupport/products/scheduler/src/DisplayPlaylistsMethod.cxx @@ -22,7 +22,7 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.1 $ + Version : $Revision: 1.2 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/DisplayPlaylistsMethod.cxx,v $ ------------------------------------------------------------------------------*/ @@ -38,6 +38,8 @@ #include "LiveSupport/Core/StorageClientInterface.h" #include "LiveSupport/Storage/StorageClientFactory.h" +#include "XmlRpcTools.h" + #include "DisplayPlaylistsMethod.h" using namespace boost; @@ -75,34 +77,6 @@ DisplayPlaylistsMethod :: DisplayPlaylistsMethod ( } -/*------------------------------------------------------------------------------ - * Convert a vector of Playlists into an XML-RPC value. - * This function returns an XML-RPC array of XML-RPC structures. - *----------------------------------------------------------------------------*/ -void -DisplayPlaylistsMethod :: playlistVectorToXmlRpcValue( - const Ptr::Ref> >::Ref playlistVector, - XmlRpc::XmlRpcValue & returnValue) - throw () -{ - returnValue.setSize(playlistVector->size()); - // a call to setSize() makes sure it's an XML-RPC - // array - - std::vector::Ref>::const_iterator it = - playlistVector->begin(); - int arraySize = 0; - while (it != playlistVector->end()) { - Ptr::Ref playlist = *it; - XmlRpc::XmlRpcValue returnStruct; - returnStruct["id"] = (int) (playlist->getId()->getId()); - returnStruct["playlength"] = playlist->getPlaylength()->total_seconds(); - returnValue[arraySize++] = returnStruct; - ++it; - } -} - - /*------------------------------------------------------------------------------ * Execute the stop XML-RPC function call. *----------------------------------------------------------------------------*/ @@ -120,6 +94,6 @@ DisplayPlaylistsMethod :: execute(XmlRpc::XmlRpcValue & parameters, Ptr::Ref> >::Ref playlistVector = storage->getAllPlaylists(); - playlistVectorToXmlRpcValue(playlistVector, returnValue); + XmlRpcTools::playlistVectorToXmlRpcValue(playlistVector, returnValue); } diff --git a/livesupport/products/scheduler/src/DisplayPlaylistsMethod.h b/livesupport/products/scheduler/src/DisplayPlaylistsMethod.h index e2b3f4641..100c3ec9b 100644 --- a/livesupport/products/scheduler/src/DisplayPlaylistsMethod.h +++ b/livesupport/products/scheduler/src/DisplayPlaylistsMethod.h @@ -22,7 +22,7 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.2 $ + Version : $Revision: 1.3 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/DisplayPlaylistsMethod.h,v $ ------------------------------------------------------------------------------*/ @@ -83,7 +83,7 @@ using namespace LiveSupport::Core; * * * @author $Author: fgerlits $ - * @version $Revision: 1.2 $ + * @version $Revision: 1.3 $ */ class DisplayPlaylistsMethod : public XmlRpc::XmlRpcServerMethod { @@ -94,18 +94,6 @@ class DisplayPlaylistsMethod : public XmlRpc::XmlRpcServerMethod */ static const std::string methodName; - /** - * Convert a vector of Playlists to an XML-RPC return value. - * - * @param playlistVector a list of Playlists. - * @param returnValue the output parameter holding an XML-RPC - * representation of the list of Playlists. - */ - void - playlistVectorToXmlRpcValue( - const Ptr::Ref> >::Ref playlistVector, - XmlRpc::XmlRpcValue & returnValue) - throw (); public: /** diff --git a/livesupport/products/scheduler/src/DisplayScheduleMethod.cxx b/livesupport/products/scheduler/src/DisplayScheduleMethod.cxx index 270743730..38fa67046 100644 --- a/livesupport/products/scheduler/src/DisplayScheduleMethod.cxx +++ b/livesupport/products/scheduler/src/DisplayScheduleMethod.cxx @@ -21,8 +21,8 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Author : $Author: maroy $ - Version : $Revision: 1.1 $ + Author : $Author: fgerlits $ + Version : $Revision: 1.2 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/DisplayScheduleMethod.cxx,v $ ------------------------------------------------------------------------------*/ @@ -44,6 +44,8 @@ #include "ScheduleInterface.h" #include "ScheduleFactory.h" +#include "XmlRpcTools.h" + #include "DisplayScheduleMethod.h" @@ -65,18 +67,6 @@ using namespace LiveSupport::Scheduler; *----------------------------------------------------------------------------*/ const std::string DisplayScheduleMethod::methodName = "displaySchedule"; -/*------------------------------------------------------------------------------ - * The name of the from member in the XML-RPC parameter - * structure. - *----------------------------------------------------------------------------*/ -const std::string DisplayScheduleMethod::fromName = "from"; - -/*------------------------------------------------------------------------------ - * The name of the to member in the XML-RPC parameter - * structure. - *----------------------------------------------------------------------------*/ -const std::string DisplayScheduleMethod::toName = "to"; - /* =============================================== local function prototypes */ @@ -93,109 +83,6 @@ DisplayScheduleMethod :: DisplayScheduleMethod ( } -/*------------------------------------------------------------------------------ - * Extract the from time from an XML-RPC function call parameter - *----------------------------------------------------------------------------*/ -Ptr::Ref -DisplayScheduleMethod :: extractFrom( - XmlRpc::XmlRpcValue & xmlRpcValue) - throw (std::invalid_argument) -{ - if (!xmlRpcValue.hasMember(fromName)) { - throw std::invalid_argument("no from part in parameter structure"); - } - - struct tm tm = (struct tm) xmlRpcValue[fromName]; - gregorian::date date(tm.tm_year, tm.tm_mon, tm.tm_mday); - time_duration hours(tm.tm_hour, tm.tm_min, tm.tm_sec); - Ptr::Ref ptime(new ptime(date, hours)); - - return ptime; -} - - -/*------------------------------------------------------------------------------ - * Extract the to time from an XML-RPC function call parameter - *----------------------------------------------------------------------------*/ -Ptr::Ref -DisplayScheduleMethod :: extractTo( - XmlRpc::XmlRpcValue & xmlRpcValue) - throw (std::invalid_argument) -{ - if (!xmlRpcValue.hasMember(toName)) { - throw std::invalid_argument("no to part in parameter structure"); - } - - struct tm tm = (struct tm) xmlRpcValue[toName]; - gregorian::date date(tm.tm_year, tm.tm_mon, tm.tm_mday); - time_duration hours(tm.tm_hour, tm.tm_min, tm.tm_sec); - Ptr::Ref ptime(new ptime(date, hours)); - - return ptime; -} - - -/*------------------------------------------------------------------------------ - * Convert a boost::posix_time::ptime to an XmlRpcValue - *----------------------------------------------------------------------------*/ -void -DisplayScheduleMethod :: ptimeToXmlRpcValue( - Ptr::Ref ptime, - XmlRpc::XmlRpcValue & xmlRpcValue) - throw () -{ - gregorian::date date = ptime->date(); - posix_time::time_duration hours = ptime->time_of_day(); - struct tm time; - - time.tm_year = date.year(); - time.tm_mon = date.month(); - time.tm_mday = date.day(); - time.tm_hour = hours.hours(); - time.tm_min = hours.minutes(); - time.tm_sec = hours.seconds(); - // TODO: set tm_wday, tm_yday and tm_isdst fields as well - - xmlRpcValue = XmlRpc::XmlRpcValue(&time); -} - - -/*------------------------------------------------------------------------------ - * Convert a vector of ScheduleEntries into an XML-RPC value. - * This function returns an XML-RPC array of XML-RPC structures. - *----------------------------------------------------------------------------*/ -void -DisplayScheduleMethod :: scheduleEntriesToXmlRpcValue( - Ptr::Ref> >::Ref scheduleEntries, - XmlRpc::XmlRpcValue & returnValue) - throw () -{ - returnValue.setSize(scheduleEntries->size()); - // a call to setSize() makes sure it's an XML-RPC - // array - - std::vector::Ref>::iterator it - = scheduleEntries->begin(); - int arraySize = 0; - while (it != scheduleEntries->end()) { - Ptr::Ref entry = *it; - XmlRpc::XmlRpcValue returnStruct; - returnStruct["id"] = (int) (entry->getId()->getId()); - returnStruct["playlistId"] = (int) (entry->getPlaylistId()->getId()); - - XmlRpc::XmlRpcValue time; - ptimeToXmlRpcValue(entry->getStartTime(), time); - returnStruct["start"] = time; - - ptimeToXmlRpcValue(entry->getEndTime(), time); - returnStruct["end"] = time; - - returnValue[arraySize++] = returnStruct; - ++it; - } -} - - /*------------------------------------------------------------------------------ * Execute the stop XML-RPC function call. *----------------------------------------------------------------------------*/ @@ -211,8 +98,10 @@ DisplayScheduleMethod :: execute(XmlRpc::XmlRpcValue & parameters, return; } - Ptr::Ref fromTime = extractFrom(parameters[0]); - Ptr::Ref toTime = extractTo(parameters[0]); + Ptr::Ref fromTime + = XmlRpcTools::extractFromTime(parameters[0]); + Ptr::Ref toTime + = XmlRpcTools::extractToTime(parameters[0]); Ptr::Ref sf = ScheduleFactory::getInstance(); Ptr::Ref schedule = sf->getSchedule(); @@ -220,7 +109,8 @@ DisplayScheduleMethod :: execute(XmlRpc::XmlRpcValue & parameters, Ptr::Ref> >::Ref scheduleEntries = schedule->getScheduleEntries(fromTime, toTime); - scheduleEntriesToXmlRpcValue(scheduleEntries, returnValue); + XmlRpcTools::scheduleEntriesToXmlRpcValue(scheduleEntries, + returnValue); } catch (std::invalid_argument &e) { // TODO: mark error diff --git a/livesupport/products/scheduler/src/DisplayScheduleMethod.h b/livesupport/products/scheduler/src/DisplayScheduleMethod.h index e749532d2..e24769cf9 100644 --- a/livesupport/products/scheduler/src/DisplayScheduleMethod.h +++ b/livesupport/products/scheduler/src/DisplayScheduleMethod.h @@ -21,8 +21,8 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Author : $Author: maroy $ - Version : $Revision: 1.1 $ + Author : $Author: fgerlits $ + Version : $Revision: 1.2 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/DisplayScheduleMethod.h,v $ ------------------------------------------------------------------------------*/ @@ -92,8 +92,8 @@ using namespace LiveSupport::Core; *

  • end - datetime - the end of the scheduled item
  • * * - * @author $Author: maroy $ - * @version $Revision: 1.1 $ + * @author $Author: fgerlits $ + * @version $Revision: 1.2 $ */ class DisplayScheduleMethod : public XmlRpc::XmlRpcServerMethod { @@ -104,66 +104,6 @@ class DisplayScheduleMethod : public XmlRpc::XmlRpcServerMethod */ static const std::string methodName; - /** - * The name of the from member in the XML-RPC parameter - * structure. - */ - static const std::string fromName; - - /** - * The name of the to member in the XML-RPC parameter - * structure. - */ - static const std::string toName; - - /** - * Extract the from time parameter from the XML-RPC parameters. - * - * @param xmlRpcValue the XML-RPC parameter to extract from. - * @return the time value for the from parameter - * @exception std::invalid_argument if there was no from parameter - * in xmlRpcValue - */ - Ptr::Ref - extractFrom(XmlRpc::XmlRpcValue & xmlRpcValue) - throw (std::invalid_argument); - - /** - * Extract the to parameter from the XML-RPC parameters. - * - * @param xmlRpcValue the XML-RPC parameter to extract from. - * @return the time value for the to parameter - * @exception std::invalid_argument if there was no to parameter - * in xmlRpcValue - */ - Ptr::Ref - extractTo(XmlRpc::XmlRpcValue & xmlRpcValue) - throw (std::invalid_argument); - - /** - * Convert a boost::posix_time::ptime to an XmlRpcValue - * - * @param ptime the ptime to convert - * @param xmlRpcValue the output parameter holding the value of - * the conversion. - */ - static void - ptimeToXmlRpcValue(Ptr::Ref ptime, - XmlRpc::XmlRpcValue & xmlRpcValue) - throw (); - - /** - * Convert a vector of ScheduleEntries to an XML-RPC return value. - * - * @param scheduleEntries a list of ScheduleEntries. - * @param returnValue the output parameter holding an XML-RPC - * representation of the suppied schedule entires. - */ - void - scheduleEntriesToXmlRpcValue( - Ptr::Ref> >::Ref scheduleEntries, - XmlRpc::XmlRpcValue & returnValue) - throw (); public: /** diff --git a/livesupport/products/scheduler/src/RemoveFromScheduleMethod.cxx b/livesupport/products/scheduler/src/RemoveFromScheduleMethod.cxx index e87e6a7c6..a18a4e392 100644 --- a/livesupport/products/scheduler/src/RemoveFromScheduleMethod.cxx +++ b/livesupport/products/scheduler/src/RemoveFromScheduleMethod.cxx @@ -21,8 +21,8 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Author : $Author: maroy $ - Version : $Revision: 1.1 $ + Author : $Author: fgerlits $ + Version : $Revision: 1.2 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/RemoveFromScheduleMethod.cxx,v $ ------------------------------------------------------------------------------*/ @@ -44,6 +44,8 @@ #include "ScheduleInterface.h" #include "ScheduleFactory.h" +#include "XmlRpcTools.h" + #include "RemoveFromScheduleMethod.h" @@ -62,13 +64,6 @@ using namespace LiveSupport::Scheduler; *----------------------------------------------------------------------------*/ const std::string RemoveFromScheduleMethod::methodName = "removeFromSchedule"; -/*------------------------------------------------------------------------------ - * The name of the playlist id member in the XML-RPC parameter - * structure. - *----------------------------------------------------------------------------*/ -const std::string RemoveFromScheduleMethod::scheduleEntryIdName = - "scheduleEntryId"; - /* =============================================== local function prototypes */ @@ -85,23 +80,6 @@ RemoveFromScheduleMethod :: RemoveFromScheduleMethod ( } -/*------------------------------------------------------------------------------ - * Extract the UniqueId from an XML-RPC function call parameter - *----------------------------------------------------------------------------*/ -Ptr::Ref -RemoveFromScheduleMethod :: extractScheduleEntryId( - XmlRpc::XmlRpcValue & xmlRpcValue) - throw (std::invalid_argument) -{ - if (!xmlRpcValue.hasMember(scheduleEntryIdName)) { - throw std::invalid_argument("no playlist id in parameter structure"); - } - - Ptr::Ref id(new UniqueId((int) xmlRpcValue[scheduleEntryIdName])); - return id; -} - - /*------------------------------------------------------------------------------ * Execute the remove from schedule XML-RPC function call. *----------------------------------------------------------------------------*/ @@ -117,7 +95,8 @@ RemoveFromScheduleMethod :: execute(XmlRpc::XmlRpcValue & parameters, return; } - Ptr::Ref entryId = extractScheduleEntryId(parameters[0]); + Ptr::Ref entryId + = XmlRpcTools::extractScheduleEntryId(parameters[0]); Ptr::Ref sf = ScheduleFactory::getInstance(); Ptr::Ref schedule = sf->getSchedule(); diff --git a/livesupport/products/scheduler/src/RemoveFromScheduleMethod.h b/livesupport/products/scheduler/src/RemoveFromScheduleMethod.h index 81b80ed41..77765e49c 100644 --- a/livesupport/products/scheduler/src/RemoveFromScheduleMethod.h +++ b/livesupport/products/scheduler/src/RemoveFromScheduleMethod.h @@ -21,8 +21,8 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Author : $Author: maroy $ - Version : $Revision: 1.1 $ + Author : $Author: fgerlits $ + Version : $Revision: 1.2 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/RemoveFromScheduleMethod.h,v $ ------------------------------------------------------------------------------*/ @@ -74,8 +74,8 @@ using namespace LiveSupport::Core; *
  • scheduleEntryId - int - the id of the scheduled entry to remove
  • * * - * @author $Author: maroy $ - * @version $Revision: 1.1 $ + * @author $Author: fgerlits $ + * @version $Revision: 1.2 $ */ class RemoveFromScheduleMethod : public XmlRpc::XmlRpcServerMethod { @@ -86,24 +86,6 @@ class RemoveFromScheduleMethod : public XmlRpc::XmlRpcServerMethod */ static const std::string methodName; - /** - * The name of the entry id member in the XML-RPC parameter - * structure. - */ - static const std::string scheduleEntryIdName; - - /** - * Extract the schedule entry id from the XML-RPC parameters. - * - * @param xmlRpcValue the XML-RPC parameter to extract from. - * @return a UniqueId that was found in the XML-RPC parameter. - * @exception std::invalid_argument if there was no UniqueId - * in xmlRpcValue - */ - Ptr::Ref - extractScheduleEntryId(XmlRpc::XmlRpcValue & xmlRpcValue) - throw (std::invalid_argument); - public: /** diff --git a/livesupport/products/scheduler/src/RescheduleMethod.cxx b/livesupport/products/scheduler/src/RescheduleMethod.cxx index 784f37759..1c066f6b9 100644 --- a/livesupport/products/scheduler/src/RescheduleMethod.cxx +++ b/livesupport/products/scheduler/src/RescheduleMethod.cxx @@ -21,8 +21,8 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Author : $Author: maroy $ - Version : $Revision: 1.1 $ + Author : $Author: fgerlits $ + Version : $Revision: 1.2 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/RescheduleMethod.cxx,v $ ------------------------------------------------------------------------------*/ @@ -44,6 +44,8 @@ #include "ScheduleInterface.h" #include "ScheduleFactory.h" +#include "XmlRpcTools.h" + #include "RescheduleMethod.h" @@ -65,19 +67,6 @@ using namespace LiveSupport::Scheduler; *----------------------------------------------------------------------------*/ const std::string RescheduleMethod::methodName = "reschedule"; -/*------------------------------------------------------------------------------ - * The name of the playlist id member in the XML-RPC parameter - * structure. - *----------------------------------------------------------------------------*/ -const std::string RescheduleMethod::scheduleEntryIdName = - "scheduleEntryId"; - -/*------------------------------------------------------------------------------ - * The name of the playtime member in the XML-RPC parameter - * structure. - *----------------------------------------------------------------------------*/ -const std::string RescheduleMethod::playtimeName = "playtime"; - /* =============================================== local function prototypes */ @@ -94,44 +83,6 @@ RescheduleMethod :: RescheduleMethod ( } -/*------------------------------------------------------------------------------ - * Extract the UniqueId from an XML-RPC function call parameter - *----------------------------------------------------------------------------*/ -Ptr::Ref -RescheduleMethod :: extractScheduleEntryId( - XmlRpc::XmlRpcValue & xmlRpcValue) - throw (std::invalid_argument) -{ - if (!xmlRpcValue.hasMember(scheduleEntryIdName)) { - throw std::invalid_argument("no playlist id in parameter structure"); - } - - Ptr::Ref id(new UniqueId((int) xmlRpcValue[scheduleEntryIdName])); - return id; -} - - -/*------------------------------------------------------------------------------ - * Extract the playtime from an XML-RPC function call parameter - *----------------------------------------------------------------------------*/ -Ptr::Ref -RescheduleMethod :: extractPlayschedule( - XmlRpc::XmlRpcValue & xmlRpcValue) - throw (std::invalid_argument) -{ - if (!xmlRpcValue.hasMember(playtimeName)) { - throw std::invalid_argument("no playtime in parameter structure"); - } - - struct tm tm = (struct tm) xmlRpcValue[playtimeName]; - gregorian::date date(tm.tm_year, tm.tm_mon, tm.tm_mday); - time_duration hours(tm.tm_hour, tm.tm_min, tm.tm_sec); - Ptr::Ref ptime(new ptime(date, hours)); - - return ptime; -} - - /*------------------------------------------------------------------------------ * Execute the upload playlist method XML-RPC function call. *----------------------------------------------------------------------------*/ @@ -147,8 +98,10 @@ RescheduleMethod :: execute(XmlRpc::XmlRpcValue & parameters, return; } - Ptr::Ref entryId = extractScheduleEntryId(parameters[0]); - Ptr::Ref playschedule = extractPlayschedule(parameters[0]); + Ptr::Ref entryId + = XmlRpcTools::extractScheduleEntryId(parameters[0]); + Ptr::Ref playschedule + = XmlRpcTools::extractPlayschedule(parameters[0]); Ptr::Ref scheduleEntryId; Ptr::Ref sf = ScheduleFactory::getInstance(); @@ -168,7 +121,6 @@ RescheduleMethod :: execute(XmlRpc::XmlRpcValue & parameters, return; } - returnValue = XmlRpc::XmlRpcValue(true); } diff --git a/livesupport/products/scheduler/src/RescheduleMethod.h b/livesupport/products/scheduler/src/RescheduleMethod.h index adf6f4f85..bb6e96de3 100644 --- a/livesupport/products/scheduler/src/RescheduleMethod.h +++ b/livesupport/products/scheduler/src/RescheduleMethod.h @@ -21,8 +21,8 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Author : $Author: maroy $ - Version : $Revision: 1.1 $ + Author : $Author: fgerlits $ + Version : $Revision: 1.2 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/RescheduleMethod.h,v $ ------------------------------------------------------------------------------*/ @@ -78,8 +78,8 @@ using namespace LiveSupport::Core; * The return value is true if all went well, * or a boolean false, if there were errors. * - * @author $Author: maroy $ - * @version $Revision: 1.1 $ + * @author $Author: fgerlits $ + * @version $Revision: 1.2 $ */ class RescheduleMethod : public XmlRpc::XmlRpcServerMethod { @@ -90,42 +90,6 @@ class RescheduleMethod : public XmlRpc::XmlRpcServerMethod */ static const std::string methodName; - /** - * The name of the scheduled entry id member in the XML-RPC parameter - * structure. - */ - static const std::string scheduleEntryIdName; - - /** - * The name of the playtime member in the XML-RPC parameter - * structure. - */ - static const std::string playtimeName; - - /** - * Extract the schedule entry id from the XML-RPC parameters. - * - * @param xmlRpcValue the XML-RPC parameter to extract from. - * @return a UniqueId that was found in the XML-RPC parameter. - * @exception std::invalid_argument if there was no UniqueId - * in xmlRpcValue - */ - Ptr::Ref - extractScheduleEntryId(XmlRpc::XmlRpcValue & xmlRpcValue) - throw (std::invalid_argument); - - /** - * Extract the playtime from the XML-RPC parameters. - * - * @param xmlRpcValue the XML-RPC parameter to extract from. - * @return the playing time, as stored in the XML-RPC parameter - * @exception std::invalid_argument if there was no playtime - * in xmlRpcValue - */ - Ptr::Ref - extractPlayschedule(XmlRpc::XmlRpcValue & xmlRpcValue) - throw (std::invalid_argument); - public: /** diff --git a/livesupport/products/scheduler/src/SchedulerDaemonDisplayScheduleTest.cxx b/livesupport/products/scheduler/src/SchedulerDaemonDisplayScheduleTest.cxx index 46ea5b08d..b74f8a28a 100644 --- a/livesupport/products/scheduler/src/SchedulerDaemonDisplayScheduleTest.cxx +++ b/livesupport/products/scheduler/src/SchedulerDaemonDisplayScheduleTest.cxx @@ -21,8 +21,8 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Author : $Author: maroy $ - Version : $Revision: 1.1 $ + Author : $Author: fgerlits $ + Version : $Revision: 1.2 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/Attic/SchedulerDaemonDisplayScheduleTest.cxx,v $ ------------------------------------------------------------------------------*/ @@ -140,7 +140,6 @@ SchedulerDaemonDisplayScheduleTest :: simpleTest(void) time.tm_min = 0; time.tm_sec = 0; parameters["to"] = &time; - xmlRpcClient.execute("displaySchedule", parameters, result); CPPUNIT_ASSERT(result.valid()); CPPUNIT_ASSERT(result.size() == 0); diff --git a/livesupport/products/scheduler/src/UploadPlaylistMethod.cxx b/livesupport/products/scheduler/src/UploadPlaylistMethod.cxx index 5f50bfa13..d8899c60c 100644 --- a/livesupport/products/scheduler/src/UploadPlaylistMethod.cxx +++ b/livesupport/products/scheduler/src/UploadPlaylistMethod.cxx @@ -21,8 +21,8 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Author : $Author: maroy $ - Version : $Revision: 1.4 $ + Author : $Author: fgerlits $ + Version : $Revision: 1.5 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/UploadPlaylistMethod.cxx,v $ ------------------------------------------------------------------------------*/ @@ -46,6 +46,8 @@ #include "LiveSupport/Storage/StorageClientFactory.h" #include "ScheduleInterface.h" #include "ScheduleFactory.h" +#include "XmlRpcTools.h" + #include "UploadPlaylistMethod.h" @@ -68,18 +70,6 @@ using namespace LiveSupport::Scheduler; *----------------------------------------------------------------------------*/ const std::string UploadPlaylistMethod::methodName = "uploadPlaylist"; -/*------------------------------------------------------------------------------ - * The name of the playlist id member in the XML-RPC parameter - * structure. - *----------------------------------------------------------------------------*/ -const std::string UploadPlaylistMethod::playlistIdName = "playlistId"; - -/*------------------------------------------------------------------------------ - * The name of the playtime member in the XML-RPC parameter - * structure. - *----------------------------------------------------------------------------*/ -const std::string UploadPlaylistMethod::playtimeName = "playtime"; - /* =============================================== local function prototypes */ @@ -96,44 +86,6 @@ UploadPlaylistMethod :: UploadPlaylistMethod ( } -/*------------------------------------------------------------------------------ - * Extract the UniqueId from an XML-RPC function call parameter - *----------------------------------------------------------------------------*/ -Ptr::Ref -UploadPlaylistMethod :: extractPlaylistId( - XmlRpc::XmlRpcValue & xmlRpcValue) - throw (std::invalid_argument) -{ - if (!xmlRpcValue.hasMember(playlistIdName)) { - throw std::invalid_argument("no playlist id in parameter structure"); - } - - Ptr::Ref id(new UniqueId((int) xmlRpcValue[playlistIdName])); - return id; -} - - -/*------------------------------------------------------------------------------ - * Extract the playtime from an XML-RPC function call parameter - *----------------------------------------------------------------------------*/ -Ptr::Ref -UploadPlaylistMethod :: extractPlayschedule( - XmlRpc::XmlRpcValue & xmlRpcValue) - throw (std::invalid_argument) -{ - if (!xmlRpcValue.hasMember(playtimeName)) { - throw std::invalid_argument("no playtime in parameter structure"); - } - - struct tm tm = (struct tm) xmlRpcValue[playtimeName]; - gregorian::date date(tm.tm_year, tm.tm_mon, tm.tm_mday); - time_duration hours(tm.tm_hour, tm.tm_min, tm.tm_sec); - Ptr::Ref ptime(new ptime(date, hours)); - - return ptime; -} - - /*------------------------------------------------------------------------------ * Execute the upload playlist method XML-RPC function call. *----------------------------------------------------------------------------*/ @@ -149,8 +101,10 @@ UploadPlaylistMethod :: execute(XmlRpc::XmlRpcValue & parameters, return; } - Ptr::Ref id = extractPlaylistId(parameters[0]); - Ptr::Ref playschedule = extractPlayschedule(parameters[0]); + Ptr::Ref id + = XmlRpcTools::extractPlaylistId(parameters[0]); + Ptr::Ref playschedule + = XmlRpcTools::extractPlayschedule(parameters[0]); Ptr::Ref scheduleEntryId; Ptr::Ref scf; diff --git a/livesupport/products/scheduler/src/UploadPlaylistMethod.h b/livesupport/products/scheduler/src/UploadPlaylistMethod.h index e831277b9..ef79d2921 100644 --- a/livesupport/products/scheduler/src/UploadPlaylistMethod.h +++ b/livesupport/products/scheduler/src/UploadPlaylistMethod.h @@ -21,8 +21,8 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Author : $Author: maroy $ - Version : $Revision: 1.4 $ + Author : $Author: fgerlits $ + Version : $Revision: 1.5 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/UploadPlaylistMethod.h,v $ ------------------------------------------------------------------------------*/ @@ -79,8 +79,8 @@ using namespace LiveSupport::Core; * The return value is an int, the id of the schedule entry created * by uploading, or a boolean false, if there were errors. * - * @author $Author: maroy $ - * @version $Revision: 1.4 $ + * @author $Author: fgerlits $ + * @version $Revision: 1.5 $ */ class UploadPlaylistMethod : public XmlRpc::XmlRpcServerMethod { @@ -91,42 +91,6 @@ class UploadPlaylistMethod : public XmlRpc::XmlRpcServerMethod */ static const std::string methodName; - /** - * The name of the playlist id member in the XML-RPC parameter - * structure. - */ - static const std::string playlistIdName; - - /** - * The name of the playtime member in the XML-RPC parameter - * structure. - */ - static const std::string playtimeName; - - /** - * Extract the playlist id from the XML-RPC parameters. - * - * @param xmlRpcValue the XML-RPC parameter to extract from. - * @return a UniqueId that was found in the XML-RPC parameter. - * @exception std::invalid_argument if there was no UniqueId - * in xmlRpcValue - */ - Ptr::Ref - extractPlaylistId(XmlRpc::XmlRpcValue & xmlRpcValue) - throw (std::invalid_argument); - - /** - * Extract the playtime from the XML-RPC parameters. - * - * @param xmlRpcValue the XML-RPC parameter to extract from. - * @return the playing time, as stored in the XML-RPC parameter - * @exception std::invalid_argument if there was no playtime - * in xmlRpcValue - */ - Ptr::Ref - extractPlayschedule(XmlRpc::XmlRpcValue & xmlRpcValue) - throw (std::invalid_argument); - public: /** diff --git a/livesupport/products/scheduler/src/XmlRpcTools.cxx b/livesupport/products/scheduler/src/XmlRpcTools.cxx index 45873ea78..1dad6ef45 100644 --- a/livesupport/products/scheduler/src/XmlRpcTools.cxx +++ b/livesupport/products/scheduler/src/XmlRpcTools.cxx @@ -22,7 +22,7 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.4 $ + Version : $Revision: 1.5 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/Attic/XmlRpcTools.cxx,v $ ------------------------------------------------------------------------------*/ @@ -70,6 +70,31 @@ const std::string XmlRpcTools::audioClipIdName = "audioClipId"; *----------------------------------------------------------------------------*/ const std::string XmlRpcTools::relativeOffsetName = "relativeOffset"; +/*------------------------------------------------------------------------------ + * The name of the from member in the XML-RPC parameter + * structure. + *----------------------------------------------------------------------------*/ +const std::string XmlRpcTools::fromTimeName = "from"; + +/*------------------------------------------------------------------------------ + * The name of the to member in the XML-RPC parameter + * structure. + *----------------------------------------------------------------------------*/ +const std::string XmlRpcTools::toTimeName = "to"; + +/*------------------------------------------------------------------------------ + * The name of the playlist id member in the XML-RPC parameter + * structure. + *----------------------------------------------------------------------------*/ +const std::string XmlRpcTools::scheduleEntryIdName = + "scheduleEntryId"; + +/*------------------------------------------------------------------------------ + * The name of the playtime member in the XML-RPC parameter + * structure. + *----------------------------------------------------------------------------*/ +const std::string XmlRpcTools::playtimeName = "playtime"; + /* ================================================ local constants & macros */ @@ -79,6 +104,23 @@ const std::string XmlRpcTools::relativeOffsetName = "relativeOffset"; /* ============================================================= module code */ +/*------------------------------------------------------------------------------ + * Extract the schedule entry ID from an XML-RPC function call parameter + *----------------------------------------------------------------------------*/ +Ptr::Ref +XmlRpcTools :: extractScheduleEntryId( + XmlRpc::XmlRpcValue & xmlRpcValue) + throw (std::invalid_argument) +{ + if (!xmlRpcValue.hasMember(scheduleEntryIdName)) { + throw std::invalid_argument("missing schedule entry ID argument"); + } + + Ptr::Ref id(new UniqueId((int) xmlRpcValue[scheduleEntryIdName])); + return id; +} + + /*------------------------------------------------------------------------------ * Extract the playlist ID from an XML-RPC function call parameter *----------------------------------------------------------------------------*/ @@ -142,6 +184,34 @@ XmlRpcTools :: playlistToXmlRpcValue( } +/*------------------------------------------------------------------------------ + * Convert a vector of Playlists into an XML-RPC value. + * This function returns an XML-RPC array of XML-RPC structures. + *----------------------------------------------------------------------------*/ +void +XmlRpcTools :: playlistVectorToXmlRpcValue( + const Ptr::Ref> >::Ref playlistVector, + XmlRpc::XmlRpcValue & returnValue) + throw () +{ + returnValue.setSize(playlistVector->size()); + // a call to setSize() makes sure it's an XML-RPC + // array + + std::vector::Ref>::const_iterator it = + playlistVector->begin(); + int arraySize = 0; + while (it != playlistVector->end()) { + Ptr::Ref playlist = *it; + XmlRpc::XmlRpcValue returnStruct; + returnStruct["id"] = (int) (playlist->getId()->getId()); + returnStruct["playlength"] = playlist->getPlaylength()->total_seconds(); + returnValue[arraySize++] = returnStruct; + ++it; + } +} + + /*------------------------------------------------------------------------------ * Convert an error code, error message pair to an XmlRpcValue *----------------------------------------------------------------------------*/ @@ -167,3 +237,127 @@ XmlRpcTools :: validStatusToXmlRpcValue( xmlRpcValue["valid"] = XmlRpc::XmlRpcValue(validStatus); } + +/*------------------------------------------------------------------------------ + * Extract the from time from an XML-RPC function call parameter + *----------------------------------------------------------------------------*/ +Ptr::Ref +XmlRpcTools :: extractFromTime( + XmlRpc::XmlRpcValue & xmlRpcValue) + throw (std::invalid_argument) +{ + if (!xmlRpcValue.hasMember(fromTimeName)) { + throw std::invalid_argument("no from part in parameter structure"); + } + + struct tm tm = (struct tm) xmlRpcValue[fromTimeName]; + gregorian::date date(tm.tm_year, tm.tm_mon, tm.tm_mday); + time_duration hours(tm.tm_hour, tm.tm_min, tm.tm_sec); + Ptr::Ref ptime(new ptime(date, hours)); + + return ptime; +} + + +/*------------------------------------------------------------------------------ + * Extract the to time from an XML-RPC function call parameter + *----------------------------------------------------------------------------*/ +Ptr::Ref +XmlRpcTools :: extractToTime( + XmlRpc::XmlRpcValue & xmlRpcValue) + throw (std::invalid_argument) +{ + if (!xmlRpcValue.hasMember(toTimeName)) { + throw std::invalid_argument("no to part in parameter structure"); + } + + struct tm tm = (struct tm) xmlRpcValue[toTimeName]; + gregorian::date date(tm.tm_year, tm.tm_mon, tm.tm_mday); + time_duration hours(tm.tm_hour, tm.tm_min, tm.tm_sec); + Ptr::Ref ptime(new ptime(date, hours)); + + return ptime; +} + + +/*------------------------------------------------------------------------------ + * Convert a boost::posix_time::ptime to an XmlRpcValue + *----------------------------------------------------------------------------*/ +void +XmlRpcTools :: ptimeToXmlRpcValue( + Ptr::Ref ptime, + XmlRpc::XmlRpcValue & xmlRpcValue) + throw () +{ + gregorian::date date = ptime->date(); + posix_time::time_duration hours = ptime->time_of_day(); + struct tm time; + + time.tm_year = date.year(); + time.tm_mon = date.month(); + time.tm_mday = date.day(); + time.tm_hour = hours.hours(); + time.tm_min = hours.minutes(); + time.tm_sec = hours.seconds(); + // TODO: set tm_wday, tm_yday and tm_isdst fields as well + + xmlRpcValue = XmlRpc::XmlRpcValue(&time); +} + + +/*------------------------------------------------------------------------------ + * Convert a vector of ScheduleEntries into an XML-RPC value. + * This function returns an XML-RPC array of XML-RPC structures. + *----------------------------------------------------------------------------*/ +void +XmlRpcTools :: scheduleEntriesToXmlRpcValue( + Ptr::Ref> >::Ref scheduleEntries, + XmlRpc::XmlRpcValue & returnValue) + throw () +{ + returnValue.setSize(scheduleEntries->size()); + // a call to setSize() makes sure it's an XML-RPC + // array + + std::vector::Ref>::iterator it + = scheduleEntries->begin(); + int arraySize = 0; + while (it != scheduleEntries->end()) { + Ptr::Ref entry = *it; + XmlRpc::XmlRpcValue returnStruct; + returnStruct["id"] = (int) (entry->getId()->getId()); + returnStruct["playlistId"] = (int) (entry->getPlaylistId()->getId()); + + XmlRpc::XmlRpcValue time; + ptimeToXmlRpcValue(entry->getStartTime(), time); + returnStruct["start"] = time; + + ptimeToXmlRpcValue(entry->getEndTime(), time); + returnStruct["end"] = time; + + returnValue[arraySize++] = returnStruct; + ++it; + } +} + + +/*------------------------------------------------------------------------------ + * Extract the playtime from an XML-RPC function call parameter + *----------------------------------------------------------------------------*/ +Ptr::Ref +XmlRpcTools :: extractPlayschedule( + XmlRpc::XmlRpcValue & xmlRpcValue) + throw (std::invalid_argument) +{ + if (!xmlRpcValue.hasMember(playtimeName)) { + throw std::invalid_argument("no playtime in parameter structure"); + } + + struct tm tm = (struct tm) xmlRpcValue[playtimeName]; + gregorian::date date(tm.tm_year, tm.tm_mon, tm.tm_mday); + time_duration hours(tm.tm_hour, tm.tm_min, tm.tm_sec); + Ptr::Ref ptime(new ptime(date, hours)); + + return ptime; +} + diff --git a/livesupport/products/scheduler/src/XmlRpcTools.h b/livesupport/products/scheduler/src/XmlRpcTools.h index 282965cef..99ba46739 100644 --- a/livesupport/products/scheduler/src/XmlRpcTools.h +++ b/livesupport/products/scheduler/src/XmlRpcTools.h @@ -22,7 +22,7 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.3 $ + Version : $Revision: 1.4 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/Attic/XmlRpcTools.h,v $ ------------------------------------------------------------------------------*/ @@ -42,10 +42,13 @@ #include #include +#include #include +#include #include "LiveSupport/Core/Ptr.h" #include "LiveSupport/Core/Playlist.h" +#include "ScheduleEntry.h" namespace LiveSupport { @@ -68,11 +71,11 @@ using namespace LiveSupport::Core; * in the Scheduler. * * @author $Author: fgerlits $ - * @version $Revision: 1.3 $ + * @version $Revision: 1.4 $ */ class XmlRpcTools { - public: + private: /** * The name of the playlistId member in the XML-RPC parameter * structure given as the input to an XmlRpcServerMethod. @@ -91,6 +94,56 @@ class XmlRpcTools */ static const std::string relativeOffsetName; + /** + * The name of the from member in the XML-RPC parameter + * structure. + */ + static const std::string fromTimeName; + + /** + * The name of the to member in the XML-RPC parameter + * structure. + */ + static const std::string toTimeName; + + /** + * The name of the entry id member in the XML-RPC parameter + * structure. + */ + static const std::string scheduleEntryIdName; + + /** + * The name of the playtime member in the XML-RPC parameter + * structure. + */ + static const std::string playtimeName; + + /** + * Convert a boost::posix_time::ptime to an XmlRpcValue + * + * @param ptime the ptime to convert + * @param xmlRpcValue the output parameter holding the value of + * the conversion. + */ + static void + ptimeToXmlRpcValue(Ptr::Ref ptime, + XmlRpc::XmlRpcValue & xmlRpcValue) + throw (); + + + public: + /** + * Extract the schedule entry id from the XML-RPC parameters. + * + * @param xmlRpcValue the XML-RPC parameter to extract from. + * @return a UniqueId that was found in the XML-RPC parameter. + * @exception std::invalid_argument if there was no UniqueId + * in xmlRpcValue + */ + static Ptr::Ref + extractScheduleEntryId(XmlRpc::XmlRpcValue & xmlRpcValue) + throw (std::invalid_argument); + /** * Extract the playlist id from the XML-RPC parameters. * @@ -162,6 +215,69 @@ class XmlRpcTools validStatusToXmlRpcValue(bool validStatus, XmlRpc::XmlRpcValue & xmlRpcValue) throw (); + + /** + * Convert a vector of Playlists to an XML-RPC return value. + * + * @param playlistVector a list of Playlists. + * @param returnValue the output parameter holding an XML-RPC + * representation of the list of Playlists. + */ + static void + playlistVectorToXmlRpcValue( + const Ptr::Ref> >::Ref playlistVector, + XmlRpc::XmlRpcValue & returnValue) + throw (); + + /** + * Extract the from time parameter from the XML-RPC parameters. + * + * @param xmlRpcValue the XML-RPC parameter to extract from. + * @return the time value for the from parameter + * @exception std::invalid_argument if there was no from parameter + * in xmlRpcValue + */ + static Ptr::Ref + extractFromTime(XmlRpc::XmlRpcValue & xmlRpcValue) + throw (std::invalid_argument); + + /** + * Extract the to parameter from the XML-RPC parameters. + * + * @param xmlRpcValue the XML-RPC parameter to extract from. + * @return the time value for the to parameter + * @exception std::invalid_argument if there was no to parameter + * in xmlRpcValue + */ + static Ptr::Ref + extractToTime(XmlRpc::XmlRpcValue & xmlRpcValue) + throw (std::invalid_argument); + + /** + * Extract the playtime from the XML-RPC parameters. + * + * @param xmlRpcValue the XML-RPC parameter to extract from. + * @return the playing time, as stored in the XML-RPC parameter + * @exception std::invalid_argument if there was no playtime + * in xmlRpcValue + */ + static Ptr::Ref + extractPlayschedule(XmlRpc::XmlRpcValue & xmlRpcValue) + throw (std::invalid_argument); + + /** + * Convert a vector of ScheduleEntries to an XML-RPC return value. + * + * @param scheduleEntries a list of ScheduleEntries. + * @param returnValue the output parameter holding an XML-RPC + * representation of the suppied schedule entires. + */ + static void + scheduleEntriesToXmlRpcValue( + Ptr::Ref> >::Ref scheduleEntries, + XmlRpc::XmlRpcValue & returnValue) + throw (); + }; /* ================================================= external data structures */