Beispiel #1
0
void Settings::SaveChanged()
{
	if(settingsJSON == NULL) return;
	for(int i = 0; i < variables.GetSizeI(); i++)
	{
		IVariable* var = variables[i];
		if(!var->IsChanged())
		{
			continue;
		}
		var->SaveValue();

		JSON* varJSON = var->json;
		if(varJSON == NULL)
		{
			varJSON = settingsJSON->GetItemByName(var->name);
			var->json = varJSON;
		}
		if(varJSON == NULL)
		{
			settingsJSON->AddItem(var->name,var->Serialize());
		}
		else
		{
			varJSON->ReplaceNodeWith(var->Serialize());
		}
	}
	rootSettingsJSON->Save(settingsFileName);
	PrintFileToLog(settingsFileName);
}
Beispiel #2
0
bool Settings::IsChanged()
{
	if(settingsJSON == NULL) return false;
	for(int i = 0; i < variables.GetSizeI(); i++)
	{
		IVariable* var = variables[i];
		if(var->IsChanged())
		{
			return true;
		}
	}
	return false;
}
Beispiel #3
0
    void AgentState::Log(Agent* pAgent, bool bForce)
    {
        BEHAVIAC_UNUSED_VAR(pAgent);
        BEHAVIAC_UNUSED_VAR(bForce);
#if !BEHAVIAC_RELEASE

        if (Config::IsLoggingOrSocketing())
        {
            if (this->state_stack.size() > 0)
            {
                map<behaviac::string, bool> logged;

                for (int i = this->state_stack.size() - 1; i >= 0; --i)
                {
                    AgentState* t = this->state_stack[i];
                    behaviac::map<uint32_t, IVariable*>& _value = t->Vars();

                    for (behaviac::map<uint32_t, IVariable*>::iterator it = _value.begin(); it != _value.end(); it++)
                    {
                        IVariable* pVar = it->second;

                        if (bForce || pVar->IsChanged())
                        {
                            if (logged.find(pVar->Name()) == logged.end())
                            {
								pVar->Log(pAgent);
                                logged.insert(map<behaviac::string, bool>::value_type(pVar->Name(), true));
                            }
                        }
                    }
                }//end of for
            }
            else
            {
                //base.Log(pAgent, bForce);
                Variables::Log(pAgent, bForce);
            }
        }

#endif
    }