OpticalLinkBackendTx.h revision 10447:a465576671d4
1#ifndef __DSENT_MODEL_OPTICAL_OPTICALLINKBACKENDTX_H__ 2#define __DSENT_MODEL_OPTICAL_OPTICALLINKBACKENDTX_H__ 3 4#include "util/CommonType.h" 5#include "model/ElectricalModel.h" 6 7namespace DSENT 8{ 9 class OpticalLinkBackendTx : public ElectricalModel 10 { 11 // An optical link backend tx contains everything needed for thermal 12 // tuning of rings, bit-reshuffling (if necessary), and serialization (if necessary) 13 public: 14 OpticalLinkBackendTx(const String& instance_name_, const TechModel* tech_model_); 15 virtual ~OpticalLinkBackendTx(); 16 17 public: 18 // Set a list of properties' name needed to construct model 19 void initParameters(); 20 // Set a list of properties' name needed to construct model 21 void initProperties(); 22 23 protected: 24 // Build the model 25 virtual void constructModel(); 26 virtual void updateModel(); 27 virtual void propagateTransitionInfo(); 28 29 private: 30 // Calculate ring tuning power 31 double getRingTuningPower(); 32 // Calculate the degree of bit re-order muxing (for the bit-reshuffler) 33 unsigned int getBitReorderDegree(); 34 35 }; // class OpticalLinkBackendTx 36} // namespace DSENT 37 38#endif // __DSENT_MODEL_OPTICAL_OPTICALLINKBACKENDTX_H__ 39 40