Пример #1
0
void JsonSerializer::deserializeArrayBegin(const char* label)
{
	deserializeLabel(label);
	expectToken('[');
	m_is_first_in_block = true;
	deserializeToken();
}
Пример #2
0
void JsonSerializer::deserializeRawString(char* buffer, int max_length)
{
	int size = Math::minValue(max_length - 1, m_token_size);
	memcpy(buffer, m_token, size);
	buffer[size] = '\0';
	deserializeToken();
}
Пример #3
0
JsonSerializer::JsonSerializer(FS::IFile& file,
	AccessMode access_mode,
	const Path& path,
	IAllocator& allocator)
	: m_file(file)
	, m_access_mode(access_mode)
	, m_allocator(allocator)
{
	m_is_error = false;
	copyString(m_path, path.c_str());
	m_is_first_in_block = true;
	m_data = nullptr;
	m_is_string_token = false;
	if (m_access_mode == READ)
	{
		m_data_size = (int)file.size();
		if (file.getBuffer() != nullptr)
		{
			m_data = (const char*)file.getBuffer();
			m_own_data = false;
		}
		else
		{
			int size = (int)m_file.size();
			char* data = (char*)m_allocator.allocate(size);
			m_own_data = true;
			file.read(data, m_data_size);
			m_data = data;
		}
		m_token = m_data;
		m_token_size = 0;
		deserializeToken();
	}
}
Пример #4
0
void JsonSerializer::deserializeRawString(char* buffer, int max_length)
{
	int size = Math::minimum(max_length - 1, m_token_size);
	copyMemory(buffer, m_token, size);
	buffer[size] = '\0';
	deserializeToken();
}
Пример #5
0
void JsonSerializer::deserialize(bool& value, bool default_value)
{
	value = !m_is_string_token
				? m_token_size == 4 && (strncmp(m_token, "true", 4) == 0)
				: default_value;
	deserializeToken();
}
Пример #6
0
void JsonSerializer::nextArrayItem()
{
	if (!m_is_first_in_block)
	{
		expectToken(',');
		deserializeToken();
	}
}
Пример #7
0
void JsonSerializer::deserialize(int32& value, int32 default_value)
{
	if (m_is_string_token || !fromCString(m_token, m_token_size, &value))
	{
		value = default_value;
	}
	deserializeToken();
}
Пример #8
0
void JsonSerializer::deserialize(const char* label, int32& value, int32 default_value)
{
	deserializeLabel(label);
	if (m_is_string_token || !fromCString(m_token, m_token_size, &value))
	{
		value = default_value;
	}
	deserializeToken();
}
Пример #9
0
void JsonSerializer::deserializeArrayItem(int64& value, int64 default_value)
{
	deserializeArrayComma();
	if (m_is_string_token || !fromCString(m_token, m_token_size, &value))
	{
		value = default_value;
	}
	deserializeToken();
}
Пример #10
0
void JsonSerializer::deserializeArrayItem(char* value, int max_length, const char* default_value)
{
	deserializeArrayComma();
	if (m_is_string_token)
	{
		int size = Math::minimum(max_length - 1, m_token_size);
		copyMemory(value, m_token, size);
		value[size] = '\0';
		deserializeToken();
	}
	else
	{
		ErrorProxy(*this).log() << "Unexpected token \""
								<< string(m_token, m_token_size, m_allocator)
								<< "\", expected string.";
		deserializeToken();
		copyString(value, max_length, default_value);
	}
}
Пример #11
0
void JsonSerializer::deserialize(float& value, float default_value)
{
	if (!m_is_string_token)
	{
		value = tokenToFloat();
	}
	else
	{
		value = default_value;
	}
	deserializeToken();
}
Пример #12
0
Файл: Name.cpp Проект: mydw/mydw
xsd__Name Name::deserializeName(const AxisChar* valueAsChar) throw (AxisSoapException)
{
	#ifdef ENABLE_AXISTRACE
		if (axiscpp::AxisTrace::isTraceOn())
			axiscpp::AxisTrace::traceEntry("Name", "deserializeName", this, 1,
					TRACETYPE_STRING, 0, ((void*)&valueAsChar));	  /* AUTOINSERTED TRACE */
	#endif

    	{
		#ifdef ENABLE_AXISTRACE
			xsd__Name traceRet = ((AxisChar*) deserializeToken(valueAsChar));
			if (axiscpp::AxisTrace::isTraceOn())
				axiscpp::AxisTrace::traceExit("Name", "deserializeName", this, 0,
					TRACETYPE_DATA, sizeof(xsd__Name), ((void*)&traceRet));	  /* AUTOINSERTED TRACE */
			return traceRet;
		#else
			return (AxisChar*) deserializeToken(valueAsChar);
		#endif
	}

}
Пример #13
0
void JsonSerializer::deserializeLabel(const char* label)
{
	if (!m_is_first_in_block)
	{
		expectToken(',');
		deserializeToken();
	}
	else
	{
		m_is_first_in_block = false;
	}
	if (!m_is_string_token)
	{
		ErrorProxy(*this).log() << "Unexpected token \""
								<< string(m_token, m_token_size, m_allocator)
								<< "\", expected string.";
		deserializeToken();
	}
	if (compareStringN(label, m_token, m_token_size) != 0)
	{
		ErrorProxy(*this).log() << "Unexpected label \""
								<< string(m_token, m_token_size, m_allocator) << "\", expected \""
								<< label << "\".";
		deserializeToken();
	}
	deserializeToken();
	if (m_is_string_token || m_token_size != 1 || m_token[0] != ':')
	{
		ErrorProxy(*this).log() << "Unexpected label \""
								<< string(m_token, m_token_size, m_allocator) << "\", expected \""
								<< label << "\".";
		deserializeToken();
	}
	deserializeToken();
}
Пример #14
0
void JsonSerializer::deserializeArrayComma()
{
	if (m_is_first_in_block)
	{
		m_is_first_in_block = false;
	}
	else
	{

		expectToken(',');
		deserializeToken();
	}
}
Пример #15
0
void JsonSerializer::deserializeArrayItem(bool& value, bool default_value)
{
	deserializeArrayComma();
	if (m_is_string_token)
	{
		value = default_value;
	}
	else
	{
		value = m_token_size == 4 && compareStringN("true", m_token, m_token_size) == 0;
	}
	deserializeToken();
}
Пример #16
0
void JsonSerializer::deserialize(const char* label, bool& value, bool default_value)
{
	deserializeLabel(label);
	if (!m_is_string_token)
	{
		value = m_token_size == 4 && compareStringN("true", m_token, 4) == 0;
	}
	else
	{
		value = default_value;
	}
	deserializeToken();
}
Пример #17
0
void JsonSerializer::deserialize(const char* label, float& value, float default_value)
{
	deserializeLabel(label);
	if (!m_is_string_token)
	{
		value = tokenToFloat();
		deserializeToken();
	}
	else
	{
		value = default_value;
	}
}
Пример #18
0
void JsonSerializer::deserializeArrayItem(float& value, float default_value)
{
	deserializeArrayComma();
	if (m_is_string_token)
	{
		value = default_value;
	}
	else
	{
		value = tokenToFloat();
	}
	deserializeToken();
}
Пример #19
0
void JsonSerializer::expectToken(char expected_token)
{
	if (m_is_string_token || m_token_size != 1 || m_token[0] != expected_token)
	{
		char tmp[2];
		tmp[0] = expected_token;
		tmp[1] = 0;
		ErrorProxy(*this).log() << "Unexpected token \""
								<< string(m_token, m_token_size, m_allocator) << "\", expected "
								<< tmp << ".";
		deserializeToken();
	}
}
Пример #20
0
void JsonSerializer::deserializeLabel(char* label, int max_length)
{
	if (!m_is_first_in_block)
	{
		expectToken(',');
		deserializeToken();
	}
	else
	{
		m_is_first_in_block = false;
	}
	if (!m_is_string_token)
	{
		ErrorProxy(*this).log() << "Unexpected token \""
								<< string(m_token, m_token_size, m_allocator)
								<< "\", expected string.";
		deserializeToken();
	}
	copyNString(label, max_length, m_token, m_token_size);
	deserializeToken();
	expectToken(':');
	deserializeToken();
}
Пример #21
0
void JsonSerializer::deserialize(char* value, int max_length, const char* default_value)
{
	if (!m_is_string_token)
	{
		copyString(value, max_length, default_value);
	}
	else
	{
		int size = Math::minimum(max_length - 1, m_token_size);
		copyMemory(value, m_token, size);
		value[size] = '\0';
		deserializeToken();
	}
}
Пример #22
0
void JsonSerializer::deserialize(Path& value, const Path& default_value)
{
	if (!m_is_string_token)
	{
		value = default_value;
	}
	else
	{
		char tmp[MAX_PATH_LENGTH];
		int size = Math::minimum(lengthOf(tmp) - 1, m_token_size);
		copyMemory(tmp, m_token, size);
		tmp[size] = '\0';
		value = tmp;
		deserializeToken();
	}
}
Пример #23
0
void JsonSerializer::deserialize(const char* label,
								 char* value,
								 int max_length,
								 const char* default_value)
{
	deserializeLabel(label);
	if (!m_is_string_token)
	{
		copyString(value, max_length, default_value);
	}
	else
	{
		int size = Math::minValue(max_length - 1, m_token_size);
		memcpy(value, m_token, size);
		value[size] = '\0';
		deserializeToken();
	}
}
Пример #24
0
void JsonSerializer::deserializeArrayBegin()
{
	expectToken('[');
	m_is_first_in_block = true;
	deserializeToken();
}
Пример #25
0
void JsonSerializer::deserializeObjectEnd()
{
	expectToken('}');
	m_is_first_in_block = false;
	deserializeToken();
}
Пример #26
0
void JsonSerializer::deserializeObjectBegin()
{
	m_is_first_in_block = true;
	expectToken('{');
	deserializeToken();
}
Пример #27
0
void JsonSerializer::deserializeArrayEnd()
{
	expectToken(']');
	m_is_first_in_block = false;
	deserializeToken();
}