home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 5_2007-2008.ISO / data / Zips / DirectSoun2029361162006.psc / DataQueue.cls < prev    next >
Text File  |  2006-11-04  |  2KB  |  74 lines

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4.   Persistable = 0  'NotPersistable
  5.   DataBindingBehavior = 0  'vbNone
  6.   DataSourceBehavior  = 0  'vbNone
  7.   MTSTransactionMode  = 0  'NotAnMTSObject
  8. END
  9. Attribute VB_Name = "DataQueue"
  10. Attribute VB_GlobalNameSpace = False
  11. Attribute VB_Creatable = True
  12. Attribute VB_PredeclaredId = False
  13. Attribute VB_Exposed = False
  14. Option Explicit
  15.  
  16. Private m_clsItems()            As DataQueueItem
  17. Private m_lngItemCount          As Long
  18.  
  19. Public Sub Clear()
  20.     Dim i   As Long
  21.     
  22.     If Count > 0 Then
  23.         For i = 0 To m_lngItemCount
  24.             Set m_clsItems(i) = Nothing
  25.         Next
  26.     End If
  27.     
  28.     m_lngItemCount = 0
  29. End Sub
  30.  
  31. Public Property Get Count() As Long
  32.     Count = m_lngItemCount
  33. End Property
  34.  
  35. Public Function Dequeue() As DataQueueItem
  36.     Dim i   As Long
  37.  
  38.     If m_lngItemCount > 0 Then
  39.         Set Dequeue = m_clsItems(0)
  40.     
  41.         For i = 0 To m_lngItemCount - 2
  42.             Set m_clsItems(i) = m_clsItems(i + 1)
  43.         Next
  44.     
  45.         Set m_clsItems(m_lngItemCount - 1) = Nothing
  46.     
  47.         m_lngItemCount = m_lngItemCount - 1
  48.     Else
  49.         Dequeue = Nothing
  50.     End If
  51. End Function
  52.  
  53. Public Sub Enqueue(item As DataQueueItem)
  54.     m_lngItemCount = m_lngItemCount + 1
  55.     
  56.     If UBound(m_clsItems) + 1 < m_lngItemCount Then
  57.         ReDim Preserve m_clsItems(UBound(m_clsItems) + 100)
  58.     End If
  59.     
  60.     Set m_clsItems(m_lngItemCount - 1) = item
  61. End Sub
  62.  
  63. Private Sub Class_Initialize()
  64.     ReDim m_clsItems(100) As DataQueueItem
  65. End Sub
  66.  
  67. Private Sub Class_Terminate()
  68.     Dim i   As Long
  69.     
  70.     For i = 0 To m_lngItemCount - 1
  71.         Set m_clsItems(i) = Nothing
  72.     Next
  73. End Sub
  74.