
 
  VuMessage *PeekVuMessage() { return *read_; }
  virtual VuMessage *DispatchVuMessage(VU_BOOL
autod = FALSE);
  int DispatchAllMessages(VU_BOOL autod = FALSE);
  static int PostVuMessage(VuMessage *event);
  static void FlushAllQueues();
  static int InvalidateMessages(VU_BOOL (*evalFunc)(VuMessage*,
void*), void *);
  int InvalidateQueueMessages(VU_BOOL (*evalFunc)(VuMessage*,
void*), void *);
protected:
  // called when queue is about to wrap -- default does nothing
& returns FALSE
  virtual VU_BOOL ReallocQueue();
  virtual int AddMessage(VuMessage *event);
// called only by PostVuMessage()
  static void RepostMessage(VuMessage *event, int delay);
// DATA
protected:
  VuMessage **head_;   
// also queue mem store
  VuMessage **read_;
  VuMessage **write_;
  VuMessage **tail_;
VuMessageFilter *filter_;
private:
  static
VuMessageQueue *queuecollhead_;
  VuMessageQueue *nextqueue_;
};