OpticalLinkBackendRx.h revision 10447
1#ifndef __DSENT_MODEL_OPTICAL_OPTICALLINKBACKENDRX_H__
2#define __DSENT_MODEL_OPTICAL_OPTICALLINKBACKENDRX_H__
3
4#include "util/CommonType.h"
5#include "model/ElectricalModel.h"
6
7namespace DSENT
8{
9    class OpticalLinkBackendRx : public ElectricalModel
10    {
11        // An optical link backend rx contains everything needed for thermal
12        // tuning of rings, bit-reshuffling (if necessary), and deserialization (if necessary)
13        public:
14            OpticalLinkBackendRx(const String& instance_name_, const TechModel* tech_model_);
15            virtual ~OpticalLinkBackendRx();
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 OpticalLinkBackendRx
36} // namespace DSENT
37
38#endif // __DSENT_MODEL_OPTICAL_OPTICALLINKBACKENDRX_H__
39
40