Lumiera  0.pre.03
»edit your freedom«
Key Class Reference

#include "steam/engine/buffer-metadata.hpp"

Description

Description of a Buffer-"type".

Key elements will be used to generate hash IDs, to be embedded into a Buffer Descriptor. Keys are chained hierarchically.

Definition at line 137 of file buffer-metadata.hpp.

Public Member Functions

 Key (HashVal familyID, size_t storageSize)
 build a standard basic key describing a kind of Buffer. More...
 
 Key (Key const &parent, size_t differingStorageSize)
 create a derived buffer type description. More...
 
 Key (Key const &parent, TypeHandler const &differingTypeHandlerFunctions)
 create a derived buffer type description. More...
 
 Key (Key const &parent, LocalTag anotherTypeSpecificInternalTag)
 create a derived buffer type description. More...
 
LocalTag const & localTag () const
 
 operator HashVal () const
 
HashVal parentKey () const
 
size_t storageSize () const
 
void useTypeHandlerFrom (Key const &ref)
 

Static Public Member Functions

static Key forEntry (Key const &parent, const Buff *bufferAddr, LocalTag const &localTag=LocalTag::UNKNOWN)
 build derived Key for a concrete buffer Entry More...
 

Protected Attributes

TypeHandler instanceFunc_
 
LocalTag specifics_
 
size_t storageSize_
 

Private Attributes

HashVal hashID_
 
HashVal parent_
 

Constructor & Destructor Documentation

◆ Key() [1/4]

Key ( HashVal  familyID,
size_t  storageSize 
)
inline

build a standard basic key describing a kind of Buffer.

Parameters
familyIDbasic hash seed value to distinguish families of buffer types managed by different BufferProvider instances
storageSizefundamental info: buffer size

Definition at line 155 of file buffer-metadata.hpp.

◆ Key() [2/4]

Key ( Key const &  parent,
size_t  differingStorageSize 
)
inline

create a derived buffer type description.

Using a different storage size than the parent type, all else remaining the same

Definition at line 169 of file buffer-metadata.hpp.

◆ Key() [3/4]

Key ( Key const &  parent,
TypeHandler const &  differingTypeHandlerFunctions 
)
inline

create a derived buffer type description.

Using different ctor and dtor functions, all else remaining the same as with parent

Definition at line 182 of file buffer-metadata.hpp.

◆ Key() [4/4]

Key ( Key const &  parent,
LocalTag  anotherTypeSpecificInternalTag 
)
inline

create a derived buffer type description.

Using a different private ID than the parent type, all else remaining the same

Definition at line 195 of file buffer-metadata.hpp.

Member Function Documentation

◆ forEntry()

static Key forEntry ( Key const &  parent,
const Buff bufferAddr,
LocalTag const &  localTag = LocalTag::UNKNOWN 
)
inlinestatic

build derived Key for a concrete buffer Entry

Parameters
parenttype key to subsume this buffer
bufferAddrpointer to the concrete buffer
Returns
Child key with hashID based on the buffer address. For NULL buffer a copy of the parent is returned.

Definition at line 211 of file buffer-metadata.hpp.

Referenced by BufferMetadata::key().

+ Here is the caller graph for this function:
+ Inheritance diagram for Key:
+ Collaboration diagram for Key:

The documentation for this class was generated from the following file: