00001 /* 00002 * Copyright (C) 2003-2009 Olivier Boudeville 00003 * 00004 * This file is part of the Ceylan library. 00005 * 00006 * The Ceylan library is free software: you can redistribute it and/or modify 00007 * it under the terms of either the GNU Lesser General Public License or 00008 * the GNU General Public License, as they are published by the Free Software 00009 * Foundation, either version 3 of these Licenses, or (at your option) 00010 * any later version. 00011 * 00012 * The Ceylan library is distributed in the hope that it will be useful, 00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 * GNU Lesser General Public License and the GNU General Public License 00016 * for more details. 00017 * 00018 * You should have received a copy of the GNU Lesser General Public 00019 * License and the GNU General Public License along with the Ceylan library. 00020 * If not, see <http://www.gnu.org/licenses/>. 00021 * 00022 * Author: Olivier Boudeville (olivier.boudeville@esperide.com) 00023 * 00024 */ 00025 00026 00027 #ifndef CEYLAN_PROTOCOL_ENDPOINT_H_ 00028 #define CEYLAN_PROTOCOL_ENDPOINT_H_ 00029 00030 00031 #include "CeylanTextDisplayable.h" // for inheritance 00032 #include "CeylanMiddleware.h" // for MiddlewareException 00033 00034 00035 #include <string> 00036 00037 00038 00039 namespace Ceylan 00040 { 00041 00042 00043 00044 namespace Middleware 00045 { 00046 00047 00048 00053 class CEYLAN_DLL ProtocolException : public MiddlewareException 00054 { 00055 00056 public: 00057 00058 00059 ProtocolException( const std::string & message ) ; 00060 00061 virtual ~ProtocolException() throw() ; 00062 00063 00064 } ; 00065 00066 00067 00068 00074 class Marshaller ; 00075 00076 00077 00078 00090 class CEYLAN_DLL ProtocolEndpoint: public TextDisplayable 00091 { 00092 00093 00094 public: 00095 00096 00097 00111 ProtocolEndpoint( Marshaller & marshaller ) ; 00112 00113 00115 virtual ~ProtocolEndpoint() throw() ; 00116 00117 00118 00131 virtual const std::string toString( 00132 Ceylan::VerbosityLevels level = Ceylan::high ) const ; 00133 00134 00135 00136 00137 protected: 00138 00139 00140 00146 Marshaller * _marshaller ; 00147 00148 00149 00150 00151 private: 00152 00153 00154 00163 ProtocolEndpoint( const ProtocolEndpoint & source ) ; 00164 00165 00174 ProtocolEndpoint & operator = ( 00175 const ProtocolEndpoint & source ) ; 00176 00177 00178 } ; 00179 00180 } 00181 00182 } 00183 00184 00185 00186 #endif // CEYLAN_PROTOCOL_ENDPOINT_H_ 00187