VuEvent

public:
  virtual ~VuEvent();

  virtual int Size();
  virtual int Decode(VU_BYTE **buf, int length);
  virtual int Encode(VU_BYTE **buf);

protected:
  VuEvent(VU_MSG_TYPE type, VU_ID entityId, VuTargetEntity *target,
                VU_BOOL loopback=FALSE);
  VuEvent(VU_MSG_TYPE type, VU_ID senderid, VU_ID target);
  virtual VU_ERRCODE Activate(VuEntity *ent);
  virtual VU_ERRCODE Process(VU_BOOL autod) = 0;

private:
  int LocalSize();

// DATA
public:
  // these fields are filled in on Activate()
  VU_TIME updateTime_;
};