• Main Page
  • Classes
  • Files
  • File List

BinaryArrayPulseGenerator.h

00001 /*
00002  * BinaryArrayPulseGenerator.h
00003  *
00004  *  Created on: Jul 24, 2012
00005  *      Author: dejan
00006  */
00007 
00008 #ifndef BINARYARRAYPULSEGENERATOR_H_
00009 #define BINARYARRAYPULSEGENERATOR_H_
00010 
00011 #include "EvSimObject.h"
00012 #include "EvSimObjectTypeUtils.h"
00013 #include "DirectEventSender.h"
00014 
00015 class BinaryArrayPulseGenerator : public EvSimObject, public DirectEventSender {
00016 
00017         EV_SIM_OBJECT( BinaryArrayPulseGenerator )
00018 
00019 public:
00020 
00021         BinaryArrayPulseGenerator(const std::vector<bool> & bin_array = vector<bool>(),
00022                                           bool isActive = true) :
00023                                           isActive(isActive), bin_array(bin_array)
00024                                           {}
00025 
00026 
00027         bool isActive;
00028 
00029         const std::vector<bool> & getBinaryArray() {
00030                 return bin_array;
00031         }
00032 
00033         virtual unsigned numOutputPorts() const
00034         {
00035                 return 2;
00036         };
00037 
00038         virtual EvSimObject::PortType outputPortType(port_id_t p) const
00039         {
00040                 if (p == 0 || p == 1)
00041                         return EvSimObject::eventPortDirect;
00042                 return EvSimObject::portUndefined;
00043         }
00044 
00045 
00046         void setBinaryArray(const std::vector<bool> & bin_array) {
00047                 this->bin_array = bin_array;
00048         }
00049 
00050         virtual ~BinaryArrayPulseGenerator() {}
00051 
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<bool> bin_array;
00059         unsigned curr_idx;
00060 };
00061 
00062 
00063 #endif /* BINARYARRAYPULSEGENERATOR_H_ */

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