BWAPI
Classes
SPAR/AIModule/SparAIModule/Utils/SafeMultiset.h File Reference
#include <set>
#include <queue>
#include <cassert>
Include dependency graph for SafeMultiset.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  SafeMultisetBase
 Base class for safe multiset, whose only purpose is to declare the return structures so that they are accessible without going through the templated safe multiset class. More...
struct  SafeMultisetBase::ConstFunctionReturn
struct  SafeMultisetBase::FunctionReturn
class  SafeMultiset< T, Compare >
 A safe multiset is like a regular multiset storing sorted values, but in addition it allows one to iterate over its elements while existing ones are being deleted and new ones are being added. Multiple iterations can be performed on the safe multiset at the same time. To allow this, deleted elements are kept in the multiset until the last iteration has finished, which is when they are removed. More...
class  SafeMultiset< T, Compare >::Wrapper
 Wraps an element of the multiset by including other data, in particular a flag indicating whether this element has been deleted. More...
class  SafeMultiset< T, Compare >::CompareWrapper
 Trivial functor comparing two wrappers. More...
class  SafeMultiset< T, Compare >::Iteration
 Iteration objects provide an automatic (and exception-aware) mechanism for acquisition and release. When new elements are added to the multiset while one or more iterations are taking place, these new elements above a certain threshold (the ones inserted before the current element iterated over) are added to a priority queue, in order to iterate over them afterwards. Additionally, all iteration objects associated with the same safe multiset are linked to one another to create a linked list of iterations. More...
class  SafeMultiset< T, Compare >::Iteration::ComparePtrWrapper
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines