//
// Generated file, do not edit! Created by opp_msgc 4.2 from src/node/application/wiseCameraDPF/WiseCameraDPFMessage.msg.
//

#ifndef _WISECAMERADPFMESSAGE_M_H_
#define _WISECAMERADPFMESSAGE_M_H_

#include <omnetpp.h>

// opp_msgc version check
#define MSGC_VERSION 0x0402
#if (MSGC_VERSION!=OMNETPP_VERSION)
#    error Version mismatch! Probably this file was generated by an earlier version of opp_msgc: 'make clean' should help.
#endif

// cplusplus {{
#include "WiseApplicationPacket_m.h"
	#include "wise_utils_gmm.h"
// }}



/**
 * Class generated from <tt>src/node/application/wiseCameraDPF/WiseCameraDPFMessage.msg</tt> by opp_msgc.
 * <pre>
 * packet WiseCameraDPFMessage extends WiseApplicationPacket  {
 * 	@customize(true);
 * 
 * 	unsigned int targetID;
 * 	unsigned long trackingStep;
 * 	unsigned int aggregationStep;
 * 	bool detectionMiss;
 * 	bool firstStepFailed;
 * 	bool targetLost;
 * 	bool firstNodeSelection;
 * 	double firstNodeSelectionScore;
 * 	bool firstNodeSelectionCompleted;
 * 
 * 	double firstStartTime;
 * 	double veryFirstStartTime;
 * 
 * 	bool useGmm;
 * 	unsigned long fakeVoidPointer;
 * 	abstract WiseUtils::Gmm::Component gmm[];
 * }
 * </pre>
 *
 * WiseCameraDPFMessage_Base is only useful if it gets subclassed, and WiseCameraDPFMessage is derived from it.
 * The minimum code to be written for WiseCameraDPFMessage is the following:
 *
 * <pre>
 * class WiseCameraDPFMessage : public WiseCameraDPFMessage_Base
 * {
 *   private:
 *     void copy(const WiseCameraDPFMessage& other) { ... }

 *   public:
 *     WiseCameraDPFMessage(const char *name=NULL, int kind=0) : WiseCameraDPFMessage_Base(name,kind) {}
 *     WiseCameraDPFMessage(const WiseCameraDPFMessage& other) : WiseCameraDPFMessage_Base(other) {copy(other);}
 *     WiseCameraDPFMessage& operator=(const WiseCameraDPFMessage& other) {if (this==&other) return *this; WiseCameraDPFMessage_Base::operator=(other); copy(other); return *this;}
 *     virtual WiseCameraDPFMessage *dup() const {return new WiseCameraDPFMessage(*this);}
 *     // ADD CODE HERE to redefine and implement pure virtual functions from WiseCameraDPFMessage_Base
 * };
 * </pre>
 *
 * The following should go into a .cc (.cpp) file:
 *
 * <pre>
 * Register_Class(WiseCameraDPFMessage);
 * </pre>
 */
class WiseCameraDPFMessage_Base : public ::WiseApplicationPacket
{
  protected:
    unsigned int targetID_var;
    unsigned long trackingStep_var;
    unsigned int aggregationStep_var;
    bool detectionMiss_var;
    bool firstStepFailed_var;
    bool targetLost_var;
    bool firstNodeSelection_var;
    double firstNodeSelectionScore_var;
    bool firstNodeSelectionCompleted_var;
    double firstStartTime_var;
    double veryFirstStartTime_var;
    bool useGmm_var;
    unsigned long fakeVoidPointer_var;

  private:
    void copy(const WiseCameraDPFMessage_Base& other);

  protected:
    // protected and unimplemented operator==(), to prevent accidental usage
    bool operator==(const WiseCameraDPFMessage_Base&);
    // make constructors protected to avoid instantiation
    WiseCameraDPFMessage_Base(const char *name=NULL, int kind=0);
    WiseCameraDPFMessage_Base(const WiseCameraDPFMessage_Base& other);
    // make assignment operator protected to force the user override it
    WiseCameraDPFMessage_Base& operator=(const WiseCameraDPFMessage_Base& other);

  public:
    virtual ~WiseCameraDPFMessage_Base();
    virtual WiseCameraDPFMessage_Base *dup() const {throw cRuntimeError("You forgot to manually add a dup() function to class WiseCameraDPFMessage");}
    virtual void parsimPack(cCommBuffer *b);
    virtual void parsimUnpack(cCommBuffer *b);

    // field getter/setter methods
    virtual unsigned int getTargetID() const;
    virtual void setTargetID(unsigned int targetID);
    virtual unsigned long getTrackingStep() const;
    virtual void setTrackingStep(unsigned long trackingStep);
    virtual unsigned int getAggregationStep() const;
    virtual void setAggregationStep(unsigned int aggregationStep);
    virtual bool getDetectionMiss() const;
    virtual void setDetectionMiss(bool detectionMiss);
    virtual bool getFirstStepFailed() const;
    virtual void setFirstStepFailed(bool firstStepFailed);
    virtual bool getTargetLost() const;
    virtual void setTargetLost(bool targetLost);
    virtual bool getFirstNodeSelection() const;
    virtual void setFirstNodeSelection(bool firstNodeSelection);
    virtual double getFirstNodeSelectionScore() const;
    virtual void setFirstNodeSelectionScore(double firstNodeSelectionScore);
    virtual bool getFirstNodeSelectionCompleted() const;
    virtual void setFirstNodeSelectionCompleted(bool firstNodeSelectionCompleted);
    virtual double getFirstStartTime() const;
    virtual void setFirstStartTime(double firstStartTime);
    virtual double getVeryFirstStartTime() const;
    virtual void setVeryFirstStartTime(double veryFirstStartTime);
    virtual bool getUseGmm() const;
    virtual void setUseGmm(bool useGmm);
    virtual unsigned long getFakeVoidPointer() const;
    virtual void setFakeVoidPointer(unsigned long fakeVoidPointer);
    virtual void setGmmArraySize(unsigned int size) = 0;
    virtual unsigned int getGmmArraySize() const = 0;
    virtual WiseUtils::Gmm::Component& getGmm(unsigned int k) = 0;
    virtual const WiseUtils::Gmm::Component& getGmm(unsigned int k) const {return const_cast<WiseCameraDPFMessage_Base*>(this)->getGmm(k);}
    virtual void setGmm(unsigned int k, const WiseUtils::Gmm::Component& gmm) = 0;
};


#endif // _WISECAMERADPFMESSAGE_M_H_
