1 #ifndef EXTENSION_HANDLER_REGISTRY_H_INCLUDED
2 #define EXTENSION_HANDLER_REGISTRY_H_INCLUDED
4 #ifndef OSCL_VECTOR_H_INCLUDED
5 #include "oscl_vector.h"
8 #ifndef OSCL_MEM_H_INCLUDED
12 #include "oscl_string.h"
14 #include "extension_registry_populator_interface.h"
16 class OsclSharedLibrary;
18 class PVPlayerExtensionRegistry : public ExtensionRegistryInterface
22 PVPlayerExtensionRegistry();
24 * Function for parsing the configuration file and load the Extension libraries
27 * Configuration file to be parsed for extension libraries which support registry populator interface
29 void loadPVPlayerExtensions(const OSCL_String& configFile);
31 * Function for unloading the Extension libraries
33 void removePVPlayerExtensions();
35 * Function for Creating Extension specified by the String UUID
37 virtual IDispatch* createExtension(const String16& extnIfaceUID,PVPlayerExtensionHandler& extnHandler );
40 * Function for Populating the registry
42 virtual void registerExtension(const PVPlayerExtnInfo& extnInfo){
43 mType.push_back(extnInfo);
45 virtual ~PVPlayerExtensionRegistry();
48 Oscl_Vector<PVPlayerExtnInfo, OsclMemAllocator> mType;
51 OsclSharedLibrary* mLib;
52 ExtnRegPopulatorInterface* mExtnLibIfacePtr;
53 } PVPlayerExtnSharedLibInfo;
54 Oscl_Vector<PVPlayerExtnSharedLibInfo*, OsclMemAllocator> mExtnIfaceInfoList;
57 //Class used by Extension Handler for populating the registry
58 class PVPlayerExtnPopulator
61 static void populate(PVPlayerExtensionRegistry&);
62 static void depopulate(PVPlayerExtensionRegistry&);
64 PVPlayerExtnPopulator();
68 #endif // EXTENSION_HANDLER_REGISTRY_H_INCLUDED