|
CIRCT 22.0.0git
|

Public Member Functions | |
| Impl (Context &ctxt, const std::string &jsonManifest) | |
| auto | at (const std::string &key) const |
| std::optional< ModuleInfo > | getModInfo (const nlohmann::json &) const |
| void | scanServiceDecls (AcceleratorConnection &, const nlohmann::json &, ServiceTable &) const |
| Go through the "service_decls" section of the manifest and populate the services table as appropriate. | |
| void | createEngine (AcceleratorConnection &, AppIDPath appID, const nlohmann::json &) const |
| TODO: Hack. | |
| services::Service * | getService (AppIDPath idPath, AcceleratorConnection &, const nlohmann::json &, ServiceTable &activeServices, bool isEngine=false) const |
| Get a Service for the service specified in 'json'. | |
| std::vector< services::Service * > | getServices (AppIDPath idPath, AcceleratorConnection &, const nlohmann::json &, ServiceTable &activeServices) const |
| Get all the services in the description of an instance. | |
| std::vector< std::unique_ptr< BundlePort > > | getBundlePorts (AcceleratorConnection &acc, AppIDPath idPath, const ServiceTable &activeServices, const nlohmann::json &instJson) const |
| Get the bundle ports for the instance at 'idPath' and specified in 'instJson'. | |
| std::vector< std::unique_ptr< Instance > > | getChildInstances (AppIDPath idPath, AcceleratorConnection &acc, const ServiceTable &activeServices, const nlohmann::json &instJson) const |
| Build the set of child instances (recursively) for the module instance description. | |
| std::unique_ptr< Instance > | getChildInstance (AppIDPath idPath, AcceleratorConnection &acc, ServiceTable activeServices, const nlohmann::json &childJson) const |
| Get a single child instance. | |
| void | populateTypes (const nlohmann::json &typesJson) |
| Parse all the types and populate the types table. | |
| const std::vector< const Type * > & | getTypeTable () const |
| Get the ordered list of types from the manifest. | |
| std::unique_ptr< Accelerator > | buildAccelerator (AcceleratorConnection &acc) const |
| Build a dynamic API for the Accelerator connection 'acc' based on the manifest stored herein. | |
| const Type * | parseType (const nlohmann::json &typeJson) |
| const std::map< std::string, const ModuleInfo > & | getSymbolInfo () const |
Private Member Functions | |
| std::optional< const Type * > | getType (Type::ID id) const |
| std::any | getAny (const nlohmann::json &value) const |
| Convert the json value to a 'std::any', which can be exposed outside of this file. | |
| void | parseModuleMetadata (ModuleInfo &info, const nlohmann::json &mod) const |
| void | parseModuleConsts (ModuleInfo &info, const nlohmann::json &mod) const |
Private Attributes | |
| Context & | ctxt |
| std::vector< const Type * > | _typeTable |
| nlohmann::json | manifestJson |
| std::map< std::string, const ModuleInfo > | symbolInfoCache |
Friends | |
| class | ::esi::Manifest |
Definition at line 30 of file Manifest.cpp.
| Manifest::Impl::Impl | ( | Context & | ctxt, |
| const std::string & | jsonManifest | ||
| ) |
Definition at line 251 of file Manifest.cpp.
References manifestJson, parseModuleConsts(), parseModuleMetadata(), populateTypes(), and symbolInfoCache.
|
inline |
Definition at line 36 of file Manifest.cpp.
References manifestJson.
| std::unique_ptr< Accelerator > Manifest::Impl::buildAccelerator | ( | AcceleratorConnection & | acc | ) | const |
Build a dynamic API for the Accelerator connection 'acc' based on the manifest stored herein.
Definition at line 277 of file Manifest.cpp.
References buildAccelerator().
Referenced by buildAccelerator().
| void Manifest::Impl::createEngine | ( | AcceleratorConnection & | acc, |
| AppIDPath | idPath, | ||
| const nlohmann::json & | eng | ||
| ) | const |
TODO: Hack.
This method is a giant hack to reuse the getService method for engines. It works, but it ain't pretty and it ain't right.
Definition at line 318 of file Manifest.cpp.
References createEngine().
Referenced by createEngine().
|
private |
| std::vector< std::unique_ptr< BundlePort > > Manifest::Impl::getBundlePorts | ( | AcceleratorConnection & | acc, |
| AppIDPath | idPath, | ||
| const ServiceTable & | activeServices, | ||
| const nlohmann::json & | instJson | ||
| ) | const |
Get the bundle ports for the instance at 'idPath' and specified in 'instJson'.
Look them up in 'activeServies'.
Definition at line 466 of file Manifest.cpp.
References getBundlePorts(), parseIDChecked(), and parseServicePort().
Referenced by getBundlePorts().
| std::unique_ptr< Instance > Manifest::Impl::getChildInstance | ( | AppIDPath | idPath, |
| AcceleratorConnection & | acc, | ||
| ServiceTable | activeServices, | ||
| const nlohmann::json & | childJson | ||
| ) | const |
Get a single child instance.
Implicitly copy the active services table so that it can be safely updated for the child's branch of the tree.
Definition at line 361 of file Manifest.cpp.
References getChildInstance(), and parseIDChecked().
Referenced by getChildInstance().
| std::vector< std::unique_ptr< Instance > > Manifest::Impl::getChildInstances | ( | AppIDPath | idPath, |
| AcceleratorConnection & | acc, | ||
| const ServiceTable & | activeServices, | ||
| const nlohmann::json & | instJson | ||
| ) | const |
Build the set of child instances (recursively) for the module instance description.
Definition at line 348 of file Manifest.cpp.
References getChildInstances().
Referenced by getChildInstances().
| std::optional< ModuleInfo > Manifest::Impl::getModInfo | ( | const nlohmann::json & | json | ) | const |
| services::Service * Manifest::Impl::getService | ( | AppIDPath | idPath, |
| AcceleratorConnection & | acc, | ||
| const nlohmann::json & | svcJson, | ||
| ServiceTable & | activeServices, | ||
| bool | isEngine = false |
||
| ) | const |
Get a Service for the service specified in 'json'.
Update the activeServices table. TODO: re-using this for the engines section is a terrible hack. Figure out a better way.
Definition at line 377 of file Manifest.cpp.
References getService(), parseIDChecked(), parseIDPath(), and parseServicePort().
Referenced by getService().
| std::vector< services::Service * > Manifest::Impl::getServices | ( | AppIDPath | idPath, |
| AcceleratorConnection & | acc, | ||
| const nlohmann::json & | svcsJson, | ||
| ServiceTable & | activeServices | ||
| ) | const |
Get all the services in the description of an instance.
Update the active services table.
Definition at line 452 of file Manifest.cpp.
References getServices().
Referenced by getServices().
|
inline |
Definition at line 97 of file Manifest.cpp.
References symbolInfoCache.
|
inlineprivate |
|
inline |
Get the ordered list of types from the manifest.
Definition at line 88 of file Manifest.cpp.
References _typeTable.
|
private |
Definition at line 234 of file Manifest.cpp.
References parseModuleConsts().
Referenced by Impl(), and parseModuleConsts().
|
private |
Definition at line 213 of file Manifest.cpp.
References parseModuleMetadata().
Referenced by Impl(), and parseModuleMetadata().
| const Type * Manifest::Impl::parseType | ( | const nlohmann::json & | typeJson | ) |
| void Manifest::Impl::populateTypes | ( | const nlohmann::json & | typesJson | ) |
Parse all the types and populate the types table.
Definition at line 620 of file Manifest.cpp.
References parseType(), and populateTypes().
Referenced by Impl(), and populateTypes().
| void Manifest::Impl::scanServiceDecls | ( | AcceleratorConnection & | acc, |
| const nlohmann::json & | svcDecls, | ||
| ServiceTable & | activeServices | ||
| ) | const |
Go through the "service_decls" section of the manifest and populate the services table as appropriate.
Definition at line 324 of file Manifest.cpp.
References scanServiceDecls().
Referenced by scanServiceDecls().
|
friend |
Definition at line 31 of file Manifest.cpp.
|
private |
Definition at line 103 of file Manifest.cpp.
Referenced by getTypeTable().
|
private |
Definition at line 102 of file Manifest.cpp.
Referenced by getType(), and esiaccel.accelerator.AcceleratorConnection::manifest().
|
private |
Definition at line 114 of file Manifest.cpp.
|
private |
Definition at line 116 of file Manifest.cpp.
Referenced by getSymbolInfo(), and Impl().