VOID MemoryCache<K>::FreeAll() { Check(); for ( Map<K,BlockHeader*>::Iterator i = m_Blocks.Begin(); i != m_Blocks.End(); i++ ) { Pair<K,BlockHeader*> P = *i; Reclaim.Invoke( P.First(), P.Second()->m_pBlock ); delete P.Second(); } m_Blocks.RemoveAll(); m_LRU.RemoveAll(); }
inline Bolitho::IO::BinaryStream& operator << (Bolitho::IO::BinaryStream& S, CONST Map<K,V,KeyElementTraits, ValueElementTraits, ThreadingModel>& M) { S << (UINT64)M.Count(); typename Map<K,V,KeyElementTraits, ValueElementTraits, ThreadingModel>::Enumerator E = M.Elements(); while(E) { Pair<K,V> P = E.CurrentElement(); S << P.First(); S << P.Second(); E++; } return S; }