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
AggregationMap.cc
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 AGGREGATION_MAP_CC
19 #define AGGREGATION_MAP_CC
20 
21 #include "AggregationMap.h"
22 
23 namespace pdb {
24 
25 //wraps the container for shuffle data for Aggregation
26 
27 template <class KeyType, class ValueType>
29 
30  if (initSize < 2) {
31  std::cout << "Fatal Error: Map initialization:" << initSize
32  << " too small; must be at least one.\n";
33 
34  initSize = 2;
35  }
36 
37  // this way, we'll allocate extra bytes on the end of the array
39  size_t size = temp.getObjSize();
40  this->myArray =
41  makeObjectWithExtraStorage<PairArray<KeyType, ValueType>>(size * initSize, initSize);
42 }
43 
44 template <class KeyType, class ValueType>
46 
48  size_t size = temp.getObjSize();
49  this->myArray = makeObjectWithExtraStorage<PairArray<KeyType, ValueType>>(size * 2, 2);
50 }
51 
52 template <class KeyType, class ValueType>
54 
55 
56 template <class KeyType, class ValueType>
58  return this->hashPartitionId;
59 }
60 
61 template <class KeyType, class ValueType>
63  this->hashPartitionId = partitionId;
64 }
65 }
66 
67 #endif
unsigned int getHashPartitionId()
size_t getObjSize()
Definition: PairArray.cc:44
void setHashPartitionId(unsigned int id)