#ifndef DOMAIN_LIBRARY_H #define DOMAIN_LIBRARY_H #include "addressspace.h" #include "bus.h" #include "component.h" #include "connection.h" #include #include namespace domain { using namespace std; class Library { std::string name; std::string libraryInfo; std::string header; std::string componentDirectory; std::vector addressSpaces; std::vector components; std::vector buses; std::vector connections; std::map messages; public: Library(string name, string libraryInfo, string header, string componentDirectory, vector addressSpaces, vector components, vector buses, vector connection, map messages); std::string getName(); std::string getLibraryInfo(); std::string getHeader(); std::string getComponentDirectory(); std::vector getAddressSpaces(); std::vector getComponents(); std::vector getBuses(); std::vector getConnections(); std::map getMessages(); AddressSpace &getAddressSpace(std::string name); Component &getComponent(std::string name); Bus &getBus(std::string bus); std::optional getConnection(std::string component, std::string pin, std::string bus); std::string getMessage(std::string key); }; } // namespace domain #endif // DOMAIN_LIBRARY_H