PhotonicClos.h revision 10447:a465576671d4
15323Sgblack@eecs.umich.edu#ifndef __DSENT_MODEL_NETWORK_PHOTONIC_CLOS_H__ 22934Sktlim@umich.edu#define __DSENT_MODEL_NETWORK_PHOTONIC_CLOS_H__ 32934Sktlim@umich.edu 42934Sktlim@umich.edu#include "util/CommonType.h" 52934Sktlim@umich.edu#include "model/ElectricalModel.h" 62934Sktlim@umich.edu 72934Sktlim@umich.edunamespace DSENT 82934Sktlim@umich.edu{ 92934Sktlim@umich.edu /** 102934Sktlim@umich.edu * \brief An 3-stage clos network implemented with photonic router-to-router links 112934Sktlim@umich.edu */ 122934Sktlim@umich.edu class PhotonicClos : public ElectricalModel 132934Sktlim@umich.edu { 142934Sktlim@umich.edu public: 152934Sktlim@umich.edu PhotonicClos(const String& instance_name_, const TechModel* tech_model_); 162934Sktlim@umich.edu virtual ~PhotonicClos(); 172934Sktlim@umich.edu 182934Sktlim@umich.edu public: 192934Sktlim@umich.edu // Set a list of properties' name needed to construct model 202934Sktlim@umich.edu void initParameters(); 212934Sktlim@umich.edu // Set a list of properties' name needed to construct model 222934Sktlim@umich.edu void initProperties(); 232934Sktlim@umich.edu 242934Sktlim@umich.edu // Clone and return a new instance 252934Sktlim@umich.edu virtual PhotonicClos* clone() const; 262934Sktlim@umich.edu 272934Sktlim@umich.edu protected: 282934Sktlim@umich.edu // Build the model 292934Sktlim@umich.edu virtual void constructModel(); 302969Sktlim@umich.edu virtual void updateModel(); 312934Sktlim@umich.edu virtual void propagateTransitionInfo(); 322995Ssaidi@eecs.umich.edu 332934Sktlim@umich.edu }; 342934Sktlim@umich.edu} // namespace DSENT 352934Sktlim@umich.edu 362934Sktlim@umich.edu#endif // __DSENT_MODEL_NETWORK_PHOTONIC_CLOS_H__ 372934Sktlim@umich.edu 382934Sktlim@umich.edu