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 BufferDescriptor. Keys are chained hierarchically.

Definition at line 146 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, LocalKey anotherTypeSpecificInternalID)
 create a derived buffer type description. More...
 
LocalKey const & localKey () 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 void *bufferAddr, LocalKey const &implID=UNSPECIFIC)
 build derived Key for a concrete buffer Entry More...
 

Protected Attributes

TypeHandler instanceFunc_
 
LocalKey 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 164 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 178 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 191 of file buffer-metadata.hpp.

◆ Key() [4/4]

Key ( Key const &  parent,
LocalKey  anotherTypeSpecificInternalID 
)
inline

create a derived buffer type description.

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

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

Member Function Documentation

◆ forEntry()

static Key forEntry ( Key const &  parent,
const void *  bufferAddr,
LocalKey const &  implID = UNSPECIFIC 
)
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 220 of file buffer-metadata.hpp.

+ Inheritance diagram for Key:
+ Collaboration diagram for Key:

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