X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=example%2Fhttp%2Fclient%2Fmain.cpp;h=c2ea241e37a7268ac8f16fe9ba10b85e51540102;hb=5a6cba5fde2b2f538a7515f8293cc0a8d9589dfa;hp=6ed8f5bf2361c1275c06d634793a5dd9f2c057cd;hpb=39033fd99e58e994a5e98c1060dcc79e0d81f9c9;p=anna.git diff --git a/example/http/client/main.cpp b/example/http/client/main.cpp index 6ed8f5b..c2ea241 100644 --- a/example/http/client/main.cpp +++ b/example/http/client/main.cpp @@ -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 // /** @@ -63,7 +35,7 @@ #include #include -class Sender : public timex::Clock { +class Sender : public anna::timex::Clock { public: Sender () : Clock ("Sender", (Millisecond)1000), a_messageBySecond (0), @@ -75,9 +47,9 @@ public: a_httpRequest.setURI ("HTTPKClient"); } - void setMessageBySecond (const int messageBySecond) throw () { a_messageBySecond = messageBySecond; } + void setMessageBySecond (const int messageBySecond) { a_messageBySecond = messageBySecond; } - int getTxMessageCounter () const throw () { return a_txMessageCounter; } + int getTxMessageCounter () const { return a_txMessageCounter; } private: int a_messageBySecond; @@ -87,7 +59,7 @@ private: http::Request a_httpRequest; test::Request a_testRequest; - bool tick () throw (RuntimeException); + bool tick () noexcept(false); }; class MyHandler : public http::Handler { @@ -98,31 +70,33 @@ private: http::Response a_httpResponse; test::Response a_testResponse; - void evRequest (ClientSocket&, const http::Request&) throw (RuntimeException) {;} - void evResponse (ClientSocket&, const http::Response&) throw (RuntimeException); + void evRequest (ClientSocket&, const http::Request&) noexcept(false) {;} + void evResponse (ClientSocket&, const http::Response&) noexcept(false); - static bool isOk (const test::Response& response) throw (); + static bool isOk (const test::Response& response) ; }; class MyCommunicator : public Communicator { public: MyCommunicator () : Communicator (), a_avgResponseTime (0), a_rxMessageCounter (0) {;} - void count (const int delay) throw (RuntimeException); + void count (const int delay) noexcept(false); private: + using Communicator::eventBreakConnection; + int a_avgResponseTime; int a_rxMessageCounter; MyHandler a_httpHandler; - void eventReceiveMessage (ClientSocket&, const Message&) throw (RuntimeException); + void eventReceiveMessage (ClientSocket&, const Message&) noexcept(false); - void eventBreakConnection (const ClientSocket&) throw (); + void eventBreakConnection (const ClientSocket&) ; - void eventBreakConnection (Server* server) throw () { + void eventBreakConnection (Server* server) { comm::Communicator::eventBreakConnection (server); } - void eventBreakConnection (const Service* service) throw () { + void eventBreakConnection (const Service* service) { comm::Communicator::eventBreakConnection (service); } }; @@ -131,17 +105,17 @@ class HeavyClient : public anna::comm::Application { public: HeavyClient (); - Server* getServer () const throw () { return a_server; } - const Sender* getSender () const throw () { return &a_sender; } + Server* getServer () const { return a_server; } + const Sender* getSender () const { return &a_sender; } private: MyCommunicator a_communicator; - timex::Engine a_timeController; + anna::timex::Engine a_timeController; Sender a_sender; Server* a_server; - void initialize () throw (RuntimeException); - void run () throw (RuntimeException); + void initialize () noexcept(false); + void run () noexcept(false); }; using namespace std; @@ -186,7 +160,7 @@ HeavyClient::HeavyClient () : } void HeavyClient::initialize () - throw (RuntimeException) + noexcept(false) { CommandLine& cl (CommandLine::instantiate ()); @@ -200,7 +174,7 @@ void HeavyClient::initialize () } void HeavyClient::run () - throw (RuntimeException) + noexcept(false) { a_timeController.activate (a_sender); @@ -208,7 +182,7 @@ void HeavyClient::run () } void MyCommunicator::eventReceiveMessage (ClientSocket& clientSocket, const Message& message) - throw (RuntimeException) + noexcept(false) { LOGMETHOD (TraceMethod tm ("MyCommunicator", "eventReceiveMessage", ANNA_FILE_LOCATION)); @@ -219,7 +193,7 @@ void MyCommunicator::eventReceiveMessage (ClientSocket& clientSocket, const Mess } void MyCommunicator::count (const int delay) - throw (RuntimeException) + noexcept(false) { Guard guard (this, "MyCommunicator::eventReceiveMessage"); @@ -228,7 +202,7 @@ void MyCommunicator::count (const int delay) } void MyCommunicator::eventBreakConnection (const ClientSocket& clientSocket) - throw () + { if (a_rxMessageCounter == 0) return; @@ -249,7 +223,7 @@ void MyCommunicator::eventBreakConnection (const ClientSocket& clientSocket) } bool Sender::tick () - throw (RuntimeException) + noexcept(false) { Server* server = static_cast (anna::app::functions::getApp ()).getServer (); Communicator* communicator = anna::app::functions::component (ANNA_FILE_LOCATION); @@ -282,7 +256,7 @@ bool Sender::tick () } void MyHandler::evResponse (ClientSocket& clientSocket, const http::Response& response) - throw (RuntimeException) + noexcept(false) { if (response.getStatusCode () == 200) { a_testResponse.decode (response.getBody ()); @@ -317,7 +291,7 @@ void MyHandler::evResponse (ClientSocket& clientSocket, const http::Response& re } bool MyHandler::isOk (const test::Response& response) - throw () + { if (response.op != '+' && response.op != '-' && response.op != '*' && response.op != '/') return false;