From 8d7e16a0c40b99c93ff4574d3524c07be1d76dbe Mon Sep 17 00:00:00 2001 From: fgerlits Date: Wed, 24 Nov 2004 16:21:59 +0000 Subject: [PATCH] changed StorageClientFactory to produce only one kind of client added some documentation (of xml configuration file format) --- .../etc/authenticationClient.xml | 14 +-------- .../authentication/etc/webAuthentication.xml | 2 +- .../AuthenticationClientFactory.h | 19 +++++++----- .../Authentication/WebAuthenticationClient.h | 8 ++--- .../src/TestAuthenticationClient.cxx | 10 ++++-- .../src/TestAuthenticationClient.h | 11 ++++--- .../core/include/LiveSupport/Core/AudioClip.h | 31 ++++++++++++++++--- .../core/include/LiveSupport/Core/FadeInfo.h | 25 +++++++++++++-- .../core/include/LiveSupport/Core/Playlist.h | 27 ++++++++++++++-- .../LiveSupport/Core/PlaylistElement.h | 30 ++++++++++++++++-- livesupport/modules/core/src/Playlist.cxx | 4 +-- .../storage/etc/authenticationClient.xml | 14 +-------- .../modules/storage/etc/webStorage.xml | 2 +- .../Storage/StorageClientFactory.h | 12 +++---- .../modules/storage/src/TestStorageClient.cxx | 4 +-- .../modules/storage/src/TestStorageClient.h | 26 ++++++++++++++-- .../scheduler/etc/authenticationClient.xml | 14 +-------- 17 files changed, 168 insertions(+), 85 deletions(-) diff --git a/livesupport/modules/authentication/etc/authenticationClient.xml b/livesupport/modules/authentication/etc/authenticationClient.xml index ac5d17096..27d0c9d5e 100644 --- a/livesupport/modules/authentication/etc/authenticationClient.xml +++ b/livesupport/modules/authentication/etc/authenticationClient.xml @@ -1,8 +1,7 @@ + @@ -10,20 +9,9 @@ - - - - - - - ]> - - - diff --git a/livesupport/modules/authentication/etc/webAuthentication.xml b/livesupport/modules/authentication/etc/webAuthentication.xml index 570bb7c60..447d347ff 100644 --- a/livesupport/modules/authentication/etc/webAuthentication.xml +++ b/livesupport/modules/authentication/etc/webAuthentication.xml @@ -10,5 +10,5 @@ ]> + path="/livesupportStorageServer/xmlrpc/xrLocStor.php" /> diff --git a/livesupport/modules/authentication/include/LiveSupport/Authentication/AuthenticationClientFactory.h b/livesupport/modules/authentication/include/LiveSupport/Authentication/AuthenticationClientFactory.h index c4d3a75a7..95473c95e 100644 --- a/livesupport/modules/authentication/include/LiveSupport/Authentication/AuthenticationClientFactory.h +++ b/livesupport/modules/authentication/include/LiveSupport/Authentication/AuthenticationClientFactory.h @@ -22,7 +22,7 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.2 $ + Version : $Revision: 1.3 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/authentication/include/LiveSupport/Authentication/AuthenticationClientFactory.h,v $ ------------------------------------------------------------------------------*/ @@ -61,14 +61,17 @@ using namespace LiveSupport::Core; /* =============================================================== data types */ /** - * The factory to create appropriate AuthenticationClient objects. + * The factory to create AuthenticationClientInterface objects. * * This object has to be configured with an XML configuration element * called authenticationClientFactory. This element contains a child element * specifying and configuring the kind of AuthenticationClient that the - * factory builds. Currently only the WebAuthenticationClient is supported. + * factory builds. This client is either a TestAuthenticationClient or + * a WebAuthenticationClient, and the child element name is either + * testAuthentication or webAuthentication, correspondingly. * - * A authenticationClientFactory configuration element may look like the following: + * An authenticationClientFactory configuration element may look like + * the following: * *

  *  <authenticationClientFactory>
@@ -78,8 +81,9 @@ using namespace LiveSupport::Core;
  *  </authenticationClientFactory>
  *  
* - * For detais of the testAuthentication element, see the documentation for the - * WebAuthenticationClient class. + * For detais of the testAuthentication and webAuthentication elements, see the + * documentation for the TestAuthenticationClient and WebAuthenticationClient + * classes. * * The DTD for the above element is: * @@ -88,8 +92,9 @@ using namespace LiveSupport::Core; * * * @author $Author: fgerlits $ - * @version $Revision: 1.2 $ + * @version $Revision: 1.3 $ * @see TestAuthenticationClient + * @see WebAuthenticationClient */ class AuthenticationClientFactory : virtual public Configurable diff --git a/livesupport/modules/authentication/include/LiveSupport/Authentication/WebAuthenticationClient.h b/livesupport/modules/authentication/include/LiveSupport/Authentication/WebAuthenticationClient.h index 1f429d934..eae9589d7 100644 --- a/livesupport/modules/authentication/include/LiveSupport/Authentication/WebAuthenticationClient.h +++ b/livesupport/modules/authentication/include/LiveSupport/Authentication/WebAuthenticationClient.h @@ -22,7 +22,7 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.4 $ + Version : $Revision: 1.5 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/authentication/include/LiveSupport/Authentication/Attic/WebAuthenticationClient.h,v $ ------------------------------------------------------------------------------*/ @@ -76,7 +76,7 @@ using namespace LiveSupport::Core; * <location * server="localhost" * port="80" - * path="/storage/var/xmlrpc/xrLocStor.php" + * path="/livesupportStorageServer/xmlrpc/xrLocStor.php" * /> * </webAuthentication> * @@ -92,7 +92,7 @@ using namespace LiveSupport::Core; * * * @author $Author: fgerlits $ - * @version $Revision: 1.4 $ + * @version $Revision: 1.5 $ */ class WebAuthenticationClient : virtual public Configurable, @@ -162,8 +162,6 @@ class WebAuthenticationClient : * Returns a new session ID; in case of an error, returns a * null pointer. * - * For testing, use the login "root" with the password "q". - * * @return the new session ID */ virtual Ptr::Ref diff --git a/livesupport/modules/authentication/src/TestAuthenticationClient.cxx b/livesupport/modules/authentication/src/TestAuthenticationClient.cxx index b609ae2f0..9a70a95cc 100644 --- a/livesupport/modules/authentication/src/TestAuthenticationClient.cxx +++ b/livesupport/modules/authentication/src/TestAuthenticationClient.cxx @@ -22,7 +22,7 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.1 $ + Version : $Revision: 1.2 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/authentication/src/TestAuthenticationClient.cxx,v $ ------------------------------------------------------------------------------*/ @@ -147,6 +147,7 @@ TestAuthenticationClient :: configure(const xmlpp::Element & element) } sessionIdList.clear(); + sessionCounter = 0; } @@ -162,8 +163,10 @@ TestAuthenticationClient :: login(const std::string & login, if (login == userLogin && password == userPassword) { std::stringstream sessionIdStream; - sessionIdStream << dummySessionIdString; - sessionIdStream << rand(); + sessionIdStream << dummySessionIdString + << sessionCounter++ + << '-' + << rand(); sessionIdList.insert(sessionIdStream.str()); sessionId.reset(new SessionId(sessionIdStream.str())); } @@ -178,6 +181,7 @@ const bool TestAuthenticationClient :: logout(Ptr::Ref sessionId) throw () { + // this returns the number of entries found and erased if (sessionIdList.erase(sessionId->getId())) { return true; } diff --git a/livesupport/modules/authentication/src/TestAuthenticationClient.h b/livesupport/modules/authentication/src/TestAuthenticationClient.h index 45684b078..3cd0f5175 100644 --- a/livesupport/modules/authentication/src/TestAuthenticationClient.h +++ b/livesupport/modules/authentication/src/TestAuthenticationClient.h @@ -22,7 +22,7 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.1 $ + Version : $Revision: 1.2 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/authentication/src/TestAuthenticationClient.h,v $ ------------------------------------------------------------------------------*/ @@ -92,7 +92,7 @@ using namespace LiveSupport::Core; * * * @author $Author: fgerlits $ - * @version $Revision: 1.1 $ + * @version $Revision: 1.2 $ */ class TestAuthenticationClient : virtual public Configurable, @@ -126,6 +126,11 @@ class TestAuthenticationClient : */ sessionIdListType sessionIdList; + /** + * The number of the sessionId's we have issued. + */ + int sessionCounter; + public: /** @@ -168,8 +173,6 @@ class TestAuthenticationClient : * Returns a new session ID; in case of an error, returns a * null pointer. * - * For testing, use the login "root" with the password "q". - * * @return the new session ID */ virtual Ptr::Ref diff --git a/livesupport/modules/core/include/LiveSupport/Core/AudioClip.h b/livesupport/modules/core/include/LiveSupport/Core/AudioClip.h index b3214a2fe..96c220b27 100644 --- a/livesupport/modules/core/include/LiveSupport/Core/AudioClip.h +++ b/livesupport/modules/core/include/LiveSupport/Core/AudioClip.h @@ -22,7 +22,7 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.6 $ + Version : $Revision: 1.7 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/core/include/LiveSupport/Core/AudioClip.h,v $ ------------------------------------------------------------------------------*/ @@ -67,12 +67,31 @@ using namespace boost::posix_time; /** * A class representing an audio clip. * AudioClips contain the basic information about the audio clip. - * They are contained in PlaylistElements, which provide the relative offset - * and fade in/fade out info. PlaylistElements, in turn, are contained - * in a Playlist. + * An AudioClip is contained in a PlaylistElement, which provides the + * relative offset and fade in/fade out information. A PlaylistElement, + * in turn, is contained in a Playlist. + * + * This object has to be configured with an XML configuration element + * called audioClip. This may look like the following: + * + *

+ *  <audioClip id="1" 
+ *             playlength="00:18:30.000000"
+ *             uri="file:var/test1.mp3" >
+ *  </audioClip>
+ *  
+ * + * The DTD for the above element is: + * + *

+ *  <!ELEMENT audioClip EMPTY >
+ *  <!ATTLIST audioClip  id           NMTOKEN     #REQUIRED  >
+ *  <!ATTLIST audioClip  playlength   NMTOKEN     #REQUIRED  >
+ *  <!ATTLIST audioClip  uri          CDATA       #REQUIRED  >
+ *  
* * @author $Author: fgerlits $ - * @version $Revision: 1.6 $ + * @version $Revision: 1.7 $ */ class AudioClip : public Configurable { @@ -112,6 +131,8 @@ class AudioClip : public Configurable * * @param id the id of the audio clip. * @param playlength the playing length of the audio clip. + * @param uri the location of the sound file corresponding to + * this audio clip object (optional) */ AudioClip(Ptr::Ref id, Ptr::Ref playlength, diff --git a/livesupport/modules/core/include/LiveSupport/Core/FadeInfo.h b/livesupport/modules/core/include/LiveSupport/Core/FadeInfo.h index 512c11f30..ed239e144 100644 --- a/livesupport/modules/core/include/LiveSupport/Core/FadeInfo.h +++ b/livesupport/modules/core/include/LiveSupport/Core/FadeInfo.h @@ -22,7 +22,7 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.2 $ + Version : $Revision: 1.3 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/core/include/LiveSupport/Core/FadeInfo.h,v $ ------------------------------------------------------------------------------*/ @@ -66,11 +66,30 @@ using namespace boost::posix_time; /** * A class representing fade in / fade out information of a playlist element. - * These are contained in a PlaylistElement, a list of which, in turn, is + * This is contained in a PlaylistElement, a list of which, in turn, is * contained in a Playlist. * + * This object has to be configured with an XML configuration element + * called fadeInfo. This may look like the following: + * + *

+ *  <fadeInfo id="9901" 
+ *            fadeIn="00:00:02.000000"
+ *            fadeOut="00:00:01.500000" >
+ *  </fadeInfo>
+ *  
+ * + * The DTD for the above element is: + * + *

+ *  <!ELEMENT fadeInfo EMPTY >
+ *  <!ATTLIST fadeInfo id         NMTOKEN     #REQUIRED  >
+ *  <!ATTLIST fadeInfo fadeIn     NMTOKEN     #REQUIRED  >
+ *  <!ATTLIST fadeInfo fadeIn     NMTOKEN     #REQUIRED  >
+ *  
+ * * @author $Author: fgerlits $ - * @version $Revision: 1.2 $ + * @version $Revision: 1.3 $ */ class FadeInfo : public Configurable { diff --git a/livesupport/modules/core/include/LiveSupport/Core/Playlist.h b/livesupport/modules/core/include/LiveSupport/Core/Playlist.h index fdf15cf61..70b374e2f 100644 --- a/livesupport/modules/core/include/LiveSupport/Core/Playlist.h +++ b/livesupport/modules/core/include/LiveSupport/Core/Playlist.h @@ -22,7 +22,7 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.15 $ + Version : $Revision: 1.16 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/core/include/LiveSupport/Core/Playlist.h,v $ ------------------------------------------------------------------------------*/ @@ -70,8 +70,29 @@ using namespace boost::posix_time; * information of when and how each audio clip is played inside * the playlist. * + * This object has to be configured with an XML configuration element + * called playlist. This may look like the following: + * + *

+ *  <playlist id="1" playlength="00:18:30.000000" >
+ *      <playlistElement> ... </playlistElement>
+ *      ...
+ *  </playlist>
+ *  
+ * + * For detais of the playlistElement element, see the documentation + * for the PlaylistElement class. + * + * The DTD for the above element is: + * + *

+ *  <!ELEMENT playlist (playlistElement*) >
+ *  <!ATTLIST playlist  id           NMTOKEN    #REQUIRED  >
+ *  <!ATTLIST playlist  playlength   NMTOKEN    #REQUIRED  >
+ *  
+ * * @author $Author: fgerlits $ - * @version $Revision: 1.15 $ + * @version $Revision: 1.16 $ */ class Playlist : public Configurable { @@ -152,6 +173,8 @@ class Playlist : public Configurable * * @param id the id of the playlist. * @param playlength the playing length of the playlist. + * @param uri the location of the SMIL file representing this + * playlist (optional) */ Playlist(Ptr::Ref id, Ptr::Ref playlength, diff --git a/livesupport/modules/core/include/LiveSupport/Core/PlaylistElement.h b/livesupport/modules/core/include/LiveSupport/Core/PlaylistElement.h index f67d9e048..e547964e7 100644 --- a/livesupport/modules/core/include/LiveSupport/Core/PlaylistElement.h +++ b/livesupport/modules/core/include/LiveSupport/Core/PlaylistElement.h @@ -22,7 +22,7 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.6 $ + Version : $Revision: 1.7 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/core/include/LiveSupport/Core/PlaylistElement.h,v $ ------------------------------------------------------------------------------*/ @@ -71,10 +71,32 @@ using namespace LiveSupport::Core; /* =============================================================== data types */ /** - * An item in a playlist. + * An item in a Playlist, consisting of an AudioClip + * and optional FadeInfo (fade in / fade out information). + * + * This object has to be configured with an XML configuration element + * called playlistElement. This may look like the following: + * + *

+ *  <playlistElement id="707" relativeOffset="00:12:34.000000" >
+ *      <audioClip> ... </audioClip>
+ *      <fadeInfo> ... </fadeInfo>
+ *  </playlist>
+ *  
+ * + * For detais of the audioClip and fadeInfo elements, see the documentation + * for the AudioClip and FadeInfo classes. + * + * The DTD for the above element is: + * + *

+ *  <!ELEMENT playlistElement (audioClip, fadeInfo?) >
+ *  <!ATTLIST playlistElement  id              NMTOKEN   #REQUIRED  >
+ *  <!ATTLIST playlistElement  relativeOffset  NMTOKEN   #REQUIRED  >
+ *  
* * @author $Author: fgerlits $ - * @version $Revision: 1.6 $ + * @version $Revision: 1.7 $ */ class PlaylistElement : public Configurable { @@ -123,6 +145,7 @@ class PlaylistElement : public Configurable * the start of the playlist. * @param audioClip (a pointer to) the audio clip associated * with the playlist element. + * @param fadeInfo fade in / fade out information (optional) */ PlaylistElement(Ptr::Ref id, Ptr::Ref relativeOffset, @@ -145,6 +168,7 @@ class PlaylistElement : public Configurable * the start of the playlist. * @param audioClip (a pointer to) the audio clip associated * with the playlist element. + * @param fadeInfo fade in / fade out information (optional) */ PlaylistElement(Ptr::Ref relativeOffset, Ptr::Ref audioClip, diff --git a/livesupport/modules/core/src/Playlist.cxx b/livesupport/modules/core/src/Playlist.cxx index fbb794556..61dfe17f9 100644 --- a/livesupport/modules/core/src/Playlist.cxx +++ b/livesupport/modules/core/src/Playlist.cxx @@ -22,7 +22,7 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.13 $ + Version : $Revision: 1.14 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/core/src/Playlist.cxx,v $ ------------------------------------------------------------------------------*/ @@ -100,7 +100,7 @@ Playlist :: configure(const xmlpp::Element & element) if (!(attribute = element.get_attribute(playlengthAttrName))) { std::string eMsg = "missing attribute "; - eMsg += idAttrName; + eMsg += playlengthAttrName; throw std::invalid_argument(eMsg); } playlength.reset(new time_duration( diff --git a/livesupport/modules/storage/etc/authenticationClient.xml b/livesupport/modules/storage/etc/authenticationClient.xml index ac5d17096..27d0c9d5e 100644 --- a/livesupport/modules/storage/etc/authenticationClient.xml +++ b/livesupport/modules/storage/etc/authenticationClient.xml @@ -1,8 +1,7 @@ + @@ -10,20 +9,9 @@ - - - - - - - ]> - - - diff --git a/livesupport/modules/storage/etc/webStorage.xml b/livesupport/modules/storage/etc/webStorage.xml index cfcc793c2..df6e91d5c 100644 --- a/livesupport/modules/storage/etc/webStorage.xml +++ b/livesupport/modules/storage/etc/webStorage.xml @@ -12,5 +12,5 @@ ]> + path="/livesupportStorageServer/xmlrpc/xrLocStor.php" /> diff --git a/livesupport/modules/storage/include/LiveSupport/Storage/StorageClientFactory.h b/livesupport/modules/storage/include/LiveSupport/Storage/StorageClientFactory.h index adca925aa..6783bd74b 100644 --- a/livesupport/modules/storage/include/LiveSupport/Storage/StorageClientFactory.h +++ b/livesupport/modules/storage/include/LiveSupport/Storage/StorageClientFactory.h @@ -21,8 +21,8 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Author : $Author: maroy $ - Version : $Revision: 1.3 $ + Author : $Author: fgerlits $ + Version : $Revision: 1.4 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/storage/include/LiveSupport/Storage/StorageClientFactory.h,v $ ------------------------------------------------------------------------------*/ @@ -61,12 +61,12 @@ using namespace LiveSupport::Core; /* =============================================================== data types */ /** - * The factory to create appropriate StorageClient objects. + * The factory to create StorageClientInterface objects. * * This object has to be configured with an XML configuration element * called storageClientFactory. This element contains a child element * specifying and configuring the kind of StorageClient that the - * factory builds. Currently on the TestStorageClient is supported. + * factory builds. Currently only the TestStorageClient is supported. * * A storageClientFactory configuration element may look like the following: * @@ -87,8 +87,8 @@ using namespace LiveSupport::Core; * <!ELEMENT storageClientFactory (testStorage) > * * - * @author $Author: maroy $ - * @version $Revision: 1.3 $ + * @author $Author: fgerlits $ + * @version $Revision: 1.4 $ * @see TestStorageClient */ class StorageClientFactory : diff --git a/livesupport/modules/storage/src/TestStorageClient.cxx b/livesupport/modules/storage/src/TestStorageClient.cxx index a9318decb..f7bd2845d 100644 --- a/livesupport/modules/storage/src/TestStorageClient.cxx +++ b/livesupport/modules/storage/src/TestStorageClient.cxx @@ -22,7 +22,7 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.17 $ + Version : $Revision: 1.18 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/storage/src/TestStorageClient.cxx,v $ ------------------------------------------------------------------------------*/ @@ -270,7 +270,7 @@ TestStorageClient :: acquirePlaylist(Ptr::Ref sessionId, std::stringstream fileName; fileName << localTempStorage << newPlaylist->getId()->getId() - << "#" << std::rand() << ".smil"; + << "-" << std::rand() << ".smil"; smilDocument->write_to_file(fileName.str(), "UTF-8"); diff --git a/livesupport/modules/storage/src/TestStorageClient.h b/livesupport/modules/storage/src/TestStorageClient.h index c6ce3b553..a48639751 100644 --- a/livesupport/modules/storage/src/TestStorageClient.h +++ b/livesupport/modules/storage/src/TestStorageClient.h @@ -22,7 +22,7 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.15 $ + Version : $Revision: 1.16 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/storage/src/TestStorageClient.h,v $ ------------------------------------------------------------------------------*/ @@ -67,8 +67,30 @@ using namespace LiveSupport::Core; /** * A dummy storage client, only used for test purposes. * + * This object has to be configured with an XML configuration element + * called testStorage. This may look like the following: + * + *

+ *  <testStorage tempFiles="file:///tmp/tempPlaylist" >
+ *      <playlist> ... </playlist>
+ *      ...
+ *      <audioClip> ... </audioClip>
+ *      ...
+ *  </testStorage>
+ *  
+ * + * For detais of the playlist and audioClip elements, see the documentation + * for the Core::Playlist and Core::AudioClip classes. + * + * The DTD for the above element is: + * + *

+ *  <!ELEMENT testStorage (playlist*, audioClip*) >
+ *  <!ATTLIST testStorage tempFiles CDATA       #REQUIRED >
+ *  
+ * * @author $Author: fgerlits $ - * @version $Revision: 1.15 $ + * @version $Revision: 1.16 $ */ class TestStorageClient : virtual public Configurable, diff --git a/livesupport/products/scheduler/etc/authenticationClient.xml b/livesupport/products/scheduler/etc/authenticationClient.xml index ac5d17096..27d0c9d5e 100644 --- a/livesupport/products/scheduler/etc/authenticationClient.xml +++ b/livesupport/products/scheduler/etc/authenticationClient.xml @@ -1,8 +1,7 @@ + @@ -10,20 +9,9 @@ - - - - - - - ]> - - -