Apollo  6.0
Open source self driving car software
Classes | Namespaces | Macros | Typedefs | Functions
registerer.h File Reference
#include <map>
#include <string>
#include <vector>
#include "cyber/common/log.h"
Include dependency graph for registerer.h:

Go to the source code of this file.

Classes

class  apollo::perception::lib::Any
 
class  apollo::perception::lib::ObjectFactory
 

Namespaces

 apollo
 PlanningContext is the runtime context in planning. It is persistent across multiple frames.
 
 apollo::perception
 apollo::perception
 
 apollo::perception::lib
 

Macros

#define PERCEPTION_REGISTER_REGISTERER(base_class)
 
#define PERCEPTION_REGISTER_CLASS(clazz, name)
 

Typedefs

typedef std::map< std::string, ObjectFactory * > apollo::perception::lib::FactoryMap
 
typedef std::map< std::string, FactoryMap > apollo::perception::lib::BaseClassMap
 

Functions

BaseClassMap & apollo::perception::lib::GlobalFactoryMap ()
 
bool apollo::perception::lib::GetRegisteredClasses (const std::string &base_class_name, std::vector< std::string > *registered_derived_classes_names)
 

Macro Definition Documentation

◆ PERCEPTION_REGISTER_CLASS

#define PERCEPTION_REGISTER_CLASS (   clazz,
  name 
)
Value:
namespace { \
class ObjectFactory##name : public apollo::perception::lib::ObjectFactory { \
public: \
virtual ~ObjectFactory##name() {} \
virtual ::apollo::perception::lib::Any NewInstance() { \
return ::apollo::perception::lib::Any(new name()); \
} \
}; \
__attribute__((constructor)) void RegisterFactory##name() { \
if (map.find(#name) == map.end()) map[#name] = new ObjectFactory##name(); \
} \
}
BaseClassMap & GlobalFactoryMap()
Definition: registerer.h:69
std::map< std::string, ObjectFactory * > FactoryMap
Definition: registerer.h:80

◆ PERCEPTION_REGISTER_REGISTERER

#define PERCEPTION_REGISTER_REGISTERER (   base_class)