OGLplus  (0.59.0) a C++ wrapper for rendering APIs

Short string identifiers

Classes

class  eagine::identifier_encoding< CharSet >
 Helper class implementing identifier encoding functionality. More...
 
struct  eagine::default_identifier_char_set
 Characted encoding table for identifier. More...
 
class  eagine::identifier_name< M >
 Helper template for unpacking of identifier into a character string. More...
 
class  eagine::basic_identifier< M, B, CharSet, UIntT >
 Basic template for limited length, packed string identifiers. More...
 
struct  eagine::message_id
 Class storing two identifier values representing class/method pair. More...
 
struct  eagine::static_message_id< ClassId, MethodId >
 Template with two identifier parameters representing class/method pair. More...
 

Macros

#define EAGINE_ID(NAME)
 Macro for constructing instances of eagine::identifier. More...
 
#define EAGINE_ID_V(NAME)
 Macro for constructing instances of eagine::identifier_t. More...
 
#define EAGINE_TAG_TYPE(NAME)
 Macro for defining selector types corresponding to identifier NAME. More...
 
#define EAGINE_TAG(NAME)
 Macro for defining selector values corresponding to identifier NAME. More...
 
#define EAGINE_LONG_ID(NAME)
 Macro for constructing instances of eagine::long_identifier. More...
 
#define EAGINE_MSG_TYPE(API, NAME)
 Macro for declaring instantiations of static_message_id. More...
 
#define EAGINE_MSG_ID(API, NAME)
 Macro for instantiating objects of static_message_id. More...
 

Typedefs

using eagine::identifier = basic_identifier< 10, 6, default_identifier_char_set, identifier_t >
 Default identifier type used throughout the project. More...
 
using eagine::long_identifier = basic_identifier< 20, 6, default_identifier_char_set, long_identifier_t >
 Long identifier type used throughout the project. More...
 
using eagine::identifier_t = std::uint64_t
 The underlying integer type for eagine::identifier. More...
 
using eagine::long_identifier_t = __uint128_t
 The underlying integer type for eagine::long_identifier. More...
 

Functions

template<std::size_t M>
static auto eagine::operator<< (std::ostream &out, const identifier_name< M > &n) -> std::ostream &
 Operator for writing identifier_name into output streams. More...
 
auto eagine::byte_to_identifier (byte b) noexcept -> identifier
 Creates an identifier representing a byte value as a hex string. More...
 
auto eagine::dec_to_identifier (int i) noexcept -> identifier
 Creates an identifier representing an integer value as a decimal string. More...
 
template<identifier_t ClassId, identifier_t MethodId>
auto eagine::operator== (message_id l, static_message_id< ClassId, MethodId > r) noexcept
 Equality comparison between message_id and static_message_id.
 
auto eagine::random_identifier (any_random_engine< std::uint32_t > engine) -> identifier
 Creates an random identifier using the specified random engine. More...
 
auto eagine::random_identifier (any_random_engine< std::uint64_t > engine) -> identifier
 Creates an random identifier using the specified random engine. More...
 
auto eagine::random_identifier () -> identifier
 Creates an random identifier using a default random engine. More...
 

Detailed Description

Macro Definition Documentation

◆ EAGINE_ID

#define EAGINE_ID (   NAME)

Macro for constructing instances of eagine::identifier.

See also
eagine::identifier
dec_to_identifier
byte_to_identifier
Examples
application/000_stencil_shadow/main.cpp, application/000_stencil_shadow/resources.cpp, application/003_checker/main.cpp, application/004_triangle/main.cpp, application/005_pick_triangle/main.cpp, application/006_writing/main.cpp, application/007_cube/main.cpp, application/008_yaml_shape/main.cpp, application/009_json_shape/main.cpp, application/010_newton/main.cpp, application/011_mandelbrot/main.cpp, application/012_atomic_counters/main.cpp, application/014_voronoi/resources.cpp, application/015_worley/resources.cpp, application/016_torus/resources.cpp, application/017_occlusion/main.cpp, application/018_uv_map/main.cpp, application/019_scaled_cubes/resources.cpp, application/020_bezier_patch/resources.cpp, application/021_cel_shading/resources.cpp, application/022_single_pass_edges/resources.cpp, application/023_sketch/resources.cpp, application/024_overdraw/resources.cpp, application/025_recursive_cube/resources.cpp, application/026_halo/main.cpp, application/026_halo/resources.cpp, application/028_compute_particles/resources.cpp, application/031_tessellation/resources.cpp, application/032_translucent_arrow/resources.cpp, application/040_metaballs/resources.cpp, eagine/compress_self.cpp, eagine/dyn_lib_lookup.cpp, eagine/ecs/elements/init.cpp, eagine/embed_baked.cpp, eagine/embed_self.cpp, eagine/identifier.cpp, eagine/message_bus/001_loopback.cpp, eagine/message_bus/002_direct.cpp, eagine/message_bus/003_shutdown.cpp, eagine/message_bus/004_discovery.cpp, eagine/message_bus/005_broadcast_blob.cpp, eagine/message_bus/005_byte_histogram.cpp, eagine/message_bus/005_topology.cpp, eagine/message_bus/006_ping.cpp, eagine/message_bus/006_pong.cpp, eagine/message_bus/007_ping.cpp, eagine/message_bus/007_pong.cpp, eagine/message_bus/008_pong_registry.cpp, eagine/message_bus/009_fib_service.cpp, eagine/message_bus/010_fib_async.cpp, eagine/message_bus/010_fib_futures.cpp, eagine/message_bus/011_fibonacci.cpp, eagine/message_bus/012_fib_threads.cpp, eagine/message_bus/012_sudoku_threads.cpp, eagine/message_bus/013_conn_setup.cpp, eagine/message_bus/014_tracker.cpp, eagine/sudoku_noise.cpp, eagine/uptime.cpp, and eagine/value_tree.cpp.

◆ EAGINE_ID_V

#define EAGINE_ID_V (   NAME)

Macro for constructing instances of eagine::identifier_t.

See also
eagine::identifier
EAGINE_ID_V

◆ EAGINE_LONG_ID

#define EAGINE_LONG_ID (   NAME)

Macro for constructing instances of eagine::long_identifier.

See also
eagine::long_identifier
Examples
eagine/identifier.cpp.

◆ EAGINE_MSG_ID

◆ EAGINE_MSG_TYPE

#define EAGINE_MSG_TYPE (   API,
  NAME 
)

Macro for declaring instantiations of static_message_id.

See also
eagine::static_message_id
EAGINE_ID
EAGINE_MSG_ID

◆ EAGINE_TAG

#define EAGINE_TAG (   NAME)

Macro for defining selector values corresponding to identifier NAME.

See also
eagine::identifier
eagine::selector
EAGINE_ID
EAGINE_TAG_TYPE
Examples
eagine/string_path.cpp, and eagine/value_tree.cpp.

◆ EAGINE_TAG_TYPE

#define EAGINE_TAG_TYPE (   NAME)

Macro for defining selector types corresponding to identifier NAME.

See also
eagine::identifier
eagine::selector
EAGINE_ID
EAGINE_TAG

Typedef Documentation

◆ identifier

Default identifier type used throughout the project.

See also
basic_identifier
default_identifier_char_set
identifier_t
dec_to_identifier
byte_to_identifier
random_identifier
EAGINE_ID

Allows to store constant short string identifiers with maximum length of 10.

Examples
eagine/serialize/002_string.cpp, and eagine/serialize/003_packed.cpp.

◆ identifier_t

◆ long_identifier

Long identifier type used throughout the project.

See also
basic_identifier
default_identifier_char_set
long_identifier_t
EAGINE_LONG_ID

Allows to store constant short string identifiers with maximum length of 10.

◆ long_identifier_t

using eagine::long_identifier_t = typedef __uint128_t

The underlying integer type for eagine::long_identifier.

See also
long_identifier

Function Documentation

◆ byte_to_identifier()

auto eagine::byte_to_identifier ( byte  b) -> identifier
noexcept

Creates an identifier representing a byte value as a hex string.

See also
identifier
dec_to_identifier
random_identifier
Examples
eagine/message_bus/005_byte_histogram.cpp.

◆ dec_to_identifier()

auto eagine::dec_to_identifier ( int  i) -> identifier
noexcept

Creates an identifier representing an integer value as a decimal string.

See also
identifier
byte_to_identifier
random_identifier

◆ operator<<()

template<std::size_t M>
static auto eagine::operator<< ( std::ostream &  out,
const identifier_name< M > &  n 
) -> std::ostream&
inlinestatic

Operator for writing identifier_name into output streams.

See also
identifier_name
Examples
eagine/ecs/elements/main_decay_chain.cpp.

◆ random_identifier() [1/3]

auto eagine::random_identifier ( ) -> identifier

Creates an random identifier using a default random engine.

See also
identifier
byte_to_identifier
dec_to_identifier

◆ random_identifier() [2/3]

auto eagine::random_identifier ( any_random_engine< std::uint32_t >  engine) -> identifier

Creates an random identifier using the specified random engine.

See also
identifier
byte_to_identifier
dec_to_identifier

◆ random_identifier() [3/3]

auto eagine::random_identifier ( any_random_engine< std::uint64_t >  engine) -> identifier

Creates an random identifier using the specified random engine.

See also
identifier
byte_to_identifier
dec_to_identifier

Copyright © 2015-2021 Matúš Chochlík.
<chochlik -at -gmail.com>
Documentation generated on Tue Apr 13 2021 by Doxygen (version 1.8.17).