/* * Sizing.h * openChams * * Created by damien dupuis on 08/02/10. * Copyright 2010 UPMC / LIP6. All rights reserved. * */ #ifndef __OPENCHAMS_SIZING_H__ #define __OPENCHAMS_SIZING_H__ #include <map> #include "Name.h" namespace OpenChams { class Circuit; class Operator; class Sizing { public: Sizing(Circuit*); Operator* addOperator(Name instanceName, Name operatorName, Name simulModel, unsigned callOrder); void addEquation(Name equationName, std::string equation); inline bool hasNoOperators(); inline bool hasNoEquations(); inline const std::map<Name, Operator*>& getOperators(); inline const std::map<Name, std::string>& getEquations(); private: Circuit* _circuit; std::map<Name, Operator*> _operators; //instanceName <-> operator std::map<Name, std::string> _equations; //equationName <-> equation (string) }; inline bool Sizing::hasNoOperators() { return (_operators.size() == 0) ? true : false; }; inline bool Sizing::hasNoEquations() { return (_equations.size() == 0) ? true : false; }; inline const std::map<Name, Operator*>& Sizing::getOperators() { return _operators; }; inline const std::map<Name, std::string>& Sizing::getEquations() { return _equations; }; } // namespace #endif