示例#1
0
void save_gui_cfg()
{
	YAML::Emitter out;
	out.SetSeqFormat(YAML::Flow);
	out << g_gui_cfg;

	// Save to file
	s_gui_cfg.seek(0);
	s_gui_cfg.trunc(0);
	s_gui_cfg.write(out.c_str(), out.size());
}
int main(int argc, char* argv[])
{
    (void) argc;
    (void) argv;


    // Create a new yaml document
    std::cout << "Creating a yaml file:" << std::endl;

    RMatrix<1,1> s;
    s << 42;

    RMatrix<3,1> col;
    col << 1,2,3;

    RMatrix<1,3> row;
    row << 1,2,3;

    RMatrix<2,2> R;
    R << 1, 2,
         3, 4;

    CMatrix<3,3> C;
    C << 1.1,            1.2,                1.3,
         complex_t(1,1), complex_t(1.2,3.4), 0,
         3.1,            3.2,                3.3;

    YAML::Node root;

    root["scalar"] = s;
    root["row"] = row;
    root["col"] = col;
    root["R"] = R;
    root["C"] = C;

    YAML::Emitter out;
    out.SetIndent(4);
    //out.SetMapFormat(YAML::Flow);
    out.SetSeqFormat(YAML::Flow);
    out << root;

    std::cout << out.c_str() << std::endl;

    std::ofstream fout("matrices.yaml");
    fout << out.c_str() << std::endl;
}
示例#3
0
		void ComplexGlobalSettings(YAML::Emitter& out, std::string& desiredOutput)
		{
			out << YAML::BeginSeq;
			out << YAML::Block;
			out << YAML::BeginMap;
			out << YAML::Key << "key 1" << YAML::Value << "value 1";
			out << YAML::Key << "key 2" << YAML::Value;
			out.SetSeqFormat(YAML::Flow);
			out << YAML::BeginSeq << "a" << "b" << "c" << YAML::EndSeq;
			out << YAML::EndMap;
			out << YAML::BeginMap;
			out << YAML::Key << YAML::BeginSeq << 1 << 2 << YAML::EndSeq;
			out << YAML::Value << YAML::BeginMap << YAML::Key << "a" << YAML::Value << "b" << YAML::EndMap;
			out << YAML::EndMap;
			out << YAML::EndSeq;
			
			desiredOutput = "- key 1: value 1\n  key 2: [a, b, c]\n- [1, 2]:\n    a: b";
		}
示例#4
0
文件: generators.cpp 项目: dbb/loot
    void GenerateReportData(const Game& game,
        std::list<Message>& messages,
        const std::list<Plugin>& plugins,
        const std::string& masterlistVersion,
        const std::string& masterlistDate,
        const bool masterlistUpdateEnabled) {

        YAML::Node oldDetails;
        GetOldReportDetails(game.ReportDataPath(), oldDetails);
        
        //Need to output YAML as a JSON Javascript variable.
        YAML::Emitter yout;
        yout.SetOutputCharset(YAML::EscapeNonAscii);
        yout.SetStringFormat(YAML::DoubleQuoted);
        yout.SetBoolFormat(YAML::TrueFalseBool);
        yout.SetSeqFormat(YAML::Flow);
        yout.SetMapFormat(YAML::Flow);

        BOOST_LOG_TRIVIAL(debug) << "Generating JSON report data.";

        yout << YAML::BeginMap;

        yout << YAML::Key << "lootVersion"
            << YAML::Value << IntToString(g_version_major) + "." + IntToString(g_version_minor) + "." + IntToString(g_version_patch);

        yout << YAML::Key << "masterlist"
            << YAML::BeginMap
            << YAML::Key << "updaterEnabled"
            << YAML::Value;

        if (masterlistUpdateEnabled)
            yout << boost::locale::translate("Enabled").str();
        else
            yout << boost::locale::translate("Disabled").str();

        yout << YAML::Key << "revision"
            << YAML::Value << masterlistVersion
            << YAML::Key << "date"
            << YAML::Value << masterlistDate
            << YAML::EndMap;

        if (!plugins.empty()) {
            BOOST_LOG_TRIVIAL(debug) << "Generating JSON plugin data.";
            YAML::Emitter tempout;
            tempout.SetOutputCharset(YAML::EscapeNonAscii);
            tempout.SetStringFormat(YAML::DoubleQuoted);
            tempout.SetBoolFormat(YAML::TrueFalseBool);
            tempout.SetSeqFormat(YAML::Flow);
            tempout.SetMapFormat(YAML::Flow);

            tempout << YAML::BeginSeq;
            for (std::list<Plugin>::const_iterator it = plugins.begin(), endit = plugins.end(); it != endit; ++it) {
                WritePlugin(tempout, *it, game);
            }
            tempout << YAML::EndSeq;

            YAML::Node node = YAML::Load(tempout.c_str());

            if (AreDetailsEqual(node, oldDetails))
                messages.push_front(loot::Message(loot::Message::say, boost::locale::translate("There have been no changes in the Details tab since LOOT was last run for this game.").str()));
                
            //Need to generate output twice because passing the node causes !<!> to be written before every key and value for some reason.
            yout << YAML::Key << "plugins"
                << YAML::Value << YAML::BeginSeq;
            for (std::list<Plugin>::const_iterator it = plugins.begin(), endit = plugins.end(); it != endit; ++it) {
                WritePlugin(yout, *it, game);
            }
            yout << YAML::EndSeq;
        }
        else if (oldDetails.size() == 0)
            messages.push_front(loot::Message(loot::Message::say, boost::locale::translate("There have been no changes in the Details tab since LOOT was last run for this game.").str()));

        if (!messages.empty()) {
            BOOST_LOG_TRIVIAL(debug) << "Generating JSON general message data.";
            yout << YAML::Key << "globalMessages"
                << YAML::Value << YAML::BeginSeq;
            for (std::list<Message>::const_iterator it = messages.begin(), endit = messages.end(); it != endit; ++it) {
                WriteMessage(yout, *it);
            }
            yout << YAML::EndSeq;
        }

        BOOST_LOG_TRIVIAL(debug) << "Generating text translations.";
        yout << YAML::Key << "l10n"
            << YAML::BeginMap

            << YAML::Key << "txtSummarySec"
            << YAML::Value << boost::locale::translate("Summary").str()

            << YAML::Key << "txtSummary"
            << YAML::Value << boost::locale::translate("Summary").str()

            << YAML::Key << "txtLootVersion"
            << YAML::Value << boost::locale::translate("LOOT Version").str()

            << YAML::Key << "txtMasterlistRevision"
            << YAML::Value << boost::locale::translate("Masterlist Revision").str()

            << YAML::Key << "txtMasterlistDate"
            << YAML::Value << boost::locale::translate("Masterlist Date").str()

            << YAML::Key << "txtMasterlistUpdating"
            << YAML::Value << boost::locale::translate("Masterlist Updating").str()

            << YAML::Key << "txtTotalMessageNo"
            << YAML::Value << boost::locale::translate("Total Number of Messages").str()

            << YAML::Key << "txtTotalWarningNo"
            << YAML::Value << boost::locale::translate("Number of Warnings").str()

            << YAML::Key << "txtTotalErrorNo"
            << YAML::Value << boost::locale::translate("Number of Errors").str()

            << YAML::Key << "txtGeneralMessages"
            << YAML::Value << boost::locale::translate("General Messages").str()

            << YAML::Key << "txtDetailsSec"
            << YAML::Value << boost::locale::translate("Details").str()

            << YAML::Key << "filtersToggle"
            << YAML::Value << boost::locale::translate("Filters").str()

            << YAML::Key << "txtHideVersionNumbers"
            << YAML::Value << boost::locale::translate("Hide Version Numbers").str()

            << YAML::Key << "txtHideCRCs"
            << YAML::Value << boost::locale::translate("Hide CRCs").str()

            << YAML::Key << "txtHideBashTags"
            << YAML::Value << boost::locale::translate("Hide Bash Tag Suggestions").str()

            << YAML::Key << "txtHideNotes"
            << YAML::Value << boost::locale::translate("Hide Notes").str()

            << YAML::Key << "txtHideDoNotCleanMessages"
            << YAML::Value << boost::locale::translate("Hide 'Do Not Clean' Messages").str()

            << YAML::Key << "txtHideInactivePluginMessages"
            << YAML::Value << boost::locale::translate("Hide Inactive Plugin Messages").str()

            << YAML::Key << "txtHideAllPluginMessages"
            << YAML::Value << boost::locale::translate("Hide All Plugin Messages").str()

            << YAML::Key << "txtHideMessagelessPlugins"
            << YAML::Value << boost::locale::translate("Hide Messageless Plugins").str()

            << YAML::Key << "txtPluginsHidden"
            << YAML::Value << boost::locale::translate("Plugins hidden").str()

            << YAML::Key << "txtMessagesHidden"
            << YAML::Value << boost::locale::translate("Messages hidden").str()

            << YAML::EndMap;

        yout << YAML::EndMap;

        loot::ofstream out(game.ReportDataPath());
        out << "var data = " << yout.c_str();
        out.close();
    }