⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 queue.h

📁 *** *** *** *** *** *** *** *** *** *** *** *** *** * assniffer v0.1 alpha, Copyright (C) 2004, Coc
💻 H
字号:
#ifndef _WDL_QUEUE_H_
#define _WDL_QUEUE_H_

#include "heapbuf.h"

class WDL_Queue 
{
public:
  WDL_Queue() : m_pos(0)
  {
  }
  ~WDL_Queue()
  {
  }

  void Add(const void *buf, int len)
  {
    int olen=m_hb.GetSize();
    void *obuf=m_hb.Resize(olen+len);
    if (obuf) memcpy((char*)obuf+olen,buf,len);
  }

  int GetSize()
  {
    return m_hb.GetSize()-m_pos;
  }

  void *Get()
  {
    void *buf=m_hb.Get();
    if (buf && m_pos >= 0 && m_pos < m_hb.GetSize()) return (char *)buf+m_pos;
    return NULL;
  }

  int Available()
  {
    return m_hb.GetSize() - m_pos;
  }

  void Advance(int bytecnt)
  {
    m_pos+=bytecnt;
  }

  void Compact()
  {
    if (m_pos > 0)
    {
      int olen=m_hb.GetSize();
      if (m_pos < olen)
      {
        void *a=m_hb.Get();
        if (a) memcpy(a,(char*)a+m_pos,olen-m_pos);
        m_hb.Resize(olen-m_pos);
      }
      else m_hb.Resize(0);
      m_pos=0;
    }
  }



private:
  WDL_HeapBuf m_hb;
  int m_pos;
};


#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -