A platform for high-performance distributed tool and library development written in C++. It can be deployed in two different cluster modes: standalone or distributed. API for v0.5.0, released on June 13, 2018.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
SetCachePageIterator.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * *
3  * Copyright 2018 Rice University *
4  * *
5  * Licensed under the Apache License, Version 2.0 (the "License"); *
6  * you may not use this file except in compliance with the License. *
7  * You may obtain a copy of the License at *
8  * *
9  * http://www.apache.org/licenses/LICENSE-2.0 *
10  * *
11  * Unless required by applicable law or agreed to in writing, software *
12  * distributed under the License is distributed on an "AS IS" BASIS, *
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
14  * See the License for the specific language governing permissions and *
15  * limitations under the License. *
16  * *
17  *****************************************************************************/
18 
19 #ifndef SETCACHEPAGEITERATOR_H
20 #define SETCACHEPAGEITERATOR_H
21 
22 
23 #include "UserSet.h"
24 #include "DataTypes.h"
25 #include "PageCache.h"
26 #include "PageIterator.h"
27 #include <set>
28 #include <memory>
29 using namespace std;
31 
32 typedef shared_ptr<SetCachePageIterator> SetCachePageIteratorPtr;
33 
39 public:
40  // NOTE: the constructor can only be invoked in UserSet::getIterators(), where it will be
41  // protected by lockDirtyPageSet();
43  virtual ~SetCachePageIterator();
44 
48  PDBPagePtr begin();
49 
53  PDBPagePtr end();
54 
59  PDBPagePtr next() override;
60 
64  bool hasNext() override;
65 
66 private:
69  std::unordered_map<PageID, FileSearchKey>::iterator iter;
70 };
71 
72 
73 #endif /* SETCACHEPAGEITERATOR_H */
shared_ptr< PDBPage > PDBPagePtr
Definition: PDBPage.h:32
shared_ptr< PageCache > PageCachePtr
Definition: PageCache.h:39
std::unordered_map< PageID, FileSearchKey >::iterator iter
shared_ptr< SetCachePageIterator > SetCachePageIteratorPtr