Clone
ixen <ixen@copyhandler.com>
committed
on 20 Nov 16
Optimized deleting of entries from CH database - in some cases the speedup is around 180x (CH-311).
ParallelizeReaderWriter + 3 more
src/libchcore/TRemovedObjects.cpp (+2 -4)
27 27         {
28 28         }
29 29
30 30         TRemovedObjects::~TRemovedObjects()
31 31         {
32 32         }
33 33
34 34         void TRemovedObjects::Add(object_id_t oidObjectID)
35 35         {
36 36                 m_setObjects.insert(oidObjectID);
37 37         }
38 38
39 39         size_t TRemovedObjects::GetCount() const
40 40         {
41 41                 return m_setObjects.size();
42 42         }
43 43
44 44         object_id_t TRemovedObjects::GetAt(size_t stIndex) const
45 45         {
46 46                 if (stIndex >= m_setObjects.size())
47                           throw TCoreException(eErr_InvalidArgument, L"stIndex", LOCATION);
  47                         throw TCoreException(eErr_BoundsExceeded, L"stIndex", LOCATION);
48 48
49                   std::set<object_id_t>::const_iterator iter = m_setObjects.begin();
50                   std::advance(iter, stIndex);
51                   return *iter;
  49                 return *(m_setObjects.begin() + stIndex);
52 50         }
53 51
54 52         void TRemovedObjects::Clear()
55 53         {
56 54                 m_setObjects.clear();
57 55         }
58 56
59 57         bool TRemovedObjects::IsEmpty() const
60 58         {
61 59                 return m_setObjects.empty();
62 60         }
63 61 }