X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FEvents%2FEvents_LongOp.cpp;h=35558de6a5b75deba4f6e81586905b23e9ccc0c0;hb=aeca03e919a402327655e3f9c133985d9223b873;hp=7cc46c3cda6ac9da4f7355eaabfbaa1667a1a12c;hpb=c236c89d25c35cbb6e7b9ef3777ebd728017c4f3;p=modules%2Fshaper.git diff --git a/src/Events/Events_LongOp.cpp b/src/Events/Events_LongOp.cpp index 7cc46c3cd..35558de6a 100644 --- a/src/Events/Events_LongOp.cpp +++ b/src/Events/Events_LongOp.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2014-20xx CEA/DEN, EDF R&D + // File: Events_LongOp.cpp // Created: 29 Jul 2014 // Author: Mikhail PONIKAROV @@ -10,7 +12,7 @@ std::map MY_SENDERS; Events_LongOp::Events_LongOp(void* theSender) - : Events_Message(Events_LongOp::errorID(), theSender) + : Events_Message(Events_LongOp::eventID(), theSender) { } @@ -18,7 +20,7 @@ Events_LongOp::~Events_LongOp() { } -Events_ID Events_LongOp::errorID() +Events_ID Events_LongOp::eventID() { Events_Loop* aLoop = Events_Loop::loop(); return aLoop->eventByName("LongOperation"); @@ -29,12 +31,13 @@ void Events_LongOp::start(void* theSender) bool toSend = MY_SENDERS.empty(); if (MY_SENDERS.find(theSender) == MY_SENDERS.end()) MY_SENDERS[theSender] = 1; - else + else MY_SENDERS[theSender]++; if (toSend) { - Events_LongOp anError(theSender); - Events_Loop::loop()->send(anError); + std::shared_ptr aNewOne = + std::shared_ptr(new Events_LongOp(theSender)); + Events_Loop::loop()->send(aNewOne); } } @@ -42,12 +45,15 @@ void Events_LongOp::end(void* theSender) { if (MY_SENDERS.find(theSender) != MY_SENDERS.end()) { int aCount = MY_SENDERS[theSender]; - if (aCount <= 1) MY_SENDERS.erase(theSender); - else MY_SENDERS[theSender] = aCount - 1; + if (aCount <= 1) + MY_SENDERS.erase(theSender); + else + MY_SENDERS[theSender] = aCount - 1; } if (MY_SENDERS.empty()) { - Events_LongOp anError(theSender); - Events_Loop::loop()->send(anError); + std::shared_ptr aNewOne = + std::shared_ptr(new Events_LongOp(theSender)); + Events_Loop::loop()->send(aNewOne); } }