From 8a0df099606aa64d3f62629e759dcf821bec9149 Mon Sep 17 00:00:00 2001 From: fgerlits Date: Wed, 13 Oct 2004 15:51:17 +0000 Subject: [PATCH] *** empty log message *** --- .../scheduler/src/CreatePlaylistMethod.cxx | 117 ------------ .../scheduler/src/CreatePlaylistMethod.h | 143 --------------- .../src/CreatePlaylistMethodTest.cxx | 162 ---------------- .../scheduler/src/CreatePlaylistMethodTest.h | 136 -------------- .../src/OpenPlaylistForEditingMethod.cxx | 149 --------------- .../src/OpenPlaylistForEditingMethod.h | 150 --------------- .../src/OpenPlaylistForEditingMethodTest.cxx | 173 ------------------ .../src/OpenPlaylistForEditingMethodTest.h | 135 -------------- 8 files changed, 1165 deletions(-) delete mode 100644 livesupport/products/scheduler/src/CreatePlaylistMethod.cxx delete mode 100644 livesupport/products/scheduler/src/CreatePlaylistMethod.h delete mode 100644 livesupport/products/scheduler/src/CreatePlaylistMethodTest.cxx delete mode 100644 livesupport/products/scheduler/src/CreatePlaylistMethodTest.h delete mode 100644 livesupport/products/scheduler/src/OpenPlaylistForEditingMethod.cxx delete mode 100644 livesupport/products/scheduler/src/OpenPlaylistForEditingMethod.h delete mode 100644 livesupport/products/scheduler/src/OpenPlaylistForEditingMethodTest.cxx delete mode 100644 livesupport/products/scheduler/src/OpenPlaylistForEditingMethodTest.h diff --git a/livesupport/products/scheduler/src/CreatePlaylistMethod.cxx b/livesupport/products/scheduler/src/CreatePlaylistMethod.cxx deleted file mode 100644 index 257d9e675..000000000 --- a/livesupport/products/scheduler/src/CreatePlaylistMethod.cxx +++ /dev/null @@ -1,117 +0,0 @@ -/*------------------------------------------------------------------------------ - - Copyright (c) 2004 Media Development Loan Fund - - This file is part of the LiveSupport project. - http://livesupport.campware.org/ - To report bugs, send an e-mail to bugs@campware.org - - LiveSupport is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - LiveSupport is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with LiveSupport; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - - Author : $Author: fgerlits $ - Version : $Revision: 1.2 $ - Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/CreatePlaylistMethod.cxx,v $ - -------------------------------------------------------------------------------*/ - -/* ============================================================ include files */ - -#ifdef HAVE_CONFIG_H -#include "configure.h" -#endif - -#ifdef HAVE_TIME_H -#include -#else -#error need time.h -#endif - - -#include - -#include "LiveSupport/Core/StorageClientInterface.h" -#include "LiveSupport/Storage/StorageClientFactory.h" -#include "ScheduleInterface.h" -#include "ScheduleFactory.h" -#include "XmlRpcTools.h" - -#include "CreatePlaylistMethod.h" - - -using namespace boost; -using namespace boost::posix_time; - -using namespace LiveSupport; -using namespace LiveSupport::Core; -using namespace LiveSupport::Storage; - -using namespace LiveSupport::Scheduler; - -/* =================================================== local data structures */ - - -/* ================================================ local constants & macros */ - -/*------------------------------------------------------------------------------ - * The name of this XML-RPC method. - *----------------------------------------------------------------------------*/ -const std::string CreatePlaylistMethod::methodName = "createPlaylist"; - -/*------------------------------------------------------------------------------ - * The ID of this method for error reporting purposes. - *----------------------------------------------------------------------------*/ -const int CreatePlaylistMethod::errorId = 2000; - - -/* =============================================== local function prototypes */ - - -/* ============================================================= module code */ - -/*------------------------------------------------------------------------------ - * Construct the method and register it right away. - *----------------------------------------------------------------------------*/ -CreatePlaylistMethod :: CreatePlaylistMethod ( - Ptr::Ref xmlRpcServer) throw() - : XmlRpc::XmlRpcServerMethod(methodName, xmlRpcServer.get()) -{ -} - - -/*------------------------------------------------------------------------------ - * Execute the stop XML-RPC function call. - *----------------------------------------------------------------------------*/ -void -CreatePlaylistMethod :: execute(XmlRpc::XmlRpcValue & parameters, - XmlRpc::XmlRpcValue & returnValue) - throw () -{ - Ptr::Ref scf; - Ptr::Ref storage; - - scf = StorageClientFactory::getInstance(); - storage = scf->getStorageClient(); - - Ptr::Ref playlist = storage->createPlaylist(); - - if (!playlist->setLockedForEditing(true)) { // this should never happen - XmlRpcTools :: markError(errorId+1, - "could not open new playlist for editing", - returnValue); - return; - } - XmlRpcTools :: playlistToXmlRpcValue(playlist, returnValue); -} diff --git a/livesupport/products/scheduler/src/CreatePlaylistMethod.h b/livesupport/products/scheduler/src/CreatePlaylistMethod.h deleted file mode 100644 index 50a3a00c9..000000000 --- a/livesupport/products/scheduler/src/CreatePlaylistMethod.h +++ /dev/null @@ -1,143 +0,0 @@ -/*------------------------------------------------------------------------------ - - Copyright (c) 2004 Media Development Loan Fund - - This file is part of the LiveSupport project. - http://livesupport.campware.org/ - To report bugs, send an e-mail to bugs@campware.org - - LiveSupport is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - LiveSupport is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with LiveSupport; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - - Author : $Author: fgerlits $ - Version : $Revision: 1.2 $ - Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/CreatePlaylistMethod.h,v $ - -------------------------------------------------------------------------------*/ -#ifndef CreatePlaylistMethod_h -#define CreatePlaylistMethod_h - -#ifndef __cplusplus -#error This is a C++ include file -#endif - - -/* ============================================================ include files */ - -#ifdef HAVE_CONFIG_H -#include "configure.h" -#endif - -#include -#include -#include -#include - -#include "LiveSupport/Core/Ptr.h" -#include "LiveSupport/Core/Playlist.h" - - -namespace LiveSupport { -namespace Scheduler { - -using namespace LiveSupport; -using namespace LiveSupport::Core; - -/* ================================================================ constants */ - - -/* =================================================================== macros */ - - -/* =============================================================== data types */ - -/** - * An XML-RPC method object to create a new playlist in the playlist store. - * - * The name of the method when called through XML-RPC is "createPlaylist". - * - * The XML-RPC function returns an XML-RPC structure, containing the following - * fields: - *
    - *
  • id - int - the unique id of the new playlist
  • - *
  • playlength - int - the playlist length of the playlist, in seconds - *
  • - *
- * If there is an error, an XML-RPC structure is returned, with the following - * fields: - *
    - *
  • errorCode - int - a numerical code for the error
  • - *
  • errorMessage - string - a description of the error
  • - *
- * - * @author $Author: fgerlits $ - * @version $Revision: 1.2 $ - */ -class CreatePlaylistMethod : public XmlRpc::XmlRpcServerMethod -{ - private: - /** - * The name of this method, as it will be registered into the - * XML-RPC server. - */ - static const std::string methodName; - - /** - * The ID of this method for error reporting purposes. - */ - static const int errorId; - - - public: - /** - * A default constructor, for testing purposes. - */ - CreatePlaylistMethod(void) throw () - : XmlRpc::XmlRpcServerMethod(methodName) - { - } - - /** - * Constuctor that registers the method with the server right away. - * - * @param xmlRpcServer the XML-RPC server to register with. - */ - CreatePlaylistMethod( - Ptr::Ref xmlRpcServer) - throw (); - - /** - * Execute the create playlist command on the Scheduler daemon. - * - * @param parameters XML-RPC function call parameters - * @param returnValue the return value of the call (out parameter) - */ - void - execute( XmlRpc::XmlRpcValue & parameters, - XmlRpc::XmlRpcValue & returnValue) throw (); -}; - - -/* ================================================= external data structures */ - - -/* ====================================================== function prototypes */ - - -} // namespace Scheduler -} // namespace LiveSupport - -#endif // CreatePlaylistMethod_h - diff --git a/livesupport/products/scheduler/src/CreatePlaylistMethodTest.cxx b/livesupport/products/scheduler/src/CreatePlaylistMethodTest.cxx deleted file mode 100644 index d9ce1ce50..000000000 --- a/livesupport/products/scheduler/src/CreatePlaylistMethodTest.cxx +++ /dev/null @@ -1,162 +0,0 @@ -/*------------------------------------------------------------------------------ - - Copyright (c) 2004 Media Development Loan Fund - - This file is part of the LiveSupport project. - http://livesupport.campware.org/ - To report bugs, send an e-mail to bugs@campware.org - - LiveSupport is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - LiveSupport is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with LiveSupport; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - - Author : $Author: fgerlits $ - Version : $Revision: 1.2 $ - Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/CreatePlaylistMethodTest.cxx,v $ - -------------------------------------------------------------------------------*/ - -/* ============================================================ include files */ - -#ifdef HAVE_CONFIG_H -#include "configure.h" -#endif - -#if HAVE_UNISTD_H -#include -#else -#error "Need unistd.h" -#endif - - -#include -#include -#include - -#include "LiveSupport/Db/ConnectionManagerFactory.h" -#include "LiveSupport/Storage/StorageClientFactory.h" -#include "CreatePlaylistMethod.h" -#include "OpenPlaylistForEditingMethod.h" -#include "CreatePlaylistMethodTest.h" - -using namespace XmlRpc; - -using namespace LiveSupport::Db; -using namespace LiveSupport::Storage; -using namespace LiveSupport::Scheduler; - -/* =================================================== local data structures */ - - -/* ================================================ local constants & macros */ - -CPPUNIT_TEST_SUITE_REGISTRATION(CreatePlaylistMethodTest); - -/** - * The name of the configuration file for the storage client factory. - */ -const std::string CreatePlaylistMethodTest::storageClientConfig = - "etc/storageClient.xml"; - -/** - * The name of the configuration file for the connection manager factory. - */ -const std::string CreatePlaylistMethodTest::connectionManagerConfig = - "etc/connectionManagerFactory.xml"; - - -/* =============================================== local function prototypes */ - - -/* ============================================================= module code */ - -/*------------------------------------------------------------------------------ - * Configure a Configurable with an XML file. - *----------------------------------------------------------------------------*/ -void -CreatePlaylistMethodTest :: configure( - Ptr::Ref configurable, - const std::string fileName) - throw (std::invalid_argument, - xmlpp::exception) -{ - Ptr::Ref parser(new xmlpp::DomParser(fileName, true)); - const xmlpp::Document * document = parser->get_document(); - const xmlpp::Element * root = document->get_root_node(); - - configurable->configure(*root); -} - - -/*------------------------------------------------------------------------------ - * Set up the test environment - *----------------------------------------------------------------------------*/ -void -CreatePlaylistMethodTest :: setUp(void) throw () -{ - try { - Ptr::Ref scf - = StorageClientFactory::getInstance(); - configure(scf, storageClientConfig); - - Ptr::Ref cmf - = ConnectionManagerFactory::getInstance(); - configure(cmf, connectionManagerConfig); - - } catch (std::invalid_argument &e) { - CPPUNIT_FAIL("semantic error in configuration file"); - } catch (xmlpp::exception &e) { - CPPUNIT_FAIL("error parsing configuration file"); - } catch (std::exception &e) { - CPPUNIT_FAIL(e.what()); - } -} - - -/*------------------------------------------------------------------------------ - * Clean up the test environment - *----------------------------------------------------------------------------*/ -void -CreatePlaylistMethodTest :: tearDown(void) throw () -{ -} - - -/*------------------------------------------------------------------------------ - * Just a very simple smoke test - *----------------------------------------------------------------------------*/ -void -CreatePlaylistMethodTest :: firstTest(void) - throw (CPPUNIT_NS::Exception) -{ - Ptr::Ref method(new CreatePlaylistMethod()); - XmlRpc::XmlRpcValue parameter; - XmlRpc::XmlRpcValue result; - - method->execute(parameter, result); - CPPUNIT_ASSERT(result.hasMember("id")); - CPPUNIT_ASSERT(((int) result["playlength"]) == 0); - - int playlistId = (int) result["id"]; - method.reset(new OpenPlaylistForEditingMethod()); - parameter.clear(); - result.clear(); - parameter["playlistId"] = playlistId; - - // should not allow to open the same playlist for editing again - method->execute(parameter, result); - CPPUNIT_ASSERT((int) result["errorCode"] == 1005); - CPPUNIT_ASSERT((const std::string) result["errorMessage"] == - "playlist cannot be edited"); -} diff --git a/livesupport/products/scheduler/src/CreatePlaylistMethodTest.h b/livesupport/products/scheduler/src/CreatePlaylistMethodTest.h deleted file mode 100644 index 04f8da6e8..000000000 --- a/livesupport/products/scheduler/src/CreatePlaylistMethodTest.h +++ /dev/null @@ -1,136 +0,0 @@ -/*------------------------------------------------------------------------------ - - Copyright (c) 2004 Media Development Loan Fund - - This file is part of the LiveSupport project. - http://livesupport.campware.org/ - To report bugs, send an e-mail to bugs@campware.org - - LiveSupport is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - LiveSupport is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with LiveSupport; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - - Author : $Author: fgerlits $ - Version : $Revision: 1.1 $ - Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/CreatePlaylistMethodTest.h,v $ - -------------------------------------------------------------------------------*/ -#ifndef CreatePlaylistMethodTest_h -#define CreatePlaylistMethodTest_h - -#ifndef __cplusplus -#error This is a C++ include file -#endif - - -/* ============================================================ include files */ - -#ifdef HAVE_CONFIG_H -#include "configure.h" -#endif - -#include - - -namespace LiveSupport { -namespace Scheduler { - -using namespace LiveSupport; -using namespace LiveSupport::Core; - -/* ================================================================ constants */ - - -/* =================================================================== macros */ - - -/* =============================================================== data types */ - -/** - * Unit test for the CreatePlaylistMethod class. - * - * @author $Author: fgerlits $ - * @version $Revision: 1.1 $ - * @see CreatePlaylistMethod - */ -class CreatePlaylistMethodTest : public CPPUNIT_NS::TestFixture -{ - CPPUNIT_TEST_SUITE(CreatePlaylistMethodTest); - CPPUNIT_TEST(firstTest); - CPPUNIT_TEST_SUITE_END(); - - /** - * The name of the configuration file for the storage client factory. - */ - static const std::string storageClientConfig; - - /** - * The name of the configuration file for the connection manager - * factory. - */ - static const std::string connectionManagerConfig; - - /** - * Configure a configurable with an XML file. - * - * @param configurable configure this - * @param fileName the name of the XML file to configure with. - * @exception std::invalid_argument on configuration errors. - * @exception xmlpp::exception on XML parsing errors. - */ - void - configure(Ptr::Ref configurable, - std::string fileName) - throw (std::invalid_argument, - xmlpp::exception); - - - protected: - - /** - * A simple test. - * - * @exception CPPUNIT_NS::Exception on test failures. - */ - void - firstTest(void) throw (CPPUNIT_NS::Exception); - - - public: - - /** - * Set up the environment for the test case. - */ - void - setUp(void) throw (); - - /** - * Clean up the environment after the test case. - */ - void - tearDown(void) throw (); -}; - - -/* ================================================= external data structures */ - - -/* ====================================================== function prototypes */ - - -} // namespace Scheduler -} // namespace LiveSupport - -#endif // CreatePlaylistMethodTest_h - diff --git a/livesupport/products/scheduler/src/OpenPlaylistForEditingMethod.cxx b/livesupport/products/scheduler/src/OpenPlaylistForEditingMethod.cxx deleted file mode 100644 index cde722afa..000000000 --- a/livesupport/products/scheduler/src/OpenPlaylistForEditingMethod.cxx +++ /dev/null @@ -1,149 +0,0 @@ -/*------------------------------------------------------------------------------ - - Copyright (c) 2004 Media Development Loan Fund - - This file is part of the LiveSupport project. - http://livesupport.campware.org/ - To report bugs, send an e-mail to bugs@campware.org - - LiveSupport is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - LiveSupport is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with LiveSupport; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - - Author : $Author: fgerlits $ - Version : $Revision: 1.1 $ - Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/OpenPlaylistForEditingMethod.cxx,v $ - -------------------------------------------------------------------------------*/ - -/* ============================================================ include files */ - -#ifdef HAVE_CONFIG_H -#include "configure.h" -#endif - -#ifdef HAVE_TIME_H -#include -#else -#error need time.h -#endif - - -#include - -#include "LiveSupport/Core/StorageClientInterface.h" -#include "LiveSupport/Storage/StorageClientFactory.h" -#include "ScheduleInterface.h" -#include "ScheduleFactory.h" -#include "XmlRpcTools.h" - -#include "OpenPlaylistForEditingMethod.h" - - -using namespace boost; -using namespace boost::posix_time; - -using namespace LiveSupport; -using namespace LiveSupport::Core; -using namespace LiveSupport::Storage; - -using namespace LiveSupport::Scheduler; - -/* =================================================== local data structures */ - - -/* ================================================ local constants & macros */ - -/*------------------------------------------------------------------------------ - * The name of this XML-RPC method. - *----------------------------------------------------------------------------*/ -const std::string OpenPlaylistForEditingMethod::methodName = "openPlaylistForEditing"; - -/*------------------------------------------------------------------------------ - * The ID of this method for error reporting purposes. - *----------------------------------------------------------------------------*/ -const int OpenPlaylistForEditingMethod::errorId = 1000; - - -/* =============================================== local function prototypes */ - - -/* ============================================================= module code */ - -/*------------------------------------------------------------------------------ - * Construct the method and register it right away. - *----------------------------------------------------------------------------*/ -OpenPlaylistForEditingMethod :: OpenPlaylistForEditingMethod ( - Ptr::Ref xmlRpcServer) throw() - : XmlRpc::XmlRpcServerMethod(methodName, xmlRpcServer.get()) -{ -} - - -/*------------------------------------------------------------------------------ - * Execute the stop XML-RPC function call. - *----------------------------------------------------------------------------*/ -void -OpenPlaylistForEditingMethod :: execute(XmlRpc::XmlRpcValue & parameters, - XmlRpc::XmlRpcValue & returnValue) - throw () -{ - if (!parameters.valid()) { - XmlRpcTools::markError(errorId+1, "invalid argument format", - returnValue); - return; - } - - Ptr::Ref id; - try{ - id = XmlRpcTools::extractPlaylistId(parameters); - } - catch (std::invalid_argument &e) { - XmlRpcTools::markError(errorId+2, "argument is not a playlist ID", - returnValue); - return; - } - - Ptr::Ref scf; - Ptr::Ref storage; - - scf = StorageClientFactory::getInstance(); - storage = scf->getStorageClient(); - - if (!storage->existsPlaylist(id)) { - XmlRpcTools::markError(errorId+3, "playlist does not exist", - returnValue); - return; - } - - Ptr::Ref playlist; - try { - playlist = storage->getPlaylist(id); - } - catch (std::invalid_argument &e) { - XmlRpcTools::markError(errorId+4, "could not open playlist", - returnValue); - return; - } - - if (!playlist->setLockedForEditing(true)) { - XmlRpcTools::markError(errorId+5, "playlist cannot be edited", - returnValue); - return; - } - - XmlRpcTools::playlistToXmlRpcValue(playlist, returnValue); - - return; -} diff --git a/livesupport/products/scheduler/src/OpenPlaylistForEditingMethod.h b/livesupport/products/scheduler/src/OpenPlaylistForEditingMethod.h deleted file mode 100644 index b89d85824..000000000 --- a/livesupport/products/scheduler/src/OpenPlaylistForEditingMethod.h +++ /dev/null @@ -1,150 +0,0 @@ -/*------------------------------------------------------------------------------ - - Copyright (c) 2004 Media Development Loan Fund - - This file is part of the LiveSupport project. - http://livesupport.campware.org/ - To report bugs, send an e-mail to bugs@campware.org - - LiveSupport is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - LiveSupport is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with LiveSupport; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - - Author : $Author: fgerlits $ - Version : $Revision: 1.1 $ - Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/OpenPlaylistForEditingMethod.h,v $ - -------------------------------------------------------------------------------*/ -#ifndef OpenPlaylistForEditingMethod_h -#define OpenPlaylistForEditingMethod_h - -#ifndef __cplusplus -#error This is a C++ include file -#endif - - -/* ============================================================ include files */ - -#ifdef HAVE_CONFIG_H -#include "configure.h" -#endif - -#include -#include -#include -#include - -#include "LiveSupport/Core/Ptr.h" -#include "LiveSupport/Core/Playlist.h" - - -namespace LiveSupport { -namespace Scheduler { - -using namespace LiveSupport; -using namespace LiveSupport::Core; - -/* ================================================================ constants */ - - -/* =================================================================== macros */ - - -/* =============================================================== data types */ - -/** - * An XML-RPC method object to open a playlist (specified by its playlist id) - * for editing. - * - * The name of the method when called through XML-RPC is - * "openPlaylistForEditing". - * The expected parameter is an XML-RPC structure, with the following - * member: - *
    - *
  • playlistId - int - the unique id of the playlist requested.
  • - *
- * - * The XML-RPC function returns an XML-RPC structure, containing the following - * fields: - *
    - *
  • id - int - the unique id of the playlist
  • - *
  • playlength - int - the playlist length of the playlist, in seconds - *
  • - *
- * In case of an error, an XML-RPC structure is returned, with the following - * fields: - *
    - *
  • errorCode - int - the id of the error condition
  • - *
  • errorMessage - string - a description of the error
  • - *
- * - * @author $Author: fgerlits $ - * @version $Revision: 1.1 $ - */ -class OpenPlaylistForEditingMethod : public XmlRpc::XmlRpcServerMethod -{ - private: - /** - * The name of this method, as it will be registered into the - * XML-RPC server. - */ - static const std::string methodName; - - /** - * The ID of this method for error reporting purposes. - */ - static const int errorId; - - - public: - /** - * A default constructor, for testing purposes. - */ - OpenPlaylistForEditingMethod(void) throw () - : XmlRpc::XmlRpcServerMethod(methodName) - { - } - - /** - * Constuctor that registers the method with the server right away. - * - * @param xmlRpcServer the XML-RPC server to register with. - */ - OpenPlaylistForEditingMethod( - Ptr::Ref xmlRpcServer) - throw (); - - /** - * Execute the display schedule command on the Scheduler daemon. - * - * @param parameters XML-RPC function call parameters - * @param returnValue the return value of the call (out parameter) - */ - void - execute( XmlRpc::XmlRpcValue & parameters, - XmlRpc::XmlRpcValue & returnValue) throw (); -}; - - -/* ================================================= external data structures */ - - -/* ====================================================== function prototypes */ - - -} // namespace Scheduler -} // namespace LiveSupport - -#endif // OpenPlaylistForEditingMethod_h - diff --git a/livesupport/products/scheduler/src/OpenPlaylistForEditingMethodTest.cxx b/livesupport/products/scheduler/src/OpenPlaylistForEditingMethodTest.cxx deleted file mode 100644 index 2dd6ca564..000000000 --- a/livesupport/products/scheduler/src/OpenPlaylistForEditingMethodTest.cxx +++ /dev/null @@ -1,173 +0,0 @@ -/*------------------------------------------------------------------------------ - - Copyright (c) 2004 Media Development Loan Fund - - This file is part of the LiveSupport project. - http://livesupport.campware.org/ - To report bugs, send an e-mail to bugs@campware.org - - LiveSupport is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - LiveSupport is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with LiveSupport; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - - Author : $Author: fgerlits $ - Version : $Revision: 1.1 $ - Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/OpenPlaylistForEditingMethodTest.cxx,v $ - -------------------------------------------------------------------------------*/ - -/* ============================================================ include files */ - -#ifdef HAVE_CONFIG_H -#include "configure.h" -#endif - -#if HAVE_UNISTD_H -#include -#else -#error "Need unistd.h" -#endif - - -#include -#include -#include - -#include "LiveSupport/Db/ConnectionManagerFactory.h" -#include "LiveSupport/Storage/StorageClientFactory.h" -#include "XmlRpcTools.h" - -#include "OpenPlaylistForEditingMethod.h" -#include "OpenPlaylistForEditingMethodTest.h" - - -using namespace LiveSupport::Db; -using namespace LiveSupport::Storage; -using namespace LiveSupport::Scheduler; - -/* =================================================== local data structures */ - - -/* ================================================ local constants & macros */ - -CPPUNIT_TEST_SUITE_REGISTRATION(OpenPlaylistForEditingMethodTest); - -/** - * The name of the configuration file for the storage client factory. - */ -const std::string OpenPlaylistForEditingMethodTest::storageClientConfig = - "etc/storageClient.xml"; - -/** - * The name of the configuration file for the connection manager factory. - */ -const std::string OpenPlaylistForEditingMethodTest::connectionManagerConfig = - "etc/connectionManagerFactory.xml"; - - -/* =============================================== local function prototypes */ - - -/* ============================================================= module code */ - -/*------------------------------------------------------------------------------ - * Configure a Configurable with an XML file. - *----------------------------------------------------------------------------*/ -void -OpenPlaylistForEditingMethodTest :: configure( - Ptr::Ref configurable, - const std::string fileName) - throw (std::invalid_argument, - xmlpp::exception) -{ - Ptr::Ref parser(new xmlpp::DomParser(fileName, true)); - const xmlpp::Document * document = parser->get_document(); - const xmlpp::Element * root = document->get_root_node(); - - configurable->configure(*root); -} - - -/*------------------------------------------------------------------------------ - * Set up the test environment - *----------------------------------------------------------------------------*/ -void -OpenPlaylistForEditingMethodTest :: setUp(void) throw () -{ - try { - Ptr::Ref scf - = StorageClientFactory::getInstance(); - configure(scf, storageClientConfig); - - Ptr::Ref cmf - = ConnectionManagerFactory::getInstance(); - configure(cmf, connectionManagerConfig); - - } catch (std::invalid_argument &e) { - CPPUNIT_FAIL("semantic error in configuration file"); - } catch (xmlpp::exception &e) { - CPPUNIT_FAIL("error parsing configuration file"); - } catch (std::exception &e) { - CPPUNIT_FAIL(e.what()); - } -} - - -/*------------------------------------------------------------------------------ - * Clean up the test environment - *----------------------------------------------------------------------------*/ -void -OpenPlaylistForEditingMethodTest :: tearDown(void) throw () -{ -} - - -/*------------------------------------------------------------------------------ - * Just a very simple smoke test - *----------------------------------------------------------------------------*/ -void -OpenPlaylistForEditingMethodTest :: firstTest(void) - throw (CPPUNIT_NS::Exception) -{ - Ptr::Ref - method(new OpenPlaylistForEditingMethod()); - XmlRpc::XmlRpcValue parameter; - XmlRpc::XmlRpcValue result; - - parameter["playlistId"] = 1; - - method->execute(parameter, result); - CPPUNIT_ASSERT((int) result["id"] == 1); - CPPUNIT_ASSERT((int) result["playlength"] == (60 * 60)); - - parameter.clear(); - result.clear(); - parameter["playlistId"] = 6376; - - // no such playlist - method->execute(parameter, result); - CPPUNIT_ASSERT((int) result["errorCode"] == 1003); - CPPUNIT_ASSERT((const std::string) result["errorMessage"] == - "playlist does not exist"); - parameter.clear(); - result.clear(); - parameter["playlistId"] = 1; - - // should not allow to open the same playlist for editing again - method->execute(parameter, result); - CPPUNIT_ASSERT((int) result["errorCode"] == 1005); - CPPUNIT_ASSERT((const std::string) result["errorMessage"] == - "playlist cannot be edited"); - -} diff --git a/livesupport/products/scheduler/src/OpenPlaylistForEditingMethodTest.h b/livesupport/products/scheduler/src/OpenPlaylistForEditingMethodTest.h deleted file mode 100644 index 764f61f31..000000000 --- a/livesupport/products/scheduler/src/OpenPlaylistForEditingMethodTest.h +++ /dev/null @@ -1,135 +0,0 @@ -/*------------------------------------------------------------------------------ - - Copyright (c) 2004 Media Development Loan Fund - - This file is part of the LiveSupport project. - http://livesupport.campware.org/ - To report bugs, send an e-mail to bugs@campware.org - - LiveSupport is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - LiveSupport is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with LiveSupport; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - - Author : $Author: fgerlits $ - Version : $Revision: 1.1 $ - Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/OpenPlaylistForEditingMethodTest.h,v $ - -------------------------------------------------------------------------------*/ -#ifndef OpenPlaylistForEditingMethodTest_h -#define OpenPlaylistForEditingMethodTest_h - -#ifndef __cplusplus -#error This is a C++ include file -#endif - - -/* ============================================================ include files */ - -#ifdef HAVE_CONFIG_H -#include "configure.h" -#endif - -#include - - -namespace LiveSupport { -namespace Scheduler { - -using namespace LiveSupport; -using namespace LiveSupport::Core; - -/* ================================================================ constants */ - - -/* =================================================================== macros */ - - -/* =============================================================== data types */ - -/** - * Unit test for the OpenPlaylistForEditingMethod class. - * - * @author $Author: fgerlits $ - * @version $Revision: 1.1 $ - * @see OpenPlaylistForEditingMethod - */ -class OpenPlaylistForEditingMethodTest : public CPPUNIT_NS::TestFixture -{ - CPPUNIT_TEST_SUITE(OpenPlaylistForEditingMethodTest); - CPPUNIT_TEST(firstTest); - CPPUNIT_TEST_SUITE_END(); - - /** - * The name of the configuration file for the storage client factory. - */ - static const std::string storageClientConfig; - - /** - * The name of the configuration file for the connection manager - * factory. - */ - static const std::string connectionManagerConfig; - - /** - * Configure a configurable with an XML file. - * - * @param configurable configure this - * @param fileName the name of the XML file to configure with. - * @exception std::invalid_argument on configuration errors. - * @exception xmlpp::exception on XML parsing errors. - */ - void - configure(Ptr::Ref configurable, - std::string fileName) - throw (std::invalid_argument, - xmlpp::exception); - - protected: - - /** - * A simple test. - * - * @exception CPPUNIT_NS::Exception on test failures. - */ - void - firstTest(void) throw (CPPUNIT_NS::Exception); - - - public: - - /** - * Set up the environment for the test case. - */ - void - setUp(void) throw (); - - /** - * Clean up the environment after the test case. - */ - void - tearDown(void) throw (); -}; - - -/* ================================================= external data structures */ - - -/* ====================================================== function prototypes */ - - -} // namespace Scheduler -} // namespace LiveSupport - -#endif // OpenPlaylistForEditingMethodTest_h -