00001 /************************************************************************ 00002 * EPP RTK C++ 00003 * Copyright (C) 2001 Global Name Registry 00004 * 00005 * This library is free software; you can redistribute it and/or modify it 00006 * under the terms of the GNU Lesser General Public License as published 00007 * by the Free Software Foundation; either version 2.1 of the License, or 00008 * (at your option) any later version. 00009 * 00010 * This library is distributed in the hope that it will be useful, but 00011 * WITHOUT ANY WARRANTY; without even the implied warranty of 00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 * Lesser General Public License for more details. 00014 * 00015 * You should have received a copy of the GNU Lesser General Public 00016 * License along with this library; if not, write to the Free Software 00017 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00018 * 00019 * Contact information: epprtk@gnr.com 00020 * 00021 * EPP RTK 00022 * GNR Ltd. 00023 * 125 High Holborn 00024 * London WC1V 6QA 00025 * United Kingdom 00026 ************************************************************************/ 00027 00028 #ifndef __EPP_SESSION_H 00029 #define __EPP_SESSION_H 00030 00031 #include "data/epp_eppdata.h" 00032 #include "data/epp_Greeting.h" 00033 #include "config.h" 00034 #include "epp_Action.h" 00035 00036 namespace eppobject { namespace epp { 00037 00038 class epp_Session : public EPPTransport { 00039 00040 public: 00041 epp_Session() : EPPTransport() {}; 00042 virtual ~epp_Session() {}; 00043 00044 // This function changes the input epp_Action object, 00045 // and also returns it to be consistent with the IDL. 00046 epp_Action_ref processAction(epp_Action_ref request); 00047 00048 eppobject::epp::epp_string processXML(const eppobject::epp::epp_string & request_xml); 00049 00050 epp_Greeting_ref connectAndGetGreeting(); 00051 00052 static const epp_short EPP_COMMAND_COMPLETED_SUCCESSFULLY = 1000; 00053 static const epp_short EPP_COMMAND_COMPLETED_SUCCESSFULLY_NO_MESSAGES = 1300; 00054 static const epp_short EPP_COMMAND_COMPLETED_SUCCESSFULLY_MESSAGE_PRESENT = 1301; 00055 static const epp_short EPP_COMMAND_COMPLETED_SUCCESSFULLY_NOTHING_DONE = 1302; 00056 static const epp_short EPP_COMMAND_COMPLETED_SUCCESSFULLY_ENDING_SESSION = 1500; 00057 00058 static const epp_short EPP_UNKNOWN_COMMAND = 2000; 00059 static const epp_short EPP_COMMAND_SYNTAX_ERROR = 2001; 00060 static const epp_short EPP_COMMAND_USE_ERROR = 2002; 00061 static const epp_short EPP_REQUIRED_PARAMETER_MISSING = 2003; 00062 static const epp_short EPP_PARAMETER_VALUE_RANGE_ERROR = 2004; 00063 static const epp_short EPP_PARAMETER_VALUE_SYNTAX_ERROR = 2005; 00064 00065 static const epp_short EPP_UNIMPLEMENTED_PROTOCOL_VERSION = 2100; 00066 static const epp_short EPP_UNIMPLEMENTED_COMMAND = 2101; 00067 static const epp_short EPP_UNIMPLEMENTED_OPTION = 2102; 00068 static const epp_short EPP_UNIMPLEMENTED_EXTENSION = 2103; 00069 static const epp_short EPP_BILLING_FAILURE = 2104; 00070 static const epp_short EPP_OBJECT_IS_NOT_ELIGIBLE_FOR_RENEWAL = 2105; 00071 static const epp_short EPP_OBJECT_IS_NOT_ELIGIBLE_FOR_TRANSFER = 2106; 00072 00073 static const epp_short EPP_AUTHENTICATION_FAILURE = 2200; 00074 static const epp_short EPP_AUTHORIZATION_FAILURE = 2201; 00075 static const epp_short EPP_INVALID_AUTHORIZATION_IDENTIFIER = 2202; 00076 static const epp_short EPP_OBJECT_PENDING_TRANSFER = 2300; 00077 static const epp_short EPP_OBJECT_NOT_PENDING_TRANSFER = 2301; 00078 static const epp_short EPP_OBJECT_EXISTS = 2302; 00079 static const epp_short EPP_OBJECT_DOES_NOT_EXIST = 2303; 00080 static const epp_short EPP_OBJECT_STATUS_PROHIBITS_OPERATION = 2304; 00081 static const epp_short EPP_OBJECT_ASSOCIATION_PROHIBITS_OPERATION = 2305; 00082 static const epp_short EPP_PARAMETER_VALUE_POLICY_ERROR = 2306; 00083 static const epp_short EPP_UNIMPLEMENTED_OBJECT_SERVICE = 2307; 00084 static const epp_short EPP_DATA_MANAGEMENT_POLICY_VIOLATION = 2308; 00085 static const epp_short EPP_COMMAND_FAILED = 2400; 00086 static const epp_short EPP_COMMAND_FAILED_SERVER_ENDING_SESSION = 2500; 00087 static const epp_short EPP_TIMEOUT_SERVER_ENDING_SESSION = 2501; 00088 static const epp_short EPP_SESSION_LIMIT_EXCEEDED_SERVER_CLOSING_CONNECTION = 2502; 00089 static const epp_short RTK_COMMUNICATIONS_FAILURE = 2600; 00090 static const epp_short RTK_UNEXPECTED_SERVER_DISCONNECT = 2601; 00091 00092 }; 00093 00094 typedef refcnt_ptr<epp_Session> epp_Session_ref; 00095 00096 }}; 00097 00098 #endif