OpticalFilter.h revision 10447
110447Snilay@cs.wisc.edu#ifndef __DSENT_MODEL_OPTICALGRAPH_OPTICALFILTER_H__ 210447Snilay@cs.wisc.edu#define __DSENT_MODEL_OPTICALGRAPH_OPTICALFILTER_H__ 310447Snilay@cs.wisc.edu 410447Snilay@cs.wisc.edu#include "model/optical_graph/OpticalNode.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 class OpticalFilter : public OpticalNode 1010447Snilay@cs.wisc.edu { 1110447Snilay@cs.wisc.edu public: 1210447Snilay@cs.wisc.edu OpticalFilter(const String& instance_name_, OpticalModel* model_, const WavelengthGroup& wavelengths_, bool drop_all_, const WavelengthGroup& drop_wavelengths_); 1310447Snilay@cs.wisc.edu ~OpticalFilter(); 1410447Snilay@cs.wisc.edu 1510447Snilay@cs.wisc.edu public: 1610447Snilay@cs.wisc.edu // Get the drop all flag 1710447Snilay@cs.wisc.edu bool getDropAll() const; 1810447Snilay@cs.wisc.edu // Get drop wavelengths 1910447Snilay@cs.wisc.edu WavelengthGroup getDropWavelengths() const; 2010447Snilay@cs.wisc.edu // Set and get the drop loss 2110447Snilay@cs.wisc.edu void setDropLoss(double drop_loss_); 2210447Snilay@cs.wisc.edu double getDropLoss() const; 2310447Snilay@cs.wisc.edu // Set and get drop port 2410447Snilay@cs.wisc.edu void setDropPort(OpticalNode* drop_port_); 2510447Snilay@cs.wisc.edu OpticalNode* getDropPort(); 2610447Snilay@cs.wisc.edu // Checks to see if a set of wavelengths will be dropped 2710447Snilay@cs.wisc.edu bool isDropped(const WavelengthGroup& wavelengths_) const; 2810447Snilay@cs.wisc.edu 2910447Snilay@cs.wisc.edu private: 3010447Snilay@cs.wisc.edu // Disable copy constructor 3110447Snilay@cs.wisc.edu OpticalFilter(const OpticalFilter& node_); 3210447Snilay@cs.wisc.edu 3310447Snilay@cs.wisc.edu private: 3410447Snilay@cs.wisc.edu // Whether to drop all the optical signal for the drop wavelengths 3510447Snilay@cs.wisc.edu // i.e. so that the drop wavelengths are not traced anymore 3610447Snilay@cs.wisc.edu const bool m_drop_all_; 3710447Snilay@cs.wisc.edu // The loss incurred from in to drop port 3810447Snilay@cs.wisc.edu double m_drop_loss_; 3910447Snilay@cs.wisc.edu // The wavelengths that are dropped 4010447Snilay@cs.wisc.edu const WavelengthGroup m_drop_wavelengths_; 4110447Snilay@cs.wisc.edu // The node at the drop port 4210447Snilay@cs.wisc.edu OpticalNode* m_drop_port_; 4310447Snilay@cs.wisc.edu }; 4410447Snilay@cs.wisc.edu 4510447Snilay@cs.wisc.edu} // namespace DSENT 4610447Snilay@cs.wisc.edu 4710447Snilay@cs.wisc.edu#endif // __DSENT_MODEL_OPTICALGRAPH_OPTICALFILTER_H__ 4810447Snilay@cs.wisc.edu 49