20 #ifndef __ABSTRACTPOINT_HXX__
21 #define __ABSTRACTPOINT_HXX__
57 bool amIGod() {
return getGodFather()==
nullptr; }
62 bool isSimplyLinkedBeforeAfter(
BlocPoint *sop);
63 bool isSimplyLinkedAfterNullBefore(
BlocPoint *sop);
64 bool isSimplyLinkedBeforeNullAfter(
BlocPoint *sop);
65 bool isNullBeforeNullAfter(
BlocPoint *sop);
73 static void TryAsNotSimpleCase(
AbstractPoint *father,
const std::vector<AbstractPoint *>& ptsToKill, std::list<AbstractPoint *>& nodes,
bool& somethingDone);
81 virtual bool anyOf(
const std::set<Node *>& nodes)
const = 0;
91 static bool IsGatherB4Ext(
Node *node);
93 static bool IsSimplyLinkedAfterExt(
Node *node);
94 static bool IsScatterAfterExt(
Node *node);
96 static bool IsSimplyLinkedBeforeExt(
Node *node);
97 static bool IsNoLinksBefore(
Node *node);
98 static bool IsNoLinksAfter(
Node *node);
100 static Node *GetNodeAfter(
Node *node);
105 static void FeedData(
const std::list<AbstractPoint *>& ptsToBeRewired, std::map< std::string, std::tuple<
ElementaryPoint *,
Node *, std::shared_ptr<Bloc> > > *
m);
106 static void Rewire(
const std::vector<AbstractPoint *>& ptsToKill, std::map< std::string, std::tuple<
ElementaryPoint *,
Node *, std::shared_ptr<Bloc> > > *
m);
107 static void UnRewire(std::map< std::string, std::tuple<
ElementaryPoint *,
Node *, std::shared_ptr<Bloc> > >&
m);
108 static void Display(std::map< std::string, std::tuple<
ElementaryPoint *,
Node *, std::shared_ptr<Bloc> > > *
m);
#define YACSLIBENGINE_EXPORT
virtual Node * getLastNode()=0
virtual AbstractPoint * deepCopy(AbstractPoint *father) const =0
virtual void getWeightRegardingDPL(ComplexWeight *weight)=0
virtual AbstractPoint * findPointWithNode(Node *node)=0
virtual int getNumberOfNodes() const =0
virtual std::string getRepr() const =0
virtual AbstractPoint * expandNonSimpleCaseOn(NotSimpleCasePoint *pathologicalPt, const std::set< Node * > &uncatchedNodes)=0
virtual void accept(PointVisitor *pv)=0
AbstractPoint * getFather() const
AbstractPoint(AbstractPoint *father)
virtual bool anyOf(const std::set< Node * > &nodes) const =0
virtual bool contains(Node *node) const =0
void setFather(AbstractPoint *father)
virtual Node * getFirstNode()=0
virtual int getMaxLevelOfParallelism() const =0
virtual void partitionRegardingDPL(const PartDefinition *pd, std::map< ComposedNode *, YACS::BASES::AutoRefCnt< PartDefinition > > &zeMap) const =0
Composed node to group elementary and composed nodes.
Base class for all composed nodes.
Base class for all nodes.