X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModel%2FModel_Events.h;h=6c492c1ca3a3f1eff6ac8d4fe5e3862e7bfcea38;hb=6268ce56824c1df106da799af34f4575f247061a;hp=a4912648dd62a99db9876a444920b6653362aacf;hpb=421560a1b77974341c08898dd4eb32c283584a22;p=modules%2Fshaper.git diff --git a/src/Model/Model_Events.h b/src/Model/Model_Events.h index a4912648d..6c492c1ca 100644 --- a/src/Model/Model_Events.h +++ b/src/Model/Model_Events.h @@ -1,73 +1,83 @@ +// Copyright (C) 2014-20xx CEA/DEN, EDF R&D + // File: Model_Events.h // Created: 10 Apr 2014 // Author: Mikhail PONIKAROV -#ifndef Model_Events_HeaderFile -#define Model_Events_HeaderFile +#ifndef Model_Events_H_ +#define Model_Events_H_ #include #include +#include + /// Allovs to create ModelAPI messages -class Model_EventCreator : public ModelAPI_EventCreator { -public: +class Model_EventCreator : public ModelAPI_EventCreator +{ + public: /// creates created, updated or moved messages and sends to the loop - virtual void sendUpdated( - const FeaturePtr& theFeature, const Events_ID& theEvent, const bool isGroupped = true) const; + virtual void sendUpdated(const ObjectPtr& theObject, const Events_ID& theEvent, + const bool isGroupped = true) const; /// creates deleted message and sends to the loop - virtual void sendDeleted( - const boost::shared_ptr& theDoc, const std::string& theGroup) const; + virtual void sendDeleted(const std::shared_ptr& theDoc, + const std::string& theGroup) const; /// must be one per application, the constructor for internal usage only Model_EventCreator(); }; /// Message that feature was changed (used for Object Browser update): moved, updated and deleted -class Model_FeatureUpdatedMessage : public ModelAPI_FeatureUpdatedMessage { - std::set myFeatures; ///< which feature is changed +class Model_ObjectUpdatedMessage : public ModelAPI_ObjectUpdatedMessage +{ + std::set myObjects; ///< which feature is changed /// Sender is not important, all information is located in the feature. /// Use ModelAPI for creation of this event. Used for creation, movement and edition events. - Model_FeatureUpdatedMessage( - const FeaturePtr& theFeature, - const Events_ID& theEvent); + Model_ObjectUpdatedMessage(const ObjectPtr& theObject, const Events_ID& theEvent); friend class Model_EventCreator; -public: + public: /// Returns the feature that has been updated - virtual std::set features() const; + virtual const std::set& objects() const; //! Creates a new empty group (to store it in the loop before flush) - virtual Events_MessageGroup* newEmpty(); + virtual std::shared_ptr newEmpty(); //! Allows to join the given message with the current one - virtual void Join(Events_MessageGroup& theJoined); + virtual void Join(const std::shared_ptr& theJoined); }; /// Message that feature was deleted (used for Object Browser update) -class Model_FeatureDeletedMessage : public ModelAPI_FeatureDeletedMessage { - boost::shared_ptr myDoc; ///< document owner of the feature - std::set myGroups; ///< group identifiers that contained the deleted feature +class Model_ObjectDeletedMessage : public ModelAPI_ObjectDeletedMessage +{ + std::shared_ptr myDoc; ///< document owner of the feature + std::set myGroups; ///< group identifiers that contained the deleted feature /// Use ModelAPI for creation of this event. - Model_FeatureDeletedMessage( - const boost::shared_ptr& theDoc, const std::string& theGroup); + Model_ObjectDeletedMessage(const std::shared_ptr& theDoc, + const std::string& theGroup); friend class Model_EventCreator; -public: + public: /// Returns the feature that has been updated - virtual boost::shared_ptr document() const {return myDoc;} + virtual std::shared_ptr document() const + { + return myDoc; + } /// Returns the group where the feature was deleted - virtual const std::set& groups() const {return myGroups;} - - virtual Events_MessageGroup* newEmpty(); + virtual const std::set& groups() const + { + return myGroups; + } + virtual std::shared_ptr newEmpty(); virtual const Events_ID messageId(); - virtual void Join(Events_MessageGroup& theJoined); + virtual void Join(const std::shared_ptr& theJoined); }; #endif