equal
deleted
inserted
replaced
294 // In particular, the individual queues allocate buffers from this shared |
294 // In particular, the individual queues allocate buffers from this shared |
295 // set, and return completed buffers to the set. |
295 // set, and return completed buffers to the set. |
296 class PtrQueueSet { |
296 class PtrQueueSet { |
297 BufferNode::Allocator* _allocator; |
297 BufferNode::Allocator* _allocator; |
298 |
298 |
|
299 // Noncopyable - not defined. |
|
300 PtrQueueSet(const PtrQueueSet&); |
|
301 PtrQueueSet& operator=(const PtrQueueSet&); |
|
302 |
299 protected: |
303 protected: |
300 bool _all_active; |
304 bool _all_active; |
301 |
305 |
302 // Create an empty ptr queue set. |
306 // Create an empty ptr queue set. |
303 PtrQueueSet(); |
307 PtrQueueSet(); |
307 // arguments. |
311 // arguments. |
308 void initialize(BufferNode::Allocator* allocator); |
312 void initialize(BufferNode::Allocator* allocator); |
309 |
313 |
310 public: |
314 public: |
311 |
315 |
|
316 // Return the associated BufferNode allocator. |
|
317 BufferNode::Allocator* allocator() const { return _allocator; } |
|
318 |
312 // Return the buffer for a BufferNode of size buffer_size(). |
319 // Return the buffer for a BufferNode of size buffer_size(). |
313 void** allocate_buffer(); |
320 void** allocate_buffer(); |
314 |
321 |
315 // Return an empty buffer to the free list. The node is required |
322 // Return an empty buffer to the free list. The node is required |
316 // to have been allocated with a size of buffer_size(). |
323 // to have been allocated with a size of buffer_size(). |