OpticalTransmitter.h revision 10447
110447Snilay@cs.wisc.edu#ifndef __DSENT_MODEL_OPTICALGRAPH_OPTICALTRANSMITTER_H__
210447Snilay@cs.wisc.edu#define __DSENT_MODEL_OPTICALGRAPH_OPTICALTRANSMITTER_H__
310447Snilay@cs.wisc.edu
410447Snilay@cs.wisc.edu#include "model/OpticalModel.h"
510447Snilay@cs.wisc.edu#include "util/CommonType.h"
610447Snilay@cs.wisc.edu
710447Snilay@cs.wisc.edunamespace DSENT
810447Snilay@cs.wisc.edu{
910447Snilay@cs.wisc.edu    // The job of a optical sender interface is to provide a function to
1010447Snilay@cs.wisc.edu    // allow the insertion loss and extinction ratio to be changed
1110447Snilay@cs.wisc.edu    class OpticalTransmitter
1210447Snilay@cs.wisc.edu    {
1310447Snilay@cs.wisc.edu        public:
1410447Snilay@cs.wisc.edu            OpticalTransmitter(){};
1510447Snilay@cs.wisc.edu            virtual ~OpticalTransmitter(){};
1610447Snilay@cs.wisc.edu
1710447Snilay@cs.wisc.edu        public:
1810447Snilay@cs.wisc.edu            // Set the transmitter specifications, returns whether it is possible
1910447Snilay@cs.wisc.edu            // to build a modulator that met those specs
2010447Snilay@cs.wisc.edu            virtual bool setTransmitterSpec(double IL_dB_, double ER_dB_) = 0;
2110447Snilay@cs.wisc.edu            // Returns power of the transmitter at a given utilization
2210447Snilay@cs.wisc.edu            virtual double getPower(double util_) const = 0;
2310447Snilay@cs.wisc.edu    }; // class OpticalTransmitter
2410447Snilay@cs.wisc.edu
2510447Snilay@cs.wisc.edu} // namespace DSENT
2610447Snilay@cs.wisc.edu
2710447Snilay@cs.wisc.edu#endif // __DSENT_MODEL_OPTICALGRAPH_OPTICALTRANSMITTER_H__
2810447Snilay@cs.wisc.edu
29