00001 #ifndef EVENTHANDLER_H_62B23520_7C8E_11DE_8A39_0800200C9A66 00002 #define EVENTHANDLER_H_62B23520_7C8E_11DE_8A39_0800200C9A66 00003 00004 #if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 00005 #pragma once 00006 #endif 00007 00008 #include "yaml-cpp-pm/anchor.h" 00009 #include <string> 00010 00011 namespace YAML_PM 00012 { 00013 struct Mark; 00014 00015 class EventHandler 00016 { 00017 public: 00018 virtual ~EventHandler() {} 00019 00020 virtual void OnDocumentStart(const Mark& mark) = 0; 00021 virtual void OnDocumentEnd() = 0; 00022 00023 virtual void OnNull(const Mark& mark, anchor_t anchor) = 0; 00024 virtual void OnAlias(const Mark& mark, anchor_t anchor) = 0; 00025 virtual void OnScalar(const Mark& mark, const std::string& tag, anchor_t anchor, const std::string& value) = 0; 00026 00027 virtual void OnSequenceStart(const Mark& mark, const std::string& tag, anchor_t anchor) = 0; 00028 virtual void OnSequenceEnd() = 0; 00029 00030 virtual void OnMapStart(const Mark& mark, const std::string& tag, anchor_t anchor) = 0; 00031 virtual void OnMapEnd() = 0; 00032 }; 00033 } 00034 00035 #endif // EVENTHANDLER_H_62B23520_7C8E_11DE_8A39_0800200C9A66 00036