text: //-----------------------------------------------------------------------------
  //
  //
  //  File: aqstats.h
  //
  //  Description:  Header file for CAQStats class
  //
  //  Author: Mike Swafford (MikeSwa)
  //
  //  History:
  //      11/3/98 - MikeSwa Created 
  //
  //  Copyright (C) 1998 Microsoft Corporation
  //
  //-----------------------------------------------------------------------------
  
  #ifndef __AQSTATS_H__
  #define __AQSTATS_H__
  
  #include "cmt.h"
  #include "aqutil.h"
  
  enum NotifyType
  {
      NotifyTypeUndefined     = 0x00000000,
      NotifyTypeDestMsgQueue  = 0x00000001, //notification sender is a dest queue
      NotifyTypeLinkMsgQueue  = 0x00000002, //notification sender is a link
      NotifyTypeReroute       = 0x00000004, //notification sender is a reroute
      NotifyTypeNewLink       = 0x10000000, //sender is a newly created link
  };
  
  class CDestMsgQueue;
  class CLinkMsgQueue;
  
  #define AQSTATS_SIG 'tatS'
  
  //---[ CAQStats ]-------------------------------------------------------
  //
  //
  //  Hungarian: aqstat, paqstat
  //
  //  
  //-----------------------------------------------------------------------------
  class CAQStats 
  {
  protected:
      DWORD               m_dwSignature;
  public:
      DWORD               m_dwNotifyType; //Type of notification being sent
      DWORD               m_cMsgs;        //Total count of msgs
      DWORD               m_cOtherDomainsMsgSpread;  //Count of other domains message
                                                     //is queued for
      DWORD               m_rgcMsgPriorities[NUM_PRIORITIES]; //count per-priority
      ULARGE_INTEGER      m_uliVolume;
      DWORD               m_dwHighestPri;
      union //notification sender
      {
          PVOID          m_pvContext;
          CDestMsgQueue  *m_pdmq;
          CLinkMsgQueue  *m_plmq;
      };
      DWORD               m_cRetryMsgs;     // Total count of messages in retry queue 
      
      CAQStats();
      void Reset();
  
      //Used to provide thread-safe update
      void UpdateStats(CAQStats *paqstat, BOOL fAdd);
      void UpdateRetryStats(BOOL fAdd);
      
  };
  
  
  #endif //__AQSTATS_H__
  