blob: 6bad36bc5a701864b5a7546108184bdd9698ed7f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
#ifndef UTIL_STREAM_CONFIG_H
#define UTIL_STREAM_CONFIG_H
#include <cstddef>
#include <string>
namespace util { namespace stream {
/**
* Represents how a chain should be configured.
*/
struct ChainConfig {
/** Constructs an configuration with underspecified (or default) parameters. */
ChainConfig() {}
/**
* Constructs a chain configuration object.
*
* @param [in] in_entry_size Number of bytes in each record.
* @param [in] in_block_count Number of blocks in the chain.
* @param [in] in_total_memory Total number of bytes available to the chain.
* This value will be divided amongst the blocks in the chain.
*/
ChainConfig(std::size_t in_entry_size, std::size_t in_block_count, std::size_t in_total_memory)
: entry_size(in_entry_size), block_count(in_block_count), total_memory(in_total_memory) {}
/**
* Number of bytes in each record.
*/
std::size_t entry_size;
/**
* Number of blocks in the chain.
*/
std::size_t block_count;
/**
* Total number of bytes available to the chain.
* This value will be divided amongst the blocks in the chain.
* Chain's constructor will make this a multiple of entry_size.
*/
std::size_t total_memory;
};
/**
* Represents how a sorter should be configured.
*/
struct SortConfig {
/** Filename prefix where temporary files should be placed. */
std::string temp_prefix;
/** Size of each input/output buffer. */
std::size_t buffer_size;
/** Total memory to use when running alone. */
std::size_t total_memory;
};
}} // namespaces
#endif // UTIL_STREAM_CONFIG_H
|