| Index: experimental/windows_debugger/debugger/test_debugger/my_struct_to_json.h
|
| diff --git a/experimental/windows_debugger/debugger/test_debugger/my_struct_to_json.h b/experimental/windows_debugger/debugger/test_debugger/my_struct_to_json.h
|
| deleted file mode 100644
|
| index 4527eb476f6bc3720be78500edcb63b09f770fa7..0000000000000000000000000000000000000000
|
| --- a/experimental/windows_debugger/debugger/test_debugger/my_struct_to_json.h
|
| +++ /dev/null
|
| @@ -1,113 +0,0 @@
|
| -#pragma once
|
| -#include "my_json.h"
|
| -#include <iostream>
|
| -#include <sstream>
|
| -
|
| -namespace json {
|
| -class StructFieldDefinition {
|
| - public:
|
| - enum Type {FT_INT, FT_ENUM, FT_FLAGS, FT_PTR, FT_STR, FT_USTR, FT_HANDLE};
|
| -
|
| - StructFieldDefinition(const std::string& name, Type type, size_t size, size_t offset, size_t unicode_offset = 0)
|
| - : name_(name), type_(type), size_(size), offset_(offset), unicode_offset_(unicode_offset) {}
|
| -
|
| - void ParseEnumValues(const std::string& key_value_pairs);
|
| - std::string GetEnumName(long long id);
|
| -
|
| - public:
|
| - std::string name_;
|
| - Type type_;
|
| - size_t size_;
|
| - size_t offset_;
|
| - size_t unicode_offset_;
|
| - std::map<long long, std::string> enum_values_;
|
| -};
|
| -
|
| -class StructDefinition {
|
| - public:
|
| - StructDefinition(const std::string& name) : name_(name) {}
|
| - ~StructDefinition();
|
| -
|
| - void AddFieldDefinition(StructFieldDefinition* def);
|
| - size_t GetFieldNum() const;
|
| - StructFieldDefinition* GetFieldDefinition(size_t pos);
|
| - StructFieldDefinition* GetFieldDefinition(const std::string& name);
|
| -
|
| - public:
|
| - std::string name_;
|
| - std::deque<StructFieldDefinition*> fields_;
|
| -};
|
| -
|
| -class StructDefinitions {
|
| - public:
|
| - StructDefinitions();
|
| - ~StructDefinitions();
|
| -
|
| - void AddStructDefinition(StructDefinition* def);
|
| - StructDefinition* FindStructDefinition(const std::string& name);
|
| -
|
| - public:
|
| - std::map<std::string, StructDefinition*> structs_;
|
| -};
|
| -
|
| -class StructTextCreator : public Visitor {
|
| - public:
|
| - StructTextCreator();
|
| - ~StructTextCreator();
|
| -
|
| - void SetGenerateComments(bool on, StructDefinitions* struct_defs);
|
| - void CreateText(const Value& value_in, std::string* text_out);
|
| -
|
| - virtual void Visit(Null& element);
|
| - virtual void Visit(Number& element);
|
| - virtual void Visit(Boolean& element);
|
| - virtual void Visit(String& element);
|
| - virtual void Visit(Blob& element);
|
| - virtual void Visit(Array& element);
|
| - virtual void Visit(Object& element);
|
| -
|
| - protected:
|
| - void OutputObject(int offset, Object& value_in, std::ostringstream* buff_out);
|
| - void OutputValue(int offset, Value& value_in, std::ostringstream* buff_out);
|
| - void OutputOffset(int offset, std::ostringstream* buff_out);
|
| - std::string CreateCommentFor(Value* prop, StructFieldDefinition* fd_def);
|
| -
|
| - bool generate_comments_;
|
| - StructDefinitions* struct_defs_;
|
| - std::string comment_;
|
| - int offset_;
|
| - std::ostringstream* buff_out_;
|
| -};
|
| -
|
| -Value* CreateValueFromStructField(const void* struct_ptr, const char* struct_name, StructFieldDefinition& field_def);
|
| -Object* CreateFromStruct(const void* struct_ptr, const char* struct_name, StructDefinitions& defs);
|
| -void AddIntConst(int id, const char* name, std::string* str);
|
| -
|
| -#define START_STRUCT_DEF(T) do { json::StructDefinition* sd = new json::StructDefinition(#T); T tmp
|
| -
|
| -#define OFFSET_OF(Name) ((char*)&tmp.Name - (char*)&tmp)
|
| -
|
| -#define DEF_ENUM_FIELD(Name, Values) do {\
|
| - json::StructFieldDefinition* def = new json::StructFieldDefinition(#Name, json::StructFieldDefinition::FT_ENUM, sizeof(tmp.Name), OFFSET_OF(Name));\
|
| - def->ParseEnumValues(Values); sd->AddFieldDefinition(def); } while(false)
|
| -
|
| -#define DEF_HANDLE_FIELD(Name) \
|
| - sd->AddFieldDefinition(new json::StructFieldDefinition(#Name, json::StructFieldDefinition::FT_HANDLE, sizeof(tmp.Name), OFFSET_OF(Name)))
|
| -
|
| -#define DEF_PTR_FIELD(Name) \
|
| - sd->AddFieldDefinition(new json::StructFieldDefinition(#Name, json::StructFieldDefinition::FT_PTR, sizeof(tmp.Name), OFFSET_OF(Name)))
|
| -
|
| -#define DEF_STR_FIELD(Name) \
|
| - sd->AddFieldDefinition(new json::StructFieldDefinition(#Name, json::StructFieldDefinition::FT_STR, sizeof(tmp.Name), OFFSET_OF(Name)))
|
| -
|
| -#define DEF_INT_FIELD(Name) \
|
| - sd->AddFieldDefinition(new json::StructFieldDefinition(#Name, json::StructFieldDefinition::FT_INT, sizeof(tmp.Name), OFFSET_OF(Name)))
|
| -
|
| -#define DEF_USTR_FIELD(Name, FUnicode) \
|
| - sd->AddFieldDefinition(new json::StructFieldDefinition(#Name, json::StructFieldDefinition::FT_USTR, sizeof(tmp.Name), OFFSET_OF(Name), OFFSET_OF(FUnicode)))
|
| -
|
| -#define STOP_STRUCT_DEF defs->AddStructDefinition(sd); } while(false)
|
| -
|
| -#define ADD_INT_C(x, str) json::AddIntConst(x, #x, &str)
|
| -
|
| -} // namespace json
|
|
|