]> SALOME platform Git repositories - modules/shaper.git/blob - src/Model/Model_Events.cpp
Salome HOME
Implementation of mechanism of grouping of messages
[modules/shaper.git] / src / Model / Model_Events.cpp
1 // File:        Model_Events.cxx
2 // Created:     10 Apr 2014
3 // Author:      Mikhail PONIKAROV
4
5 #include <Model_Events.h>
6 #include <Events_Loop.h>
7
8 // UPDATED methods
9 Events_MessageGroup* Model_FeatureUpdatedMessage::newEmpty() {
10   boost::shared_ptr<ModelAPI_Feature> anEmptyFeature;
11   return new Model_FeatureUpdatedMessage(anEmptyFeature, eventID());
12 }
13
14 void Model_FeatureUpdatedMessage::Join(Events_MessageGroup& theJoined)
15 {
16   Model_FeatureUpdatedMessage* aJoined = dynamic_cast<Model_FeatureUpdatedMessage*>(&theJoined);
17   std::set<boost::shared_ptr<ModelAPI_Feature> >::iterator aFIter = aJoined->myFeatures.begin();
18   for(; aFIter != aJoined->myFeatures.end(); aFIter++) {
19     myFeatures.insert(*aFIter);
20   }
21 }
22
23 // DELETED methods
24 Events_MessageGroup* Model_FeatureDeletedMessage::newEmpty() {
25   return new Model_FeatureDeletedMessage(myDoc, "");
26 }
27
28 Model_FeatureDeletedMessage::Model_FeatureDeletedMessage(
29   const boost::shared_ptr<ModelAPI_Document>& theDoc, const std::string& theGroup)
30   : Events_MessageGroup(messageId(), 0), myDoc(theDoc)
31
32 {
33   if (!theGroup.empty())
34     myGroups.insert(theGroup);
35 }
36
37 const Events_ID Model_FeatureDeletedMessage::messageId()
38 {
39   static Events_ID MY_ID = Events_Loop::eventByName(EVENT_FEATURE_DELETED);
40   return MY_ID;
41 }
42
43 void Model_FeatureDeletedMessage::Join(Events_MessageGroup& theJoined)
44 {
45   Model_FeatureDeletedMessage* aJoined = dynamic_cast<Model_FeatureDeletedMessage*>(&theJoined);
46   std::set<std::string>::iterator aGIter = aJoined->myGroups.begin();
47   for(; aGIter != aJoined->myGroups.end(); aGIter++) {
48     myGroups.insert(*aGIter);
49   }
50 }