OpticalTransmitter.h revision 10448
16145SN/A/* Copyright (c) 2012 Massachusetts Institute of Technology
28683SN/A *
310973Sdavid.hashe@amd.com * Permission is hereby granted, free of charge, to any person obtaining a copy
46145SN/A * of this software and associated documentation files (the "Software"), to deal
56145SN/A * in the Software without restriction, including without limitation the rights
66145SN/A * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
76145SN/A * copies of the Software, and to permit persons to whom the Software is
86145SN/A * furnished to do so, subject to the following conditions:
96145SN/A *
106145SN/A * The above copyright notice and this permission notice shall be included in
116145SN/A * all copies or substantial portions of the Software.
126145SN/A *
136145SN/A * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
146145SN/A * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
156145SN/A * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
166145SN/A * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
176145SN/A * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
186145SN/A * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
196145SN/A * THE SOFTWARE.
206145SN/A */
216145SN/A
226145SN/A#ifndef __DSENT_MODEL_OPTICALGRAPH_OPTICALTRANSMITTER_H__
236145SN/A#define __DSENT_MODEL_OPTICALGRAPH_OPTICALTRANSMITTER_H__
246145SN/A
256145SN/A#include "model/OpticalModel.h"
266145SN/A#include "util/CommonType.h"
276145SN/A
286145SN/Anamespace DSENT
296145SN/A{
3010441Snilay@cs.wisc.edu    // The job of a optical sender interface is to provide a function to
3110441Snilay@cs.wisc.edu    // allow the insertion loss and extinction ratio to be changed
326145SN/A    class OpticalTransmitter
337055SN/A    {
3411168Sandreas.hansson@arm.com        public:
356145SN/A            OpticalTransmitter(){};
366145SN/A            virtual ~OpticalTransmitter(){};
379104SN/A
3810301Snilay@cs.wisc.edu        public:
399105SN/A            // Set the transmitter specifications, returns whether it is possible
408174SN/A            // to build a modulator that met those specs
417039SN/A            virtual bool setTransmitterSpec(double IL_dB_, double ER_dB_) = 0;
427039SN/A            // Returns power of the transmitter at a given utilization
437039SN/A            virtual double getPower(double util_) const = 0;
4410970Sdavid.hashe@amd.com    }; // class OpticalTransmitter
4510301Snilay@cs.wisc.edu
4610301Snilay@cs.wisc.edu} // namespace DSENT
477039SN/A
487039SN/A#endif // __DSENT_MODEL_OPTICALGRAPH_OPTICALTRANSMITTER_H__
496145SN/A
507039SN/A