Zserio C++ runtime library  1.3.0
Built for Zserio 2.18.0
IWalkObserver.h
Go to the documentation of this file.
1 #ifndef ZSERIO_I_WALK_OBSERVER_H_INC
2 #define ZSERIO_I_WALK_OBSERVER_H_INC
3 
4 #include "zserio/IReflectable.h"
5 #include "zserio/ITypeInfo.h"
6 #include "zserio/Types.h"
7 #include "zserio/WalkerConst.h"
8 
9 namespace zserio
10 {
11 
15 template <typename ALLOC = std::allocator<uint8_t>>
17 {
18 public:
20  virtual ~IBasicWalkObserver() = default;
21 
27  virtual void beginRoot(const IBasicReflectableConstPtr<ALLOC>& compound) = 0;
28 
34  virtual void endRoot(const IBasicReflectableConstPtr<ALLOC>& compound) = 0;
35 
45  virtual void beginArray(
46  const IBasicReflectableConstPtr<ALLOC>& array, const BasicFieldInfo<ALLOC>& fieldInfo) = 0;
47 
54  virtual void endArray(
55  const IBasicReflectableConstPtr<ALLOC>& array, const BasicFieldInfo<ALLOC>& fieldInfo) = 0;
56 
67  virtual void beginCompound(const IBasicReflectableConstPtr<ALLOC>& compound,
68  const BasicFieldInfo<ALLOC>& fieldInfo, size_t elementIndex) = 0;
69 
77  virtual void endCompound(const IBasicReflectableConstPtr<ALLOC>& compound,
78  const BasicFieldInfo<ALLOC>& fieldInfo, size_t elementIndex) = 0;
79 
87  virtual void visitValue(const IBasicReflectableConstPtr<ALLOC>& value,
88  const BasicFieldInfo<ALLOC>& fieldInfo, size_t elementIndex) = 0;
89 };
90 
96 } // namespace zserio
97 
98 #endif // ZSERIO_I_WALK_OBSERVER_H_INC
virtual void visitValue(const IBasicReflectableConstPtr< ALLOC > &value, const BasicFieldInfo< ALLOC > &fieldInfo, size_t elementIndex)=0
virtual void beginArray(const IBasicReflectableConstPtr< ALLOC > &array, const BasicFieldInfo< ALLOC > &fieldInfo)=0
virtual void endArray(const IBasicReflectableConstPtr< ALLOC > &array, const BasicFieldInfo< ALLOC > &fieldInfo)=0
virtual ~IBasicWalkObserver()=default
virtual void endRoot(const IBasicReflectableConstPtr< ALLOC > &compound)=0
virtual void beginRoot(const IBasicReflectableConstPtr< ALLOC > &compound)=0
virtual void beginCompound(const IBasicReflectableConstPtr< ALLOC > &compound, const BasicFieldInfo< ALLOC > &fieldInfo, size_t elementIndex)=0
virtual void endCompound(const IBasicReflectableConstPtr< ALLOC > &compound, const BasicFieldInfo< ALLOC > &fieldInfo, size_t elementIndex)=0
typename IBasicReflectable< ALLOC >::ConstPtr IBasicReflectableConstPtr
Definition: IReflectable.h:535