Remove dynamic exceptions
[anna.git] / source / ldap / Session.cpp
index 4fbfec1..1d73e84 100644 (file)
@@ -1,37 +1,9 @@
-// ANNA - Anna is Not Nothingness Anymore
-//
-// (c) Copyright 2005-2014 Eduardo Ramos Testillano & Francisco Ruiz Rayo
-//
-// http://redmine.teslayout.com/projects/anna-suite
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions
-// are met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     *  Neither the name of the copyright holder nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Authors: eduardo.ramos.testillano@gmail.com
-//          cisco.tierra@gmail.com
+// ANNA - Anna is Not Nothingness Anymore                                                         //
+//                                                                                                //
+// (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo                         //
+//                                                                                                //
+// See project site at http://redmine.teslayout.com/projects/anna-suite                           //
+// See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE //
 
 
 #include <time.h>
@@ -84,7 +56,7 @@ Session::Session() :
 // Se invoca desde el ldap::Engine
 //---------------------------------------------------------------------------------
 void Session::bind()
-throw(RuntimeException) {
+noexcept(false) {
   if(a_state != State::Closed)
     return;
 
@@ -97,7 +69,6 @@ throw(RuntimeException) {
   LDAP* handle = NULL;
   int aux;
   ResultCode resultCode;
-  Response* response(NULL);
 
   try {
     resultCode = ldap_initialize(&handle, a_url.c_str());
@@ -167,7 +138,7 @@ throw(RuntimeException) {
 }
 
 const Response* Session::send(const Request* request)
-throw(RuntimeException) {
+noexcept(false) {
   if(a_state == State::Closed) {
     string msg(asString());
     msg += " | Session::bind must be called";
@@ -203,7 +174,7 @@ throw(RuntimeException) {
 }
 
 void Session::unbind()
-throw(RuntimeException) {
+noexcept(false) {
   if(a_state == State::Closed)
     return;
 
@@ -218,7 +189,7 @@ throw(RuntimeException) {
 // a la ldap::Session
 //------------------------------------------------------------------------------------------
 void Session::apply()
-throw(RuntimeException) {
+noexcept(false) {
   LOGMETHOD(TraceMethod traceMethod("ldap::Session", "apply", ANNA_FILE_LOCATION));
   LDAP* handle = (LDAP*) a_ldap;
   LDAPMessage* hmessage(NULL);
@@ -292,7 +263,7 @@ throw(RuntimeException) {
  * invocado por el comm::Communicator::detach.
  */
 void Session::finalize()
-throw() {
+{
   LDAP* handle = (LDAP*) a_ldap;
   a_state = State::Closed;
 
@@ -327,7 +298,7 @@ throw() {
 }
 
 void Session::receiveBind(const IdMessage idMessage, Session::HandleMessage _hmessage)
-throw(RuntimeException) {
+noexcept(false) {
   LDAP* handle = (LDAP*) a_ldap;
   LDAPMessage* hmessage = (LDAPMessage*) _hmessage;
 
@@ -387,7 +358,7 @@ throw(RuntimeException) {
 // (1) Necesario para detectar el final de los atributos
 //------------------------------------------------------------------------------------------------
 void Session::receiveEntry(const IdMessage idMessage, Session::HandleMessage _hmessage)
-throw(RuntimeException) {
+noexcept(false) {
   LDAP* handle = (LDAP*) a_ldap;
   LDAPMessage* hmessage = (LDAPMessage*) _hmessage;
   BerElement *ber(NULL);
@@ -447,7 +418,7 @@ throw(RuntimeException) {
 }
 
 void Session::receiveReference(const IdMessage idMessage, Session::HandleMessage _hmessage)
-throw(RuntimeException) {
+noexcept(false) {
   LDAP* handle = (LDAP*) a_ldap;
   LDAPMessage* hmessage = (LDAPMessage*) _hmessage;
   char **values(NULL);
@@ -476,7 +447,7 @@ throw(RuntimeException) {
 }
 
 void Session::receiveResult(const IdMessage idMessage, Session::HandleMessage _hmessage)
-throw(RuntimeException) {
+noexcept(false) {
   LDAP* handle = (LDAP*) a_ldap;
   LDAPMessage* hmessage = (LDAPMessage*) _hmessage;
   Response* response = response_find(idMessage);
@@ -490,7 +461,6 @@ throw(RuntimeException) {
   int error = LDAP_SUCCESS;
   char **values(NULL);
   ResultCode resultCode;
-  bool isOk = true;
   response->cancelTimer();
   const int ldap_result = ldap_parse_result(handle, hmessage, &error, NULL, NULL, &values, NULL, 0);
   resultCode.setValue(ldap_result, error);
@@ -528,7 +498,7 @@ throw(RuntimeException) {
 // Se invoca desde ldap::timer::Prototype::expire
 //-------------------------------------------------------------------------
 void Session::expireResponse(ldap::Response* response)
-throw() {
+{
   LDAP* handle = (LDAP*) a_ldap;
   ResultCode resultCode;
   /*
@@ -565,7 +535,7 @@ throw() {
 }
 
 void Session::response_add(Response* response)
-throw() {
+{
   a_responses.add(response);
   response->setSession(this);
 
@@ -577,13 +547,13 @@ throw() {
 }
 
 void Session::response_erase(Response* response)
-throw() {
+{
   a_responses.erase(response);
   Response::release(response);
 }
 
 Response* Session::response_find(const IdMessage idMessage)
-throw(RuntimeException) {
+noexcept(false) {
   ldap::Response* result = a_responses.find(idMessage);
 
   if(result == NULL) {
@@ -597,7 +567,7 @@ throw(RuntimeException) {
 }
 
 std::string Session::asString() const
-throw() {
+{
   string result("ldap::Session { ");
   result += comm::Handler::asString();
   result += " | State: ";
@@ -620,7 +590,7 @@ throw() {
 }
 
 xml::Node* Session::asXML(xml::Node* parent) const
-throw() {
+{
   parent = comm::Handler::asXML(parent);
   xml::Node* result = parent->createChild("ldap.Session");
   result->createAttribute("State", asText(a_state));
@@ -635,7 +605,6 @@ throw() {
     result->createChild("NetworkTimeout")->createAttribute("Value", getNetworkTimeout());
 
   xml::Node* requests = result->createChild("ldap.Requests");
-  const Response* response;
   const Request* request;
 
   for(const_response_iterator ii = response_begin(), maxii = response_end(); ii != maxii; ii ++) {
@@ -647,7 +616,7 @@ throw() {
 }
 
 int Session::getDangerousFileDescriptor() const
-throw(RuntimeException) {
+noexcept(false) {
   ResultCode resultCode;
   int result = -1;
   resultCode = ldap_get_option((LDAP*) a_ldap, LDAP_OPT_DESC, &result);
@@ -664,12 +633,12 @@ throw(RuntimeException) {
 }
 
 const char* Session::asText(const State::_v state)
-throw() {
+{
   static const char* states [] = { "Closed", "WaitingBind", "Bound" };
   return states [state];
 }
 
 IdMessage Session::SortById::value(const Response* response)
-throw() {
+{
   return response->getIdMessage();
 }