SWMRLink.h revision 10447
1#ifndef __DSENT_MODEL_OPTICAL_SWMRLINK_H__
2#define __DSENT_MODEL_OPTICAL_SWMRLINK_H__
3
4#include "util/CommonType.h"
5#include "model/OpticalModel.h"
6
7namespace DSENT
8{
9    class SWMRLink : public OpticalModel
10    {
11        // A SWMR Link consists of a laser, a modulator (the writer) and a variable
12        // number of readers
13        public:
14            SWMRLink(const String& instance_name_, const TechModel* tech_model_);
15            virtual ~SWMRLink();
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            void buildLaser();
31            void buildModulator();
32            void buildDetectors();
33
34    }; // class SWMRLink
35} // namespace DSENT
36
37#endif // __DSENT_MODEL_OPTICAL_SWMRLINK_H__
38
39