32#include <Ice/BuiltinSequences.h>
62 std::string baseTypeName;
63 std::string dataTypeName;
64 std::string humanName;
65 std::optional<std::string> includePath;
83 std::string includePath;
84 std::string humanName;
86 std::string memberName;
87 std::string getterName;
88 std::string propertyName;
89 bool propertyIsOptional;
90 std::string propertyDefaultValue;
93 std::vector<std::string> includes;
94 std::vector<std::string> libraries;
95 std::vector<std::pair<std::string, std::string>> methods;
96 std::vector<std::string> members;
97 std::vector<std::string> onInit;
98 std::vector<std::string> onConnect;
99 std::vector<std::pair<std::string, std::string>> stateMethods;
146 return propertyIsOptional;
152 return propertyDefaultValue;
164 return proxyType ==
Topic ?
"Topic" :
"Proxy";
167 std::vector<std::string>
173 std::vector<std::string>
179 std::vector<std::pair<std::string, std::string>>
185 std::vector<std::string>
191 std::vector<std::string>
197 std::vector<std::string>
203 std::vector<std::pair<std::string, std::string>>
221 std::vector<ProxyEntryPtr>
getProxies()
const;
222 const std::vector<VariantEntryPtr>&
getVariants()
const;
230 std::vector<std::string>
234 std::vector<std::string> factoryIncludes;
235 std::vector<VariantEntryPtr> variants;
236 std::vector<ProxyEntryPtr> proxies;
238 std::string packageName;
244 const std::string& packagePath,
245 const std::string& packageName);
248 std::set<LibEntryPtr>
findLibs(
const Ice::StringSeq& variantTypeNames,
249 const Ice::StringSeq& proxyTypeNames = {})
const;
250 Ice::StringSeq
findLibNames(
const Ice::StringSeq& variantTypeNames,
251 const Ice::StringSeq& proxyTypeNames = {})
const;
254 bool isBasic(std::string variantBaseTypeName);
255 std::vector<LibEntryPtr>
getLibs()
const;
266 const std::string& rootPackagePath,
270 bool showErrors =
true,
271 bool throwOnError =
true);
276 std::vector<LibEntryPtr> libs;
277 std::map<std::string, LibEntryPtr> variantToLibMap;
278 std::map<std::string, VariantEntryPtr> variantMap;
279 std::map<std::string, VariantEntryPtr> humanNameToVariantMap;
280 std::map<std::string, ProxyEntryPtr> proxyMap;
281 std::map<std::string, std::string> packagePaths;
The DynamicLibrary class provides a mechanism to load libraries at runtime.
std::vector< std::string > getVariantIncludes(const std::string &variantBaseTypeName) const
Returns a list of includes for a specific variant (usually only one).
std::vector< ProxyEntryPtr > getProxies() const
LibEntry(RapidXmlReaderNode node, const std::string &packageName)
std::string getAbsoluteLibPath() const
std::string getPackageName() const
std::string getName() const
std::vector< std::string > getFactoryIncludes() const
const std::vector< VariantEntryPtr > & getVariants() const
std::vector< std::string > getIncludes()
std::vector< std::string > getLibraries()
std::vector< std::pair< std::string, std::string > > getStateMethods()
std::string getHumanName()
std::string getIncludePath()
std::vector< std::string > getMembers()
std::string getProxyTypeAsString()
std::string getPropertyDefaultValue()
std::vector< std::string > getOnConnect()
ProxyEntry(RapidXmlReaderNode node)
std::string getMemberName()
std::vector< std::string > getOnInit()
std::vector< std::pair< std::string, std::string > > getMethods()
bool getPropertyIsOptional()
std::string getTypeName()
std::string getGetterName()
std::string getPropertyName()
const std::string & getBaseTypeName() const
const std::string & getDataTypeName() const
const std::string & getHumanName() const
const std::optional< std::string > & getIncludePath() const
VariantEntry(RapidXmlReaderNode node)
std::vector< LibEntryPtr > readVariantInfo(RapidXmlReaderPtr reader, const std::string &packagePath, const std::string &packageName)
static VariantInfoPtr ReadInfoFilesRecursive(const std::string &rootPackageName, const std::string &rootPackagePath, bool showErrors, VariantInfoPtr variantInfo=VariantInfoPtr())
const std::map< std::string, std::string > & getPackagePaths() const
armarx::DynamicLibraryPtr loadLibraryOfVariant(std::string variantTypeName) const
bool isPackageLoaded(const std::string packageName) const
VariantEntryPtr getVariantByName(std::string variantBaseTypeName)
LibEntryPtr findLibByVariant(std::string variantTypeName) const
ProxyEntryPtr getProxyEntry(std::string proxyId)
VariantEntryPtr getVariantByHumanName(std::string humanName)
static VariantInfoPtr ReadInfoFiles(const std::vector< std::string > &packages, bool showErrors=true, bool throwOnError=true)
Ice::StringSeq findLibNames(const Ice::StringSeq &variantTypeNames, const Ice::StringSeq &proxyTypeNames={}) const
std::vector< LibEntryPtr > getLibs() const
std::string getReturnTypeName(std::string variantBaseTypeName)
std::shared_ptr< LibEntry > LibEntryPtr
std::shared_ptr< VariantEntry > VariantEntryPtr
std::string getDataTypeName(std::string variantBaseTypeName)
std::string getDebugInfo() const
LibEntryPtr findLibByProxy(std::string proxyTypeName) const
std::string getNestedHumanNameFromBaseName(std::string variantBaseTypeName)
bool isBasic(std::string variantBaseTypeName)
std::set< LibEntryPtr > findLibs(const Ice::StringSeq &variantTypeNames, const Ice::StringSeq &proxyTypeNames={}) const
std::string getNestedBaseNameFromHumanName(std::string humanName)
std::shared_ptr< ProxyEntry > ProxyEntryPtr
This file offers overloads of toIce() and fromIce() functions for STL container types.
std::shared_ptr< RapidXmlReader > RapidXmlReaderPtr
std::shared_ptr< VariantInfo > VariantInfoPtr
std::shared_ptr< DynamicLibrary > DynamicLibraryPtr