X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=example%2Fcomm%2Fclient%2Fmain.cpp;h=c9663ece9a7247f83c15bd01fc105a97f1f2f4c0;hb=5a6cba5fde2b2f538a7515f8293cc0a8d9589dfa;hp=3b593916f979d6817bc8f88992cc04294bd4c8d8;hpb=4e12ac57e93c052f716a6305ad8fc099c45899d1;p=anna.git diff --git a/example/comm/client/main.cpp b/example/comm/client/main.cpp index 3b59391..c9663ec 100644 --- a/example/comm/client/main.cpp +++ b/example/comm/client/main.cpp @@ -1,37 +1,9 @@ -// ANNA - Anna is Not 'N' Anymore -// -// (c) Copyright 2005-2014 Eduardo Ramos Testillano & Francisco Ruiz Rayo -// -// https://bitbucket.org/testillano/anna -// -// 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 Google Inc. 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 // /** @@ -58,7 +30,7 @@ #include #include -class Sender : public timex::Clock { +class Sender : public anna::timex::Clock { public: Sender () : Clock ("Sender", (Millisecond)1000), a_messageBySecond (0), @@ -68,9 +40,9 @@ public: a_txMessageCounter (0) {;} - 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; @@ -79,7 +51,7 @@ private: int a_txMessageCounter; ThreadData a_requests; - bool tick () throw (RuntimeException); + bool tick () noexcept(false); }; class MyCommunicator : public Communicator { @@ -92,35 +64,39 @@ private: int a_rxMessageCounter; void eventReceiveMessage (ClientSocket &, const Message&) - throw (RuntimeException); + noexcept(false); - void eventBreakConnection (const ClientSocket&) throw (); +protected: - void eventBreakConnection (Server* server) throw () { + using Communicator::eventBreakConnection; + + void eventBreakConnection (const ClientSocket&) ; + + void eventBreakConnection (Server* server) { comm::Communicator::eventBreakConnection (server); } - void eventBreakConnection (const Service* service) throw () { + void eventBreakConnection (const Service* service) { comm::Communicator::eventBreakConnection (service); } - static bool isOk (const test::Response& response) throw (); + static bool isOk (const test::Response& response) ; }; 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; @@ -165,7 +141,7 @@ HeavyClient::HeavyClient () : } void HeavyClient::initialize () - throw (RuntimeException) + noexcept(false) { CommandLine& cl (CommandLine::instantiate ()); @@ -179,7 +155,7 @@ void HeavyClient::initialize () } void HeavyClient::run () - throw (RuntimeException) + noexcept(false) { a_timeController.activate (a_sender); @@ -187,7 +163,7 @@ void HeavyClient::run () } void MyCommunicator::eventReceiveMessage (ClientSocket&, const Message& message) - throw (RuntimeException) + noexcept(false) { test::Response& response = a_responses.get (); response.decode (message.getBody ()); @@ -220,7 +196,7 @@ void MyCommunicator::eventReceiveMessage (ClientSocket&, const Message& message) } void MyCommunicator::eventBreakConnection (const ClientSocket& clientSocket) - throw () + { if (a_rxMessageCounter == 0) return; @@ -241,7 +217,7 @@ void MyCommunicator::eventBreakConnection (const ClientSocket& clientSocket) } bool MyCommunicator::isOk (const test::Response& response) - throw () + { if (response.op != '+' && response.op != '-' && response.op != '*' && response.op != '/') return false; @@ -267,7 +243,7 @@ bool MyCommunicator::isOk (const test::Response& response) } 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);