GDevelop Core
Core library for developing platforms and tools compatible with GDevelop.
EventVisitor.h
1 /*
2  * GDevelop Core
3  * Copyright 2008-2016 Florian Rival ([email protected]). All rights
4  * reserved. This project is released under the MIT License.
5  */
6 #pragma once
7 
8 #include <iostream>
9 #include <memory>
10 #include <vector>
11 
12 #include "GDCore/String.h"
13 
14 namespace gd {
15 class BaseEvent;
16 class LinkEvent;
17 } // namespace gd
18 
19 namespace gd {
20 
26 class GD_CORE_API EventVisitor {
27  public:
28  virtual ~EventVisitor(){};
29 
36  virtual bool VisitEvent(gd::BaseEvent& linkEvent) = 0;
37 
46  virtual bool VisitLinkEvent(gd::LinkEvent& linkEvent) = 0;
47 };
48 
54 class GD_CORE_API ReadOnlyEventVisitor {
55  public:
56  virtual ~ReadOnlyEventVisitor(){};
57 
61  virtual void VisitEvent(const gd::BaseEvent& linkEvent) = 0;
62 
68  virtual void VisitLinkEvent(const gd::LinkEvent& linkEvent) = 0;
69 
73  virtual void StopAnyEventIteration() = 0;
74 };
75 
76 }
Base class defining an event.
Definition: Event.h:44
Visitor of any kind of event.
Definition: EventVisitor.h:26
virtual bool VisitLinkEvent(gd::LinkEvent &linkEvent)=0
virtual bool VisitEvent(gd::BaseEvent &linkEvent)=0
Visitor of any kind of event.
Definition: EventVisitor.h:54
virtual void StopAnyEventIteration()=0
Abort the iteration on the events.
virtual void VisitLinkEvent(const gd::LinkEvent &linkEvent)=0
virtual void VisitEvent(const gd::BaseEvent &linkEvent)=0
Definition: CommonTools.h:24