Loading [MathJax]/extensions/tex2jax.js
Free Electron
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
eventhandler.h
1 #ifndef EVENTHANDLER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
2 #define EVENTHANDLER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
3 
4 #if defined(_MSC_VER) || \
5  (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \
6  (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
7 #pragma once
8 #endif
9 
10 #include <string>
11 
12 #include "yaml-cpp/anchor.h"
13 #include "yaml-cpp/emitterstyle.h"
14 
15 namespace YAML {
16 struct Mark;
17 
18 class EventHandler {
19  public:
20  virtual ~EventHandler() = default;
21 
22  virtual void OnDocumentStart(const Mark& mark) = 0;
23  virtual void OnDocumentEnd() = 0;
24 
25  virtual void OnNull(const Mark& mark, anchor_t anchor) = 0;
26  virtual void OnAlias(const Mark& mark, anchor_t anchor) = 0;
27  virtual void OnScalar(const Mark& mark, const std::string& tag,
28  anchor_t anchor, const std::string& value) = 0;
29 
30  virtual void OnSequenceStart(const Mark& mark, const std::string& tag,
31  anchor_t anchor, EmitterStyle::value style) = 0;
32  virtual void OnSequenceEnd() = 0;
33 
34  virtual void OnMapStart(const Mark& mark, const std::string& tag,
35  anchor_t anchor, EmitterStyle::value style) = 0;
36  virtual void OnMapEnd() = 0;
37 
38  virtual void OnAnchor(const Mark& /*mark*/,
39  const std::string& /*anchor_name*/) {
40  // empty default implementation for compatibility
41  }
42 };
43 } // namespace YAML
44 
45 #endif // EVENTHANDLER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
Definition: anchor.h:12