OpenLexocad  28.0
PropertyLinkBaseBase.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <Core/Property.h>
4 
5 namespace Core
6 {
7 class LX_CORE_EXPORT PropertyLinkBaseBase : public Property
8 {
10 
11 public:
12  virtual bool removeLink(DocObject*) = 0;
13  virtual bool addLink(DocObject*) = 0;
14 
17  void onAddLinks(const std::list<Core::DocObject*>& linkList);
18  void onRemoveLinks(const std::list<Core::DocObject*>& linkList);
19  void onAddLinks(const std::unordered_set<Core::DocObject*>& linkSet);
20  void onRemoveLinks(const std::unordered_set<Core::DocObject*>& linkSet);
21 
24  void onAddBackLinks(const std::list<Core::DocObject*>& linkList);
25  void onRemoveBackLinks(const std::list<Core::DocObject*>& linkList);
26  void onAddBackLinks(const std::unordered_set<Core::DocObject*>& linkSet);
27  void onRemoveBackLinks(const std::unordered_set<Core::DocObject*>& linkSet);
28 
29  virtual std::vector<Core::DocObject*> getLinks() = 0;
30 };
31 } // namespace Core
Property.h
Core::DocObject
Definition: DocObject.h:54
Core
Definition: Base.h:5
Core::Property
Definition: Property.h:72
TYPESYSTEM_HEADER
#define TYPESYSTEM_HEADER()
define for subclassing Base::BaseClass
Definition: Base.h:12