An unordered collection of unique descriptors with O(1) add/del/has ops. More...

#include <DescriptorSet.h>

Collaboration diagram for DescriptorSet:

Public Types

typedef const intconst_iterator
 

Public Member Functions

 DescriptorSet ()
 
 ~DescriptorSet ()
 
bool has (const int fd) const
 checks whether fd is in the set More...
 
bool add (int fd)
 adds if unique; returns true if added More...
 
bool del (int fd)
 deletes if there; returns true if deleted More...
 
int pop ()
 deletes and returns one descriptor, in unspecified order More...
 
bool empty () const
 number of descriptors in the set More...
 
const_iterator begin () const
 begin iterator a la STL; may become invalid if the object is modified More...
 
const_iterator end () const
 end iterator a la STL; may become invalid if the object is modified More...
 
void print (std::ostream &os) const
 outputs debugging info about the set More...
 

Private Member Functions

 DescriptorSet (const DescriptorSet &s)
 
DescriptorSetoperator= (const DescriptorSet &s)
 

Private Attributes

intdescriptors_
 descriptor values in random order More...
 
intindex_
 descriptor:position index into descriptors_ More...
 
int capacity_
 total number of descriptor slots More...
 
int size_
 number of descriptors in the set More...
 

Detailed Description

Definition at line 18 of file DescriptorSet.h.

Member Typedef Documentation

◆ const_iterator

Definition at line 22 of file DescriptorSet.h.

Constructor & Destructor Documentation

◆ DescriptorSet() [1/2]

DescriptorSet::DescriptorSet ( )

Definition at line 16 of file DescriptorSet.cc.

References capacity_, descriptors_, index_, and Squid_MaxFD.

◆ ~DescriptorSet()

DescriptorSet::~DescriptorSet ( )

Definition at line 30 of file DescriptorSet.cc.

References descriptors_, and index_.

◆ DescriptorSet() [2/2]

DescriptorSet::DescriptorSet ( const DescriptorSet s)
private

Member Function Documentation

◆ add()

bool DescriptorSet::add ( int  fd)

Definition at line 38 of file DescriptorSet.cc.

References assert, capacity_, descriptors_, has(), index_, and size_.

Referenced by commStartHalfClosedMonitor().

◆ begin()

const_iterator DescriptorSet::begin ( ) const
inline

Definition at line 40 of file DescriptorSet.h.

References descriptors_.

Referenced by commHalfClosedCheck(), and end().

◆ del()

bool DescriptorSet::del ( int  fd)

Definition at line 55 of file DescriptorSet.cc.

References assert, capacity_, descriptors_, empty(), has(), index_, and size_.

Referenced by commStopHalfClosedMonitor().

◆ empty()

bool DescriptorSet::empty ( ) const
inline

Definition at line 37 of file DescriptorSet.h.

References size_.

Referenced by commPlanHalfClosedCheck(), del(), and pop().

◆ end()

const_iterator DescriptorSet::end ( ) const
inline

Definition at line 42 of file DescriptorSet.h.

References begin(), and size_.

Referenced by commHalfClosedCheck().

◆ has()

bool DescriptorSet::has ( const int  fd) const
inline

Definition at line 28 of file DescriptorSet.h.

References capacity_, and index_.

Referenced by add(), commHasHalfClosedMonitor(), and del().

◆ operator=()

DescriptorSet & DescriptorSet::operator= ( const DescriptorSet s)
private

◆ pop()

int DescriptorSet::pop ( )

ejects one descriptor in unspecified order

Definition at line 83 of file DescriptorSet.cc.

References assert, capacity_, descriptors_, empty(), index_, and size_.

◆ print()

void DescriptorSet::print ( std::ostream &  os) const

Definition at line 98 of file DescriptorSet.cc.

References size_.

Referenced by operator<<().

Member Data Documentation

◆ capacity_

int DescriptorSet::capacity_
private

Definition at line 54 of file DescriptorSet.h.

Referenced by DescriptorSet(), add(), del(), has(), and pop().

◆ descriptors_

int* DescriptorSet::descriptors_
private

Definition at line 52 of file DescriptorSet.h.

Referenced by DescriptorSet(), ~DescriptorSet(), add(), begin(), del(), and pop().

◆ index_

int* DescriptorSet::index_
private

Definition at line 53 of file DescriptorSet.h.

Referenced by DescriptorSet(), ~DescriptorSet(), add(), del(), has(), and pop().

◆ size_

int DescriptorSet::size_
private

Definition at line 55 of file DescriptorSet.h.

Referenced by add(), del(), empty(), end(), pop(), and print().


The documentation for this class was generated from the following files:

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors