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
GenericBlock.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 GENERIC_BLOCK_H
19 #define GENERIC_BLOCK_H
20 
21 // by Jia, Oct, 2016
22 
23 #include "PDBVector.h"
24 #include "Object.h"
25 
26 // PRELOAD %GenericBlock%
27 namespace pdb {
28 
29 // this class encapsulates a block of tuples/objects
30 // a page in user set can be transformed into a vector of generic blocks
31 // a generic block will be the basic unit of execution in pipeline
32 // most processors are based on generic block, except two: bundle processor and unbundle processor
33 // a bundle processor converts several pages into a vector of generic blocks;
34 // an unbundle processor converts a vector of generic blocks into several pages;
35 
36 class GenericBlock : public Object {
37 
38 private:
40 
41 public:
43 
45 
47  GenericBlock(size_t batchSize) : block(batchSize) {}
49  return block;
50  }
51 };
52 }
53 
54 #endif
GenericBlock(size_t batchSize)
Definition: GenericBlock.h:47
#define ENABLE_DEEP_COPY
Definition: DeepCopy.h:52
Vector< Handle< Object > > block
Definition: GenericBlock.h:39
Vector< Handle< Object > > & getBlock()
Definition: GenericBlock.h:48
ENABLE_DEEP_COPY ~GenericBlock()
Definition: GenericBlock.h:44