OpticalTransmitter.h revision 10447
1#ifndef __DSENT_MODEL_OPTICALGRAPH_OPTICALTRANSMITTER_H__
2#define __DSENT_MODEL_OPTICALGRAPH_OPTICALTRANSMITTER_H__
3
4#include "model/OpticalModel.h"
5#include "util/CommonType.h"
6
7namespace DSENT
8{
9    // The job of a optical sender interface is to provide a function to
10    // allow the insertion loss and extinction ratio to be changed
11    class OpticalTransmitter
12    {
13        public:
14            OpticalTransmitter(){};
15            virtual ~OpticalTransmitter(){};
16
17        public:
18            // Set the transmitter specifications, returns whether it is possible
19            // to build a modulator that met those specs
20            virtual bool setTransmitterSpec(double IL_dB_, double ER_dB_) = 0;
21            // Returns power of the transmitter at a given utilization
22            virtual double getPower(double util_) const = 0;
23    }; // class OpticalTransmitter
24
25} // namespace DSENT
26
27#endif // __DSENT_MODEL_OPTICALGRAPH_OPTICALTRANSMITTER_H__
28
29