From 4d58654feacb00bd13acce6c9ee5daa1b7468471 Mon Sep 17 00:00:00 2001 From: fgerlits Date: Mon, 22 Nov 2004 10:57:24 +0000 Subject: [PATCH] moved these over to Core because the StorageClientInterface depends on them --- .../Core/AuthenticationClientInterface.h | 108 +++++++++++++ .../core/include/LiveSupport/Core/SessionId.h | 144 ++++++++++++++++++ 2 files changed, 252 insertions(+) create mode 100644 livesupport/modules/core/include/LiveSupport/Core/AuthenticationClientInterface.h create mode 100644 livesupport/modules/core/include/LiveSupport/Core/SessionId.h diff --git a/livesupport/modules/core/include/LiveSupport/Core/AuthenticationClientInterface.h b/livesupport/modules/core/include/LiveSupport/Core/AuthenticationClientInterface.h new file mode 100644 index 000000000..046691925 --- /dev/null +++ b/livesupport/modules/core/include/LiveSupport/Core/AuthenticationClientInterface.h @@ -0,0 +1,108 @@ +/*------------------------------------------------------------------------------ + + 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/modules/core/include/LiveSupport/Core/Attic/AuthenticationClientInterface.h,v $ + +------------------------------------------------------------------------------*/ +#ifndef LiveSupport_Core_AuthenticationClientInterface_h +#define LiveSupport_Core_AuthenticationClientInterface_h + +#ifndef __cplusplus +#error This is a C++ include file +#endif + + +/* ============================================================ include files */ + +#ifdef HAVE_CONFIG_H +#include "configure.h" +#endif + +#include + +#include "LiveSupport/Core/Ptr.h" +#include "LiveSupport/Core/SessionId.h" + +namespace LiveSupport { +namespace Core { + +using namespace LiveSupport::Core; + + +/* ================================================================ constants */ + + +/* =================================================================== macros */ + + +/* =============================================================== data types */ + +/** + * An interface for authentication clients. + * + * @author $Author: fgerlits $ + * @version $Revision: 1.1 $ + */ +class AuthenticationClientInterface +{ + public: + /** + * Login to the authentication server. + * Returns a new session ID; in case of an error, returns a + * null pointer. + * + * @param login the login to the server + * @param password the password to the server + * @return the new session ID + */ + virtual Ptr::Ref + login(const std::string &login, const std::string &password) + throw () + = 0; + + /** + * Logout from the authentication server. + * + * @param sessionId the ID of the session to end + * @return true if logged out successfully, false if not + */ + virtual const bool + logout(Ptr::Ref sessionId) + throw () + = 0; +}; + + +/* ================================================= external data structures */ + + +/* ====================================================== function prototypes */ + + +} // namespace Core +} // namespace LiveSupport + +#endif // LiveSupport_Core_AuthenticationClientInterface_h + diff --git a/livesupport/modules/core/include/LiveSupport/Core/SessionId.h b/livesupport/modules/core/include/LiveSupport/Core/SessionId.h new file mode 100644 index 000000000..19dee3bda --- /dev/null +++ b/livesupport/modules/core/include/LiveSupport/Core/SessionId.h @@ -0,0 +1,144 @@ +/*------------------------------------------------------------------------------ + + 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/modules/core/include/LiveSupport/Core/SessionId.h,v $ + +------------------------------------------------------------------------------*/ +#ifndef LiveSupport_Core_SessionId_h +#define LiveSupport_Core_SessionId_h + +#ifndef __cplusplus +#error This is a C++ include file +#endif + + +/* ============================================================ include files */ + +#ifdef HAVE_CONFIG_H +#include "configure.h" +#endif + +namespace LiveSupport { +namespace Core { + +/* ================================================================ constants */ + + +/* =================================================================== macros */ + + +/* =============================================================== data types */ + +/** + * A class representing session identifiers. + * + * @author $Author: fgerlits $ + * @version $Revision: 1.1 $ + */ +class SessionId +{ + private: + /** + * The value of the session ID. + */ + std::string id; + + /** + * Default constructor. + */ + SessionId(void) throw () + { + } + + + public: + /** + * The type for the numeric value the session id is represented in. + */ + typedef std::string IdType; + + /** + * Constructor to create a SessionId with a specific value. + * TODO: remove this later, as this is for testing purposes only. + * + * @param id the value of the created id object. + */ + SessionId(const IdType id) throw () + { + this->id = id; + } + + /** + * Compare this is with an other one. + * + * @param otherId the other unqiue id to compare to. + * @return true if this an otherId have the same ID value, + * false otherwise. + */ + bool + operator==(const SessionId & otherId) const + throw () + { + return this->id == otherId.id; + } + + /** + * Compare this id with an other one. + * + * @param otherId the other session id to compare to. + * @return true if this id is smaller than the other one, + * false otherwise. + */ + bool + operator<(const SessionId & otherId) const + throw () + { + return this->id < otherId.id; + } + + /** + * Return the string value of this session ID. + * + * @return the string value of this id. + */ + const IdType + getId(void) const throw () + { + return id; + } +}; + + +/* ================================================= external data structures */ + + +/* ====================================================== function prototypes */ + + +} // namespace Core +} // namespace LiveSupport + +#endif // LiveSupport_Core_SessionId_h +