18 #ifndef __OMNETPP_NEDXML_NEDRESOURCECACHE_H 19 #define __OMNETPP_NEDXML_NEDRESOURCECACHE_H 24 #include "nedelements.h" 59 virtual bool contains(
const char *
qname)
const = 0;
62 virtual int size()
const = 0;
65 virtual const char *
get(
int k)
const = 0;
77 virtual const char *
get(
int k)
const override {
return p->
getTypeNames()[k].c_str();}
96 typedef std::map<std::string,std::string>
StringMap;
110 virtual void registerBuiltinDeclarations();
111 virtual int doLoadNedSourceFolder(
const char *foldername,
const char *expectedPackage);
112 virtual void doLoadNedFileOrText(
const char *nedfname,
const char *nedtext,
const char *expectedPackage,
bool isXML);
113 virtual ASTNode *parseAndValidateNedFileOrText(
const char *nedfname,
const char *nedtext,
bool isXML);
114 virtual std::string determineRootPackageName(
const char *nedSourceFolderName);
115 virtual std::string getNedSourceFolderForFolder(
const char *folder)
const;
116 virtual void collectNedTypesFrom(
ASTNode *node,
const std::string& packagePrefix,
bool areInnerTypes);
117 virtual void collectNedType(
const char *
qname,
bool isInnerType,
ASTNode *node);
118 virtual bool areDependenciesResolved(
const char *
qname,
ASTNode *node);
119 virtual void registerPendingNedTypes();
120 virtual void registerNedType(
const char *
qname,
bool isInnerType,
ASTNode *node);
121 virtual std::string getFirstError(
ErrorStore *errors,
const char *prefix=
nullptr);
139 virtual int loadNedSourceFolder(
const char *foldername);
148 virtual void loadNedFile(
const char *nedfname,
const char *expectedPackage,
bool isXML);
160 virtual void loadNedText(
const char *name,
const char *nedtext,
const char *expectedPackage,
bool isXML);
167 virtual void doneLoadingNedFiles();
174 virtual bool addFile(
const char *fname,
ASTNode *node);
177 virtual ASTNode *getFile(
const char *fname)
const;
185 virtual NedFileElement *getParentPackageNedFile(NedFileElement *nedfile)
const;
199 return resolveNedType(context, nedtypename, &names);
203 virtual const std::vector<std::string>& getTypeNames()
const;
209 virtual std::string getNedPackageForFolder(
const char *folder)
const;
ASTNode * element
Definition: nedresourcecache.h:39
#define NEDXML_API
Definition: nedxmldefs.h:31
Definition: nedresourcecache.h:70
Context of NED type lookup, for NedResourceCache.
Definition: nedresourcecache.h:37
Definition: nedresourcecache.h:99
virtual NedTypeInfo * lookup(const char *qname) const
std::map< std::string, std::string > StringMap
Definition: nedresourcecache.h:96
NedFileMap files
Definition: nedresourcecache.h:85
virtual bool contains(const char *qname) const override
Definition: nedresourcecache.h:75
bool isInnerType
Definition: nedresourcecache.h:101
std::vector< std::string > nedTypeNames
Definition: nedresourcecache.h:92
virtual int size() const override
Definition: nedresourcecache.h:76
std::string qname
Definition: nedresourcecache.h:100
PendingNedType(const char *q, bool inner, ASTNode *e)
Definition: nedresourcecache.h:103
virtual std::string resolveNedType(const NedLookupContext &context, const char *nedtypename)
Definition: nedresourcecache.h:197
NedResourceCache * p
Definition: nedresourcecache.h:72
NedTypeInfoMap nedTypes
Definition: nedresourcecache.h:89
virtual ~INedTypeNames()
Definition: nedresourcecache.h:67
virtual const std::vector< std::string > & getTypeNames() const
Stores loaded NED files, and keeps track of components in them.
Definition: nedresourcecache.h:52
std::map< std::string, ASTNode * > NedFileMap
Definition: nedresourcecache.h:81
Stores information on a NED type.
Definition: nedtypeinfo.h:43
ASTNode * node
Definition: nedresourcecache.h:102
NedLookupContext(ASTNode *e, const char *q)
Definition: nedresourcecache.h:41
Definition: astbuilder.h:25
CachedTypeNames(NedResourceCache *p)
Definition: nedresourcecache.h:74
std::vector< PendingNedType > pendingList
Definition: nedresourcecache.h:107
std::map< std::string, NedTypeInfo * > NedTypeInfoMap
Definition: nedresourcecache.h:82
Definition: errorstore.h:37
StringMap folderPackages
Definition: nedresourcecache.h:97
std::string qname
Definition: nedresourcecache.h:40
Definition: nedresourcecache.h:56