| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 | /* * JsonSerializeFormat.cpp, part of VCMI engine * * Authors: listed in file AUTHORS in main folder * * License: GNU General Public License v2.0 or later * Full text of license available in license.txt file, in main folder * */#include "StdInc.h"#include "JsonSerializeFormat.h"#include "../JsonNode.h"//JsonStructSerializerJsonStructSerializer::JsonStructSerializer(JsonStructSerializer&& other):	restoreState(false),	owner(other.owner),	parentNode(other.parentNode),	thisNode(other.thisNode){}JsonStructSerializer::~JsonStructSerializer(){	if(restoreState)		owner.current = parentNode;}JsonStructSerializer::JsonStructSerializer(JsonSerializeFormat& owner_, const std::string& fieldName):	restoreState(true),	owner(owner_),	parentNode(owner.current),	thisNode(&(parentNode->operator[](fieldName))){	owner.current = thisNode;}JsonStructSerializer::JsonStructSerializer(JsonStructSerializer & parent, const std::string & fieldName):	restoreState(true),	owner(parent.owner),	parentNode(parent.thisNode),	thisNode(&(parentNode->operator[](fieldName))){	owner.current = thisNode;}JsonStructSerializer JsonStructSerializer::enterStruct(const std::string & fieldName){	return JsonStructSerializer(*this, fieldName);}JsonNode& JsonStructSerializer::get(){	return *thisNode;}JsonSerializeFormat * JsonStructSerializer::operator->(){	return &owner;}//JsonSerializeFormatJsonSerializeFormat::JsonSerializeFormat(JsonNode & root_):	root(&root_),	current(root){}JsonStructSerializer JsonSerializeFormat::enterStruct(const std::string & fieldName){	JsonStructSerializer res(*this, fieldName);	return res;}
 |