ICE 3.4.2
[php5-ice-freebsdport.git] / cpp / src / Freeze / EvictorIteratorI.h
blob4f0e7b802c8fe0962f276c26a6b3ecf2a134f623
1 // **********************************************************************
2 //
3 // Copyright (c) 2003-2011 ZeroC, Inc. All rights reserved.
4 //
5 // This copy of Ice is licensed to you under the terms described in the
6 // ICE_LICENSE file included in this distribution.
7 //
8 // **********************************************************************
10 #ifndef FREEZE_EVICTOR_ITERATOR_I_H
11 #define FREEZE_EVICTOR_ITERATOR_I_H
13 #include <Ice/Ice.h>
14 #include <Freeze/Freeze.h>
15 #include <vector>
17 namespace Freeze
20 class TransactionI;
21 typedef IceUtil::Handle<TransactionI> TransactionIPtr;
24 class ObjectStoreBase;
26 class EvictorIteratorI : public EvictorIterator
28 public:
30 EvictorIteratorI(ObjectStoreBase*, const TransactionIPtr&, Ice::Int);
32 virtual bool hasNext();
33 virtual Ice::Identity next();
35 private:
37 std::vector<Ice::Identity>::const_iterator
38 nextBatch();
40 ObjectStoreBase* _store;
41 size_t _batchSize;
42 std::vector<Ice::Identity>::const_iterator _batchIterator;
44 Key _key;
45 std::vector<Ice::Identity> _batch;
46 bool _more;
47 bool _initialized;
48 TransactionIPtr _tx;
53 #endif