NAME

ACE_Fixed_Set - Implement a simple unordered set of T with maximum ACE_SIZE.

SYNOPSIS

#include <ace/Containers.h>

template<class T, size_t ACE_SIZE> class ACE_Fixed_Set { public: friend class ACE_Fixed_Set_Iterator<T, ACE_SIZE>; typedef ACE_Fixed_Set_Iterator<T, ACE_SIZE> ITERATOR; ACE_Fixed_Set (void); ACE_Fixed_Set (const ACE_Fixed_Set<T, ACE_SIZE> &); void operator= (const ACE_Fixed_Set<T, ACE_SIZE> &); ~ACE_Fixed_Set (void); int is_empty (void) const; int is_full (void) const; int insert (const T &new_item); int remove (const T &item); int find (const T &item) const; size_t size (void) const; void dump (void) const; ACE_ALLOC_HOOK_DECLARE; private: struct { T item_; int is_free_; } search_structure_[ACE_SIZE]; size_t cur_size_; size_t max_size_; }; template <class T> class ACE_Bounded_Set; template <class T> class ACE_Bounded_Set_Iterator { public: ACE_Bounded_Set_Iterator ( ACE_Bounded_Set<T> &s ); int next (T *&next_item); int advance (void); int first (void); int done (void) const; void dump (void) const; ACE_ALLOC_HOOK_DECLARE; ACE_Bounded_Set<T> &s_; ssize_t next_; };

DESCRIPTION

This implementation of an unordered set uses a fixed array. This implementation does not allow duplicates...

Initialization and termination methods.

ACE_Fixed_Set (void);

ACE_Fixed_Set (const ACE_Fixed_Set<T, ACE_SIZE> &);

void operator= (const ACE_Fixed_Set<T, ACE_SIZE> &);

~ACE_Fixed_Set (void);

Check boundary conditions.

int is_empty (void) const;

int is_full (void) const;

Classic unordered set operations.

int insert (const T &new_item);

int remove (const T &item);

int find (const T &item) const;

size_t size (void) const;

void dump (void) const;

ACE_ALLOC_HOOK_DECLARE;

Iteration methods.

int next (T *&next_item);

int advance (void);

int first (void);

int done (void) const;

void dump (void) const;

ACE_ALLOC_HOOK_DECLARE;

AUTHOR

Doug Schmidt

LIBRARY

ace