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