LRAUV  revA
MissionAPIRegistry.h
Go to the documentation of this file.
1 
10 #ifndef MISSIONAPIREGISTRY_H_
11 #define MISSIONAPIREGISTRY_H_
12 
13 #include "utils/FastMap.h"
14 #include "utils/Str.h"
15 
16 class MissionAPI;
17 
23 {
24 public:
25  static void Register( const char* const name, const char* const ext, MissionAPI* api );
26  static MissionAPI* FindByName( const char* const name );
27  static MissionAPI* FindByExtension( const char* const extension );
28 private:
33 
35  {
36  public:
37  virtual ~StaticDestructor();
38  };
40 };
41 
42 #endif /* MISSIONAPIREGISTRY_H_ */
Definition: MissionAPIRegistry.h:34
Registry of simpleton classes that implement MissionAPI.
Definition: MissionAPIRegistry.h:22
static MissionAPI * FindByExtension(const char *const extension)
Definition: MissionAPIRegistry.cpp:46
static void Register(const char *const name, const char *const ext, MissionAPI *api)
Definition: MissionAPIRegistry.cpp:30
static MissionAPI * FindByName(const char *const name)
Definition: MissionAPIRegistry.cpp:41
MissionAPIRegistry()
Purely static class has a private constructor with no implementation.
static StaticDestructor StaticDestructor_
Definition: MissionAPIRegistry.h:39
Abstract base class for mission scripts.
Definition: MissionAPI.h:32
Contains the FastMap class declaration.
static FastMap< const Str, MissionAPI * > * ApisByExtension_
Definition: MissionAPIRegistry.h:32
static FastMap< const Str, MissionAPI * > * ApisByName_
Definition: MissionAPIRegistry.h:31
virtual ~StaticDestructor()
Definition: MissionAPIRegistry.cpp:18