41 string aFactoryFunctionName;
76 DriverLib(
string& pPathRef,
string& pFactoryFunctionNameRef) :
Library(
"DriverLib",pPathRef) {
78 aFactoryFunctionName = string(pFactoryFunctionNameRef);
81 createTypeCatalog vCreateCatalogPtr;
82 string vCreateCatalogName(
"create"+aFactoryFunctionName);
83 vCreateCatalogPtr = (createTypeCatalog)getMethodPtr(vCreateCatalogName);
89 aCatalogPtr = vCreateCatalogPtr();
92 string vDriverInfoName(
"driverInfo");
94 vDriverInfoPtr = (
driverInfo)getMethodPtr(vDriverInfoName);
96 if (
nullptr == vDriverInfoPtr) {
100 vDriverInfoPtr(aDriverInfo);
118 destroyTypeCatalog vDestroyCatalogPtr;
119 string vDestroyCatalogName(
"destroy"+aFactoryFunctionName);
120 vDestroyCatalogPtr = (destroyTypeCatalog)getMethodPtr(vDestroyCatalogName);
122 if (
nullptr != vDestroyCatalogPtr) {
123 vDestroyCatalogPtr(aCatalogPtr);
144 vResultPtr = aCatalogPtr;
164 Type* vResultPtr =
nullptr;
166 vResultPtr = aCatalogPtr->ptr(pItemNameRef);
178 aCatalogPtr->forEach(pWorker);
188 bool has(
string& pItemNameRef) {
189 return aCatalogPtr->has(pItemNameRef);