• Main Page
  • Classes
  • Files
  • File List

MultiValArrayPulseGenerator.h

00001 /*
00002  * MultiValArrayPulseGenerator.h
00003  *
00004  *  Created on: Jul 24, 2012
00005  *      Author: dejan
00006  */
00007 
00008 #ifndef MultiValArrayPULSEGENERATOR_H_
00009 #define MultiValArrayPULSEGENERATOR_H_
00010 
00011 #include "EvSimObject.h"
00012 #include "EvSimObjectTypeUtils.h"
00013 #include "DirectEventSender.h"
00014 
00015 class MultiValArrayPulseGenerator : public EvSimObject, public DirectEventSender {
00016 
00017         EV_SIM_OBJECT( MultiValArrayPulseGenerator )
00018 
00019 public:
00020 
00021         MultiValArrayPulseGenerator(unsigned short num_val = 2,
00022                                                                 const std::vector<unsigned short> & array = vector<unsigned short>(),
00023                                             bool isActive = true) :
00024                                             isActive(isActive), array(array), num_val(num_val)
00025                                           {}
00026 
00027 
00028         bool isActive;
00029 
00030         const std::vector<unsigned short> & getMultiValArray() {
00031                 return array;
00032         }
00033 
00034         virtual unsigned numOutputPorts() const
00035         {
00036                 return num_val;
00037         };
00038 
00039         virtual EvSimObject::PortType outputPortType(port_id_t p) const
00040         {
00041                 if (p < num_val)
00042                         return EvSimObject::eventPortDirect;
00043                 return EvSimObject::portUndefined;
00044         }
00045 
00046 
00047         void setMultiValArray(const std::vector<unsigned short> & array) {
00048                 this->array = array;
00049         }
00050 
00051         virtual ~MultiValArrayPulseGenerator() {}
00052 
00053         virtual void reset(SimContext &sim_ctxt);
00054 
00055         virtual void eventHit(SimContext & sim_ctxt, Time time, port_id_t port);
00056 
00057 protected:
00058         vector<unsigned short> array;
00059         unsigned short num_val;
00060         unsigned curr_idx;
00061 };
00062 
00063 
00064 #endif /* MultiValArrayPULSEGENERATOR_H_ */

Generated on Wed Sep 18 2013 11:25:40 for NEVESIM by  doxygen 1.7.1