⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ini_adapter.cpp

📁 j2me is based on j2mepolish, client & server for mobile application.
💻 CPP
字号:

#include <iterator>
#include <strstream>

#include "ini_adapter.hpp"
#include "tinyxml.hpp"
#include "unicode.hpp"

namespace hal 
{

void ini_adapter::load_stream_data(std::ostream& data)
{
	tinyxml::node* data_node = ini_.load(location_);
	
	if (data_node)
	{
	tinyxml::document doc;
	doc.parse("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\" ?><!DOCTYPE boost_serialization>");
	
	doc.link_end_child(data_node);
	
	data << doc;
	}
}

void ini_adapter::save_stream_data(std::istream& data)
{	
	tinyxml::document doc;	
	data >> doc;
	
	tinyxml::node* data_node = doc.root_element();
	
	ini_.save(location_, data_node->clone());
}

void ini_adapter::load_stream_data(std::wostream& data)
{
	tinyxml::node* data_node = ini_.load(location_);
	
	if (data_node)
	{
		tinyxml::document doc;
		doc.parse("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\" ?>\
			<!DOCTYPE boost_serialization>");
		doc.link_end_child(data_node);
		
		std::stringstream str;
		str << doc;
		
		unicode::transcode<unicode::utf8, unicode::wchar_encoding>(
		   std::istreambuf_iterator<char> (str),
		   std::istreambuf_iterator<char> (),
		   std::ostreambuf_iterator<wchar_t> (data)
		);
	}
}

void ini_adapter::save_stream_data(std::wistream& data)
{
	std::stringstream sstr;
	
	unicode::transcode<unicode::wchar_encoding, unicode::utf8>(
	   std::istreambuf_iterator<wchar_t> (data),
	   std::istreambuf_iterator<wchar_t> (),
	   std::ostreambuf_iterator<char> (sstr)
	);
	
	tinyxml::document doc;	
	sstr >> doc;
	
	tinyxml::node* data_node = doc.root_element();
	
	ini_.save(location_, data_node->clone());
}

} // namespace hal

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -