54 #ifndef _MIRA_LIBRARYREGISTRY_H_ 55 #define _MIRA_LIBRARYREGISTRY_H_ 67 template<
typename Reflector>
70 r.member(
"Major",
mMajor,
"" );
71 r.member(
"Minor",
mMinor,
"" );
72 r.member(
"Patch",
mPatch,
"" );
105 template<
typename Reflector>
108 auto version = r.version(2,
this);
109 r.member(
"Version",
mVersion,
"Library version",
111 r.member(
"HasManifest",
mHasManifest,
"Found a manifest for this lib",
113 r.member(
"IsLoaded",
mIsLoaded,
"Lib was loaded",
116 r.member(
"LoadError",
mLoadError,
"Type of load error (or NoError)");
117 r.roproperty(
"LoadError",
mLoadError,
"Type of load error (or NoError)",
119 "1=Manifest loaded twice;" 120 "2=Manifest version conflict;" 121 "3=Library loaded twice;" 122 "4=Library version conflict"));
124 "Version of manifest/library that was conflicting (if any)",
154 typedef std::map<std::string, LibraryInfo >
Register;
182 boost::mutex::scoped_lock lock(
instance().mMutex);
uint32 mPatch
Definition: LibraryRegistry.h:88
Definition: LibraryRegistry.h:61
Class for in place stream formatting.
Definition: LibraryRegistry.h:99
Definition: LibraryRegistry.h:98
static Type & instance()
Returns a reference to the singleton instance.
Definition: Singleton.h:508
A registry for shared libraries.
Definition: LibraryRegistry.h:151
specialize cv::DataType for our ImgPixel and inherit from cv::DataType<Vec>
Definition: IOService.h:67
LibraryVersion mConflictingVersion
Definition: LibraryRegistry.h:140
PropertyHint enumeration(const std::string &values)
Sets the attribute "enumeration".
Definition: PropertyHint.h:306
Provides property hints and attributes.
std::string reportError() const
Provided for convenience.
Definition: Singleton.h:528
uint32 mMajor
Definition: LibraryRegistry.h:86
ErrorType
Definition: LibraryRegistry.h:97
std::ostream & operator<<(std::ostream &s, const LibraryVersion &version)
void reflect(Reflector &r)
Definition: LibraryRegistry.h:68
Definition: LibraryRegistry.h:101
std::map< std::string, LibraryInfo > Register
Definition: LibraryRegistry.h:154
bool empty()
Definition: LibraryRegistry.h:84
A singleton class that can be freely configured using policies that control the creation, instantiation, lifetime and thread-safety.
LibraryVersion()
Definition: LibraryRegistry.h:63
uint32 mMinor
Definition: LibraryRegistry.h:87
static std::string reportErrors()
Get full list of load error descriptions as string.
bool operator==(const LibraryVersion &other) const
Definition: LibraryRegistry.h:75
bool mIsLoaded
Definition: LibraryRegistry.h:137
void setLoadError(ErrorType error, LibraryVersion conflictingVersion=LibraryVersion())
bool mHasManifest
Definition: LibraryRegistry.h:136
static void registerLibrary(const std::string &name, const LibraryVersion &version)
Register library is loaded.
LibraryVersion mVersion
Definition: LibraryRegistry.h:134
static bool hasLoadError()
Query whether any library/manifest had an error when loading.
void reflect(Reflector &r)
Definition: LibraryRegistry.h:106
Definition: LibraryRegistry.h:100
ErrorType mLoadError
Definition: LibraryRegistry.h:139
Definition: LibraryRegistry.h:95
LibraryVersion(uint32 iMajor, uint32 iMinor, uint32 iPatch)
Definition: LibraryRegistry.h:64
static void registerManifest(const std::string &name, const LibraryVersion &version)
Register library manifest.
Definition: LibraryRegistry.h:102
static Register getRegister()
Get access to library register.
Definition: LibraryRegistry.h:180
When this flag is used in calls to Reflector::member(), that member is also reflected as read-only pr...
Definition: ReflectControlFlags.h:103
bool operator!=(const LibraryVersion &other) const
Definition: LibraryRegistry.h:82