1#ifndef _MODULE_INSTANCE_H_
2#define _MODULE_INSTANCE_H_
24 class CXXConstructorDecl;
63 typedef std::vector<std::tuple<std::string, PortDecl *> >
PortType;
64 typedef std::vector<std::tuple<std::string, PortDecl *> >
portMapType;
73 const std::tuple<const std::string &, clang::CXXRecordDecl *> &);
149 void dump(llvm::raw_ostream &);
191 std::vector<EntryFunctionContainer *>
vef_;
std::vector< EntryFunctionContainer * > entryFunctionVectorType
Typedefs.
std::map< string, FindTemplateTypes * > interfaceType
void addConstructor(FindConstructor *)
std::pair< std::string, InterfaceDecl * > interfacePairType
std::vector< std::string > template_parameters_
Class template parameters.
std::string instance_name_
const portMapType & getOtherVars()
std::pair< std::string, std::string > portSignalPairType
bool isModuleClassDeclNull()
void addInputInterfaces(FindTLMInterfaces::interfaceType)
portMapType ostreamports_
void addNestedModule(ModuleInstance *submodule)
void addInstances(const std::vector< std::string > &)
std::pair< std::string, ProcessDecl * > processPairType
void setInstanceName(const std::string &)
const std::vector< std::string > & getTemplateParameters() const
void addConstructor(clang::Stmt *)
ModuleInstance & operator=(const ModuleInstance &from)
portSignalMapType port_signal_map_
const clang::CXXRecordDecl * getModuleClassDecl()
void dumpSignals(llvm::raw_ostream &, int)
void addBaseInstance(ModuleInstance *)
clang::FieldDecl * getInstanceFieldDecl()
std::vector< ModuleInstance * > base_instances_
clang::Decl * instance_decl_
interfaceMapType ointerfaces_
void setTemplateArgs(const vector< std::string > &)
void dumpPorts(llvm::raw_ostream &)
std::vector< std::tuple< std::string, PortDecl * > > portMapType
const portMapType & getIOPorts()
const portMapType & getOPorts()
void addPortBinding(const std::string &port_name, PortBinding *pb)
std::map< std::string, PortBinding * > portBindingMapType
portMapType other_fields_
const clang::Stmt * getConstructorStmt() const
clang::CXXRecordDecl * class_decl_
void dumpInterfaces(llvm::raw_ostream &, int)
const std::vector< ModuleInstance * > & getNestedModuleInstances() const
void setTemplateParameters(const vector< std::string > &)
void addProcess(FindEntryFunctions::entryFunctionVectorType *)
const portMapType & getOutputStreamPorts()
void addInputOutputInterfaces(FindTLMInterfaces::interfaceType)
std::string dumpPortBinding()
std::map< std::string, InterfaceDecl * > interfaceMapType
void addOutputInterfaces(FindTLMInterfaces::interfaceType)
virtual ~ModuleInstance()
std::vector< std::tuple< std::string, PortDecl * > > PortType
void setInstanceDecl(Decl *)
portBindingMapType port_bindings_
std::string getName() const
std::map< std::string, SignalDecl * > signalMapType
std::vector< ModuleInstance * > nested_modules_
Nested modules.
const portMapType & getInputStreamPorts()
const portBindingMapType & getPortBindings()
void dump(llvm::raw_ostream &)
std::map< std::string, std::string > portSignalMapType
const interfaceMapType & getOInterfaces()
void setModuleName(const std::string &)
bool isInstanceFieldDecl() const
const interfaceMapType & getIInterfaces()
ModuleInstanceType getInstanceInfo()
std::string getInstanceName() const
clang::Stmt * constructor_stmt_
portMapType istreamports_
interfaceMapType iointerfaces_
void dump_base_instances(llvm::raw_ostream &os)
const clang::Decl * getInstanceDecl()
void dumpSignalBinding(llvm::raw_ostream &, int)
const clang::CXXConstructorDecl * getConstructorDecl() const
std::pair< std::string, SignalDecl * > signalPairType
void dumpProcesses(llvm::raw_ostream &, int)
interfaceMapType iinterfaces_
const std::vector< ModuleInstance * > & getBaseInstances()
processMapType process_map_
std::pair< std::string, std::string > moduleProcessPairType
const std::vector< std::string > & getInstanceList()
std::map< std::string, ProcessDecl * > processMapType
std::vector< std::string > instance_list_
void setInstanceInfo(const sc_ast_matchers::ModuleInstanceType &info)
void addSignalBinding(std::map< std::string, std::string >)
std::vector< std::string > template_args_
clang::CXXConstructorDecl * constructor_decl_
clang::VarDecl * getInstanceVarDecl()
std::pair< std::string, PortBinding * > portBindingPairType
std::vector< EntryFunctionContainer * > vef_
std::vector< std::string > instanceName
ModuleInstance()
Default constructor.
const interfaceMapType & getIOInterfaces()
void dumpInstances(llvm::raw_ostream &, int)
const processMapType & getProcessMap()
int getNumInstances() const
ModuleInstanceType instance_info_
const portMapType & getSubmodules()
const std::vector< EntryFunctionContainer * > & getEntryFunctionContainer()
void addPorts(const PortType &found_ports, const std::string &port_type)
const portMapType & getIPorts()
const signalMapType & getSignals() const
Clang forward declarations.