VuMainThread

Superclass:

VuBaseThread

Other subclasses:

VuMainThread


public:
    // initializes database, etc.
  VuMainThread(int dbSize, VuMessageFilter *filter,
      int queueSize = VU_DEFAULT_QUEUE_SIZE,
      VuSessionEntity *(*sessionCtorFunc)(void) = 0);
  VuMainThread(int dbSize, int queueSize = VU_DEFAULT_QUEUE_SIZE,
      VuSessionEntity *(*sessionCtorFunc)(void) = 0);
  virtual ~VuMainThread();

  virtual VuMainMessageQueue *MainQueue();
  virtual void Update();

  VU_ERRCODE JoinGame(VuGameEntity *ent);
  VU_ERRCODE LeaveGame();
#ifdef VU_USE_COMMS
  VU_ERRCODE InitComms(ComAPIHandle handle, int bufSize=0, int packSize=0,
                       ComAPIHandle reliablehandle = NULL,
                       int relBufSize=0, int relPackSize=0,
                       int resendQueueSize = VU_DEFAULT_QUEUE_SIZE );
  VU_ERRCODE DeinitComms();

  static int FlushOutboundMessages();
  static void ReportXmit(int bytesSent);
  static void ResetXmit();
  static int BytesSent();
  static int BytesPending();
#endif

protected:
  void Init(int dbSize, VuSessionEntity *(*sessionCtorFunc)(void));
  void UpdateGroupData(VuGroupEntity *group);
  int GetMessages();
  int SendQueuedMessages ();

// data
protected:
#ifdef VU_USE_COMMS
  static int bytesSent_;
#endif VU_USE_COMMS
#ifdef VU_AUTO_UPDATE
  VuRedBlackTree * autoUpdateList_;
#endif VU_AUTO_UPDATE