Fairport  v1.0.38
Block Structures
+ Collaboration diagram for Block Structures:

Classes

struct  fairport::disk::block_trailer< ulonglong >
 Unicode store version of the block trailer. More...
struct  fairport::disk::block_trailer< ulong >
 ANSI store version of the block trailer. More...
struct  fairport::disk::external_block< T >
 External block definition. More...
struct  fairport::disk::extended_block< ulonglong >
 Unicode store version of the extended block. More...
struct  fairport::disk::extended_block< ulong >
 ANSI store version of the extended block. More...
struct  fairport::disk::sub_leaf_entry< T >
 Entries on a leaf sub_block. More...
struct  fairport::disk::sub_nonleaf_entry< T >
 Entries on a nonleaf sub_block. More...
struct  fairport::disk::sub_block< T, EntryType >
 Subnode Blocks. More...
struct  fairport::disk::sub_nonleaf_block< T >
 Subnode non-leaf block. More...
struct  fairport::disk::sub_leaf_block< T >
 Subnode leaf block. More...

Enumerations

enum  fairport::disk::block_types { fairport::disk::block_type_external = 0x00, fairport::disk::block_type_extended = 0x01, fairport::disk::block_type_sub = 0x02 }
 The different block types. More...

Functions

template<typename T >
size_t fairport::disk::align_disk (size_t size)
 Aligns a block size to the size on disk.
size_t fairport::disk::align_slot (size_t size)
 Aligns a block size to the slot size.
template<typename T >
bool fairport::disk::bid_is_external (T bid)
 Determines if a block is external or not.
template<typename T >
bool fairport::disk::bid_is_internal (T bid)
 Determines if a block is internal or not.

Variables

const size_t fairport::disk::max_block_disk_size = 8 * 1024
 The maximum individual block size.
const uint fairport::disk::block_id_internal_bit = 0x2
 The internal bit indicates a block is an extended_block or a subnode_block.
const uint fairport::disk::block_id_increment = 0x4
 The block id counter in the header is incremented by this amount for each block.

Enumeration Type Documentation

The different block types.

See also:
[MS-PST] 2.2.2.8.3
Enumerator:
block_type_external 

An external data block.

block_type_extended 

An extended block type.

block_type_sub 

A subnode block type.

Definition at line 938 of file disk.h.


Function Documentation

template<typename T >
size_t fairport::disk::align_disk ( size_t  size) [inline]

Aligns a block size to the size on disk.

Adds the block trailer and slot alignment to the data size

Template Parameters:
Tulonglong for a unicode store, ulong for an ANSI store
Parameters:
[in]sizeBlock size
Returns:
The aligned block size
See also:
[MS-PST] 2.2.2.7.7.3

Definition at line 1685 of file disk.h.

size_t fairport::disk::align_slot ( size_t  size) [inline]

Aligns a block size to the slot size.

Round size up to the next largest multiple of bytes_per_slot

Parameters:
[in]sizeBlock size
Returns:
The block size, aligned to slot size
See also:
[MS-PST] 2.2.2.7.7.3

Definition at line 1690 of file disk.h.

template<typename T >
bool fairport::disk::bid_is_external ( bid)

Determines if a block is external or not.

Template Parameters:
Tulonglong for a unicode store, ulong for an ANSI store
Parameters:
[in]bidThe id of the block
Returns:
true if the block is external
See also:
[MS-PST] 2.2.2.2/i

Definition at line 987 of file disk.h.

template<typename T >
bool fairport::disk::bid_is_internal ( bid)

Determines if a block is internal or not.

Template Parameters:
Tulonglong for a unicode store, ulong for an ANSI store
Parameters:
[in]bidThe id of the block
Returns:
true if the block is internal
See also:
[MS-PST] 2.2.2.2/i

Definition at line 996 of file disk.h.


Variable Documentation

The block id counter in the header is incremented by this amount for each block.

See also:
[MS-PST] 2.2.2.6/bidNextB

Definition at line 978 of file disk.h.

The internal bit indicates a block is an extended_block or a subnode_block.

See also:
[MS-PST] 2.2.2.2/i

Definition at line 973 of file disk.h.

const size_t fairport::disk::max_block_disk_size = 8 * 1024

The maximum individual block size.

See also:
[MS-PST] 2.2.2.8

Definition at line 933 of file disk.h.