7 #ifndef __NTV2_CEA708_SERVICEBLOCKQUEUE_
8 #define __NTV2_CEA708_SERVICEBLOCKQUEUE_
38 virtual void Flush (
void);
43 virtual bool IsEmpty (
void)
const;
48 virtual size_t GetCurrentDepth (
void)
const;
53 virtual size_t GetHighestDepth (
void)
const;
58 virtual size_t GetEnqueueTally (
void)
const;
63 virtual size_t GetDequeueTally (
void)
const;
68 virtual size_t GetEnqueueByteTally (
void)
const;
73 virtual size_t GetDequeueByteTally (
void)
const;
81 virtual bool PushServiceBlock (
const UByte * pInServiceBlockData,
const size_t inServiceBlockByteCount);
92 virtual bool PeekNextServiceBlockInfo (
size_t & outBlockSize,
size_t & outDataSize,
int & outServiceNum,
bool & outIsExtended)
const;
100 virtual size_t PopServiceBlock (std::vector<UByte> & outData);
108 virtual size_t PopServiceBlockData (std::vector<UByte> & outData);
111 virtual size_t PopServiceBlock (
UByte * pOutDataBuffer);
112 virtual size_t PopServiceBlockData (
UByte * pOutDataBuffer);
119 virtual void SetDebugChannel (
const int inChannelNum);
121 virtual std::ostream & Print (std::ostream & inOutStrm,
const bool inWithData =
false)
const;
129 virtual std::string GetChannelString (
void)
const;
135 mutable void * mpQueueLock;
139 size_t mEnqueueTally;
140 size_t mDequeueTally;
141 size_t mEnqueueByteTally;
142 size_t mDequeueByteTally;
143 size_t mHighestQueueDepth;
150 #endif // __NTV2_CEA708_SERVICEBLOCKQUEUE_