Exemplo n.º 1
0
void CLI::Add(const std::string& path,
              const std::string& description,
              const std::string& alias,
              bool required)
{

  po::options_description& desc = CLI::GetSingleton().desc;
  // Must make use of boost syntax here.
  std::string progOptId = alias.length() ? path + "," + alias : path;

  // Add the alias, if necessary
  AddAlias(alias, path);

  // Add the option to boost program_options.
  desc.add_options()(progOptId.c_str(), po::value<T>(), description.c_str());

  // Make sure the appropriate metadata is inserted into gmap.
  gmap_t& gmap = GetSingleton().globalValues;

  ParamData data;
  T tmp = T();

  data.desc = description;
  data.name = path;
  data.tname = TYPENAME(T);
  data.value = boost::any(tmp);
  data.wasPassed = false;

  gmap[path] = data;

  // If the option is required, add it to the required options list.
  if (required)
    GetSingleton().requiredOptions.push_front(path);
}
Exemplo n.º 2
0
T& CLI::GetParam(const std::string& identifier)
{
  // Used to ensure we have a valid value.
  T tmp = T();

  // Used to index into the globalValues map.
  std::string key = std::string(identifier);
  gmap_t& gmap = GetSingleton().globalValues;

  // Now check if we have an alias.
  amap_t& amap = GetSingleton().aliasValues;
  if (amap.count(key))
    key = amap[key];

  // What if we don't actually have any value?
  if (!gmap.count(key))
  {
    gmap[key] = ParamData();
    gmap[key].value = boost::any(tmp);
    *boost::any_cast<T>(&gmap[key].value) = tmp;
  }

  // What if we have meta-data, but no data?
  boost::any val = gmap[key].value;
  if (val.empty())
    gmap[key].value = boost::any(tmp);

  return *boost::any_cast<T>(&gmap[key].value);
}
Exemplo n.º 3
0
T& CLI::GetParam(const std::string& identifier)
{
  // Only use the alias if the parameter does not exist as given.
  std::string key =
      (GetSingleton().parameters.count(identifier) == 0 &&
       identifier.length() == 1 && GetSingleton().aliases.count(identifier[0]))
      ? GetSingleton().aliases[identifier[0]] : identifier;

  if (GetSingleton().parameters.count(key) == 0)
    Log::Fatal << "Parameter --" << key << " does not exist in this program!"
        << std::endl;

  util::ParamData& d = GetSingleton().parameters[key];

  // Make sure the types are correct.
  if (TYPENAME(T) != d.tname)
    Log::Fatal << "Attempted to access parameter --" << key << " as type "
        << TYPENAME(T) << ", but its true type is " << d.tname << "!"
        << std::endl;

  // We already know that required options have been passed, so we have a valid
  // value to return.  Because the parameters held are sometimes different types
  // than what the user wants, we must pass through a utility function.
  typename util::ParameterType<T>::type& v =
      *boost::any_cast<typename util::ParameterType<T>::type>(&d.value);
  return util::HandleParameter<T>(v, d);
}
	void CLogger::SetFileName( String const & logFilePath, ELogType logLevel )
	{
		if ( GetSingleton()._impl )
		{
			GetSingleton().DoSetFileName( logFilePath, logLevel );
		}
	}
	void CLogger::Initialise( CLogger * logger )
	{
		_counter++;
#if defined( _WIN32 )

		if ( _singleton )
		{
			_counter--;
			PARSER_EXCEPT( EShaderParserExceptionCodes_InternalError, ERROR_DB_LOGGER_ALREADY_INITIALISED );
		}
		else
		{
			_ownInstance = false;
			CLogger & mylogger = GetSingleton();
			delete mylogger._impl;
			mylogger._impl = logger->_impl;

			for ( int i = 0; i < ELogType_COUNT; i++ )
			{
				mylogger._headers[i] = logger->_headers[i];
			}

			mylogger._logLevel = logger->_logLevel;
			mylogger.DoInitialiseThread();
		}

#endif
	}
Exemplo n.º 6
0
void ezToolsProject::BroadcastSaveAll()
{
  ezToolsProjectEvent e;
  e.m_pProject = GetSingleton();
  e.m_Type = ezToolsProjectEvent::Type::SaveAll;

  s_Events.Broadcast(e);
}
Exemplo n.º 7
0
void ezToolsProject::BroadcastConfigChanged()
{
  ezToolsProjectEvent e;
  e.m_pProject = GetSingleton();
  e.m_Type = ezToolsProjectEvent::Type::ProjectConfigChanged;

  s_Events.Broadcast(e);
}
Exemplo n.º 8
0
gameEngine::gameEngine() : m_bQuit(true)
{
	if (GetSingleton() == 0) gameEngine::ge_ptr = this;
	else
	{

	}
	gi_ptr = 0;
}
Exemplo n.º 9
0
void ezToolsProject::CloseProject()
{
  if (GetSingleton())
  {
    GetSingleton()->m_bIsClosing = true;

    ezToolsProjectEvent e;
    e.m_pProject = GetSingleton();
    e.m_Type = ezToolsProjectEvent::Type::ProjectClosing;
    s_Events.Broadcast(e);

    ezDocumentManager::CloseAllDocuments();

    delete GetSingleton();

    e.m_Type = ezToolsProjectEvent::Type::ProjectClosed;
    s_Events.Broadcast(e);
  }
}
Exemplo n.º 10
0
 static void kill()
 {
     if (_singleton != NULL)
     {
         GetSingleton()->clear();
         delete _singleton;
         _singleton = NULL;
         C_Log::GetSingleton()->AddMessage("Singleton Resource killed.");
     }
 }
Exemplo n.º 11
0
	void CLogger::Cleanup()
	{
		GetSingleton().DoCleanupThread();

		if ( _counter > 0 )
		{
			_counter--;
			delete _singleton;
			_singleton = NULL;
		}
	}
Exemplo n.º 12
0
typename util::ParameterType<T>::type& CLI::GetUnmappedParam(
    const std::string& identifier)
{
  std::string key =
      (identifier.length() == 1 && GetSingleton().aliases.count(identifier[0]))
      ? GetSingleton().aliases[identifier[0]] : identifier;

  if (GetSingleton().parameters.count(key) == 0)
    Log::Fatal << "Parameter --" << key << " does not exist in this program!"
        << std::endl;

  util::ParamData& d = GetSingleton().parameters[key];

  // Make sure the types are correct.
  if (TYPENAME(T) != d.tname)
    Log::Fatal << "Attempted to access parameter --" << key << " as type "
        << TYPENAME(T) << ", but its true type is " << d.tname << "!"
        << std::endl;

  return *boost::any_cast<typename util::ParameterType<T>::type>(&d.value);
}
Exemplo n.º 13
0
bool ezToolsProject::CanCloseProject()
{
  if (GetSingleton() == nullptr)
    return true;

  ezToolsProjectRequest e;
  e.m_Type = ezToolsProjectRequest::Type::CanCloseProject;
  e.m_bCanClose = true;
  s_Requests.Broadcast(e, 1); // when the save dialog pops up and the user presses 'Save' we need to allow one more recursion

  return e.m_bCanClose;
}
Exemplo n.º 14
0
ezStatus ezToolsProject::CreateOrOpenProject(const char* szProjectPath, bool bCreate)
{
  CloseProject();

  new ezToolsProject(szProjectPath);

  ezStatus ret;

  if (bCreate)
    ret = GetSingleton()->Create();
  else
    ret = GetSingleton()->Open();

  if (ret.m_Result.Failed())
  {
    delete GetSingleton();
    return ret;
  }

  return ezStatus(EZ_SUCCESS);
}
Exemplo n.º 15
0
bool ezToolsProject::CanCloseDocuments(ezArrayPtr<ezDocument*> documents)
{
  if (GetSingleton() == nullptr)
    return true;

  ezToolsProjectRequest e;
  e.m_Type = ezToolsProjectRequest::Type::CanCloseDocuments;
  e.m_bCanClose = true;
  e.m_Documents = documents;
  s_Requests.Broadcast(e);

  return e.m_bCanClose;
}
Exemplo n.º 16
0
LRESULT CALLBACK EventSystem::KeyboardHook( int nCode, WPARAM wParam, LPARAM lParam )
{
	if ( nCode >= HC_ACTION )
	{
		KBDLLHOOKSTRUCT* Message = reinterpret_cast< KBDLLHOOKSTRUCT* >( lParam );

		switch ( wParam )
		{
			case WM_KEYDOWN:
			case WM_SYSKEYDOWN:
				GetSingleton( )->DispatchKeyPressEvents( Message->vkCode );
				break;
			case WM_KEYUP:
			case WM_SYSKEYUP:
				GetSingleton( )->DispatchKeyReleaseEvents( Message->vkCode );
				break;
			default:
				break;
		}
	}

	return CallNextHookEx( GetSingleton( )->KeyboardHookObject, nCode, wParam, lParam );
}
Exemplo n.º 17
0
Component* ActorFactory::CreateComponent(const tinyxml2::XMLElement* i_pNode, const char* i_pActorName)
{
	if(i_pNode)
	{
		const char* pComponentID = i_pNode->Value();
		Component* pComponent = GetSingleton().m_Factory.Create(ObjectId(pComponentID), i_pActorName);
		if (pComponent)
		{
			if (pComponent->SetupFromXml(i_pNode))
			{
				return pComponent;
			}
		}

		delete(pComponent);
		MGD_LOG::LOGManager::GetSingleton().WriteLog(MGD_LOG::MGD_ERROR, ACTOR_FACTORY_CONTEXT, "Component failed to initialize: %s", pComponentID);
	}
	return NULL;
}
Exemplo n.º 18
0
	void CLogger::Initialise( ELogType logLevel )
	{
		_counter++;

		if ( _singleton )
		{
			PARSER_EXCEPT( EShaderParserExceptionCodes_InternalError, ERROR_DB_LOGGER_ALREADY_INITIALISED );
		}
		else
		{
			_ownInstance = true;
			CLogger & logger = GetSingleton();
			delete logger._impl;
			logger._impl = new CLoggerImpl;
			logger._impl->Initialise( logger );
			logger._logLevel = logLevel;
			logger.DoInitialiseThread();
		}
	}
Exemplo n.º 19
0
LRESULT CALLBACK EventSystem::MouseHook( int nCode, WPARAM wParam, LPARAM lParam )
{
	if ( nCode >= HC_ACTION ) 
	{
		MSLLHOOKSTRUCT* Message = reinterpret_cast< MSLLHOOKSTRUCT* >( lParam );

		switch( wParam )
		{
			case WM_LBUTTONDOWN:
				GetSingleton( )->DispatchMouseDownEvents( Message->pt, MouseButton::MOUSE_LEFT );
				break;
			case WM_MBUTTONDOWN:
				GetSingleton( )->DispatchMouseDownEvents( Message->pt, MouseButton::MOUSE_MIDDLE );
				break;
			case WM_RBUTTONDOWN:
				GetSingleton( )->DispatchMouseDownEvents( Message->pt, MouseButton::MOUSE_RIGHT );
				break;
			case WM_LBUTTONUP:
				GetSingleton( )->DispatchMouseUpEvents( Message->pt, MouseButton::MOUSE_LEFT );
				break;
			case WM_MBUTTONUP:
				GetSingleton( )->DispatchMouseUpEvents( Message->pt, MouseButton::MOUSE_MIDDLE );
				break;
			case WM_RBUTTONUP:
				GetSingleton( )->DispatchMouseUpEvents( Message->pt, MouseButton::MOUSE_RIGHT );
				break;
			case WM_MOUSEMOVE:
				GetSingleton( )->DispatchMouseMoveEvents( Message->pt, MouseButton::MOUSE_NONE ); // TODO: Add button states to callback
				break;
			default:
				break;
		}
	}

	return CallNextHookEx( GetSingleton( )->MouseHookObject, nCode, wParam, lParam );
}
Exemplo n.º 20
0
void ActorFactory::CreateActorFromTemplate(const char* i_pTemplateActorName, const char* i_pActorName)
{
	if (i_pTemplateActorName && strlen(i_pTemplateActorName) > 0 && i_pActorName && strlen(i_pActorName) > 0)
	{
		MGDVector<Component*> pTemplateComponents;
		SystemManager::GetSingleton().GetComponentsFromTemplate(ObjectId(i_pTemplateActorName), pTemplateComponents);

		MGDVector<Component*> pNewComponents;
		for (uint32 uiIndex = 0; uiIndex < pTemplateComponents.size(); ++uiIndex)
		{
			Component* pComponent = GetSingleton().m_Factory.Create(pTemplateComponents[uiIndex]->GetID(), i_pActorName, true);
			if (pComponent)
			{
				pComponent->CreateFromTemplate(pTemplateComponents[uiIndex], ObjectId(i_pActorName));
				SystemManager::GetSingleton().AddComponent(pComponent, ObjectId(i_pActorName));

				pNewComponents.push_back(pComponent);
			}
		}

		InitComponents(pNewComponents);
	}
}
Exemplo n.º 21
0
bool ImageBridgeChild::IsCreated()
{
  return GetSingleton() != nullptr;
}
Exemplo n.º 22
0
	CLogger * CLogger::GetSingletonPtr()
	{
		return &GetSingleton();
	}
Exemplo n.º 23
0
	void CLogger::LogError( std::wstring const & msg )
	{
		GetSingleton().DoPushMessage( ELogType_ERROR, msg );
	}
Exemplo n.º 24
0
	void CLogger::LogWarning( std::wstring const & msg )
	{
		GetSingleton().DoPushMessage( ELogType_WARNING, msg );
	}
Exemplo n.º 25
0
	void CLogger::LogInfo( std::wstring const & msg )
	{
		GetSingleton().DoPushMessage( ELogType_INFO, msg );
	}
Exemplo n.º 26
0
	void CLogger::LogDebug( std::wstring const & msg )
	{
		GetSingleton().DoPushMessage( ELogType_DEBUG, msg );
	}
Exemplo n.º 27
0
	void CLogger::SetLevel( ELogType logLevel )
	{
		GetSingleton()._logLevel = logLevel;
	}
Exemplo n.º 28
0
void CLI::Add(const std::string& identifier,
              const std::string& description,
              const std::string& alias,
              const bool required,
              const bool input)
{
  // Temporarily define color code escape sequences.
  #ifndef _WIN32
    #define BASH_RED "\033[0;31m"
    #define BASH_CLEAR "\033[0m"
  #else
    #define BASH_RED ""
    #define BASH_CLEAR ""
  #endif

  // Temporary outstream object for detecting duplicate identifiers.
  util::PrefixedOutStream outstr(std::cerr,
        BASH_RED "[FATAL] " BASH_CLEAR, false, true /* fatal */);

  #undef BASH_RED
  #undef BASH_CLEAR

  // Define identifier and alias maps.
  gmap_t& gmap = GetSingleton().globalValues;
  amap_t& amap = GetSingleton().aliasValues;

  // If found in current map, print fatal error and terminate the program.
  if (gmap.count(identifier))
    outstr << "Parameter --" << identifier << "(-" << alias << ") "
           << "is defined multiple times with same identifiers." << std::endl;
  if (amap.count(alias))
    outstr << "Parameter --" << identifier << "(-" << alias << ") "
           << "is defined multiple times with same alias." << std::endl;

  po::options_description& desc = CLI::GetSingleton().desc;
  // Must make use of boost syntax here.
  std::string progOptId =
          alias.length() ? identifier + "," + alias : identifier;

  // Add the alias, if necessary
  AddAlias(alias, identifier);

  // Add the option to boost program_options.
  desc.add_options()(progOptId.c_str(), po::value<T>(), description.c_str());

  // Make sure the appropriate metadata is inserted into gmap.
  ParamData data;
  T tmp = T();

  data.desc = description;
  data.name = identifier;
  data.tname = TYPENAME(T);
  data.value = boost::any(tmp);
  data.wasPassed = false;

  gmap[identifier] = data;

  // If the option is required, add it to the required options list.
  if (required)
    GetSingleton().requiredOptions.push_front(identifier);

  // Depending on whether or not the option is input or output, add it to the
  // appropriate list.
  if (input)
    GetSingleton().inputOptions.push_front(identifier);
  else
    GetSingleton().outputOptions.push_front(identifier);
}
Exemplo n.º 29
0
CDatabase* CDatabase::GetSingletonPtr ( )
{
    return &GetSingleton ();
}
Exemplo n.º 30
0
void
CompositorLRU::Init()
{
  unused << GetSingleton();
}