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