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
AggOutProcessor.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 #ifndef AGGOUT_PROCESSOR_H
19 #define AGGOUT_PROCESSOR_H
20 
21 
23 #include "InterfaceFunctions.h"
24 #include "PDBMap.h"
25 #include "PDBVector.h"
26 #include "Handle.h"
28 
29 namespace pdb {
30 
31 template <class OutputClass, class KeyType, class ValueType>
33 
34 public:
37  void initialize() override;
38  void loadInputPage(void* pageToProcess) override;
39  void loadOutputPage(void* pageToWriteTo, size_t numBytesInPage) override;
40  bool fillNextOutputPage() override;
41  void finalize() override;
42  void clearOutputPage() override;
43  void clearInputPage() override;
44 
45 protected:
49  bool finalized;
50 
51  // the iterators for current map partition
54 
55  // current pos in output vector
56  int pos;
57 };
58 }
59 
60 
61 #include "AggOutProcessor.cc"
62 
63 
64 #endif
PDBMapIterator< KeyType, ValueType > * end
PDBMapIterator< KeyType, ValueType > * begin
Handle< Map< KeyType, ValueType > > inputData
UseTemporaryAllocationBlockPtr blockPtr
void loadOutputPage(void *pageToWriteTo, size_t numBytesInPage) override
void loadInputPage(void *pageToProcess) override
void clearInputPage() override
Handle< Vector< Handle< OutputClass > > > outputData
void finalize() override
void clearOutputPage() override
std::shared_ptr< UseTemporaryAllocationBlock > UseTemporaryAllocationBlockPtr
bool fillNextOutputPage() override
void initialize() override