7 #ifndef __FWRUNTIME_IO_BUNDLEDESCRIPTORREADER_HPP__ 8 #define __FWRUNTIME_IO_BUNDLEDESCRIPTORREADER_HPP__ 11 #pragma GCC visibility push(default) 15 #include <boost/filesystem/path.hpp> 16 #include <libxml/parser.h> 18 #pragma GCC visibility pop 21 #include "fwRuntime/ExtensionPoint.hpp" 22 #include "fwRuntime/RuntimeException.hpp" 23 #include "fwRuntime/dl/Library.hpp" 29 struct ConfigurationElement;
31 struct ExtensionPoint;
41 typedef std::vector< std::shared_ptr<Bundle> > BundleContainer;
53 FWRUNTIME_API
static std::shared_ptr<Bundle>
createBundle(
const boost::filesystem::path& location);
62 FWRUNTIME_API
static const BundleContainer
createBundles(
const boost::filesystem::path& location);
73 const std::shared_ptr<Bundle> bundle)
78 static std::string CLASS;
79 static std::string EXTENSION;
80 static std::string EXTENSION_POINT;
81 static std::string ID;
82 static std::string IMPLEMENTS;
83 static std::string NAME;
84 static std::string LIBRARY;
85 static std::string PLUGIN;
86 static std::string REQUIREMENT;
87 static std::string SCHEMA;
88 static std::string VERSION;
89 static std::string POINT;
99 static std::shared_ptr<Extension> processExtension(xmlNodePtr node,
100 const std::shared_ptr<Bundle> bundle);
109 static PointExtensionsPairType processPoint(xmlNodePtr node,
110 const std::shared_ptr<Bundle> bundle);
120 static std::shared_ptr<ExtensionPoint> processExtensionPoint(xmlNodePtr node,
121 const std::shared_ptr<Bundle> bundle);
130 static std::shared_ptr<dl::Library> processLibrary(xmlNodePtr node);
140 static std::shared_ptr<Bundle> processPlugin(xmlNodePtr node,
141 const boost::filesystem::path& location);
150 static const std::string processRequirement(xmlNodePtr node);
157 #endif // __FWRUNTIME_IO_BUNDLEDESCRIPTORREADER_HPP__ static FWRUNTIME_API const BundleContainer createBundles(const boost::filesystem::path &location)
Creates all bundles that are found at the given location.
static FWRUNTIME_API std::shared_ptr< ConfigurationElement > processConfigurationElement(xmlNodePtr node, const std::shared_ptr< Bundle > bundle)
Processes a configuration element XML node.
static FWRUNTIME_API std::shared_ptr< Bundle > createBundle(const boost::filesystem::path &location)
Look for a descriptor at the specified location, reads it and creates a bundle with it...
The namespace fwRuntime contains classes to manage bundle, configuration element, extension point in ...
std::pair< std::shared_ptr< ExtensionPoint >, std::vector< std::shared_ptr< Extension > > > PointExtensionsPairType
Pair of created extension point associated with extensions.
Defines the bundle descriptor reader class.