ngl_server 1.0
基于 Actor 模型的 C++ 服务器框架
ngl::nguid Struct Reference

打包的Actor标识符结构体。 More...

#include <nguid.h>

Public Member Functions

 nguid ()
 默认构造函数,创建无效哨兵值。
 nguid (i64_actorid aid)
 从原始64位值构造。
 nguid (ENUM_ACTOR atype, i16_area aareaid, i32_actordataid aid)
 从三个字段构造。
 operator i64_actorid () const
 隐式转换为i64_actorid。
i64_actorid id () const
 返回打包的64位表示。
ENUM_ACTOR type () const
 返回Actor类型部分。
i32_actordataid actordataid () const
 返回Actor本地数值ID部分。
i16_area area () const
 返回区域/分片部分。
i64_actorid make_type (ENUM_ACTOR atype)
 就地修改类型位。
i64_actorid make_area (i16_area aareaid)
 就地修改区域位。
i64_actorid make_actordataid (i32_actordataid aid)
 就地修改数据ID位。
void none ()
 将此对象重置为无效哨兵值。
bool is_moreactor (ENUM_ACTOR atype) const
 返回此GUID是否表示类型级广播目标。
bool is_actortypenone () const
 返回类型部分是否为哨兵无效值。
bool is_actorareanone () const
 返回区域部分是否为哨兵无效值。
bool is_actoridnone () const
 返回数据ID部分是否为哨兵无效值。
auto operator<=> (const nguid &r) const
 三路比较运算符。
bool operator== (const nguid &r) const
 相等比较运算符。
bool operator== (int64_t r) const
 与int64_t的相等比较运算符。

Static Public Member Functions

static const char * name (i64_actorid aactorid)
 返回打包ID的调试友好型Actor类型名称。
static i64_actorid make (ENUM_ACTOR atype, i16_area aareaid, i32_actordataid aid)
 从三个组件构建打包ID。
static i64_actorid make (ENUM_ACTOR atype, i32_actordataid aid)
 当Actor没有具体区域时构建ID。
static i64_actorid make (ENUM_ACTOR atype)
 构建仅含类型的ID,用于单例式寻址。
static i64_actorid make ()
 构建哨兵"无效Actor ID"值。
static i64_actorid make_self (ENUM_ACTOR atype)
 在本地进程区域构建仅含类型的ID。
static i64_actorid make_type (i64_actorid aactorid, ENUM_ACTOR atype)
 返回替换了类型位的副本。
static i64_actorid make_actordataid (i64_actorid aactorid, i32_actordataid aid)
 返回替换了数据ID位的副本。
static i32_actordataid actordataid (i64_actorid aactorid)
 从打包ID中提取数据ID部分。
static i16_actortype type (i64_actorid aactorid)
 从打包ID中提取Actor类型部分。
static i16_area area (i64_actorid aactorid)
 从打包ID中提取区域部分。
static i64_actorid moreactor (ENUM_ACTOR atype)
 构建"此类型所有Actor"的广播ID。
static i64_actorid moreactor ()
 构建"所有Actor类型"的哨兵广播ID。
static bool is_moreactor (i64_actorid actorid, ENUM_ACTOR atype)
 返回打包ID是否表示类型级广播目标。
static bool is_actortypenone (i64_actorid actorid)
 返回类型部分是否为哨兵无效值。
static bool is_actorareanone (i64_actorid actorid)
 返回区域部分是否为哨兵无效值。
static bool is_actoridnone (i64_actorid actorid)
 返回数据ID部分是否为哨兵无效值。
static i16_area none_area ()
 哨兵区域值。
static ENUM_ACTOR none_type ()
 哨兵Actor类型值。
static i32_actordataid none_actordataid ()
 哨兵Actor本地ID值。
template<typename T>
static T none ()
 生成指定类型的哨兵无效值。

Detailed Description

打包的Actor标识符结构体。

64位Actor全局唯一标识符,包含打包的类型、区域和数据ID字段。 位布局与平台字节序无关:

  • [15:0] 16位 Actor类型
  • [31:16] 16位 区域/分片
  • [63:32] 32位 Actor本地数据ID

使用示例:

// 创建GUID
// 提取字段
ENUM_ACTOR type = guid.type();
i16_area area = guid.area();
i32_actordataid dataid = guid.actordataid();
// 静态工厂方法

Constructor & Destructor Documentation

◆ nguid() [1/2]

ngl::nguid::nguid ( i64_actorid aid)
inline

从原始64位值构造。

Parameters
aid原始64位Actor ID

◆ nguid() [2/2]

ngl::nguid::nguid ( ENUM_ACTOR atype,
i16_area aareaid,
i32_actordataid aid )
inline

从三个字段构造。

Parameters
atypeActor类型
aareaid区域/分片
aid数据ID

Member Function Documentation

◆ actordataid() [1/2]

i32_actordataid ngl::nguid::actordataid ( ) const
inline

返回Actor本地数值ID部分。

Returns
数据ID值

◆ actordataid() [2/2]

i32_actordataid ngl::nguid::actordataid ( i64_actorid aactorid)
inlinestatic

从打包ID中提取数据ID部分。

Parameters
aactorid打包的Actor ID
Returns
数据ID值

◆ area() [1/2]

i16_area ngl::nguid::area ( ) const
inline

返回区域/分片部分。

Returns
区域值

◆ area() [2/2]

i16_area ngl::nguid::area ( i64_actorid aactorid)
inlinestatic

从打包ID中提取区域部分。

Parameters
aactorid打包的Actor ID
Returns
区域值

◆ id()

i64_actorid ngl::nguid::id ( ) const
inline

返回打包的64位表示。

Returns
打包的64位标识符

◆ is_actorareanone() [1/2]

bool ngl::nguid::is_actorareanone ( ) const
inline

返回区域部分是否为哨兵无效值。

Returns
是否为无效区域

◆ is_actorareanone() [2/2]

bool ngl::nguid::is_actorareanone ( i64_actorid actorid)
inlinestatic

返回区域部分是否为哨兵无效值。

Parameters
actorid打包的Actor ID
Returns
是否为无效区域

◆ is_actoridnone() [1/2]

bool ngl::nguid::is_actoridnone ( ) const
inline

返回数据ID部分是否为哨兵无效值。

Returns
是否为无效数据ID

◆ is_actoridnone() [2/2]

bool ngl::nguid::is_actoridnone ( i64_actorid actorid)
inlinestatic

返回数据ID部分是否为哨兵无效值。

Parameters
actorid打包的Actor ID
Returns
是否为无效数据ID

◆ is_actortypenone() [1/2]

bool ngl::nguid::is_actortypenone ( ) const
inline

返回类型部分是否为哨兵无效值。

Returns
是否为无效类型

◆ is_actortypenone() [2/2]

bool ngl::nguid::is_actortypenone ( i64_actorid actorid)
inlinestatic

返回类型部分是否为哨兵无效值。

Parameters
actorid打包的Actor ID
Returns
是否为无效类型

◆ is_moreactor() [1/2]

bool ngl::nguid::is_moreactor ( ENUM_ACTOR atype) const
inline

返回此GUID是否表示类型级广播目标。

Parameters
atypeActor类型
Returns
是否为广播目标

◆ is_moreactor() [2/2]

bool ngl::nguid::is_moreactor ( i64_actorid actorid,
ENUM_ACTOR atype )
inlinestatic

返回打包ID是否表示类型级广播目标。

Parameters
actorid打包的Actor ID
atypeActor类型
Returns
是否为广播目标

◆ make() [1/4]

i64_actorid ngl::nguid::make ( )
inlinestatic

构建哨兵"无效Actor ID"值。

Returns
无效的64位标识符

◆ make() [2/4]

i64_actorid ngl::nguid::make ( ENUM_ACTOR atype)
inlinestatic

构建仅含类型的ID,用于单例式寻址。

Parameters
atypeActor类型
Returns
打包的64位标识符

◆ make() [3/4]

i64_actorid ngl::nguid::make ( ENUM_ACTOR atype,
i16_area aareaid,
i32_actordataid aid )
inlinestatic

从三个组件构建打包ID。

Parameters
atypeActor类型
aareaid区域/分片
aid数据ID
Returns
打包的64位标识符

◆ make() [4/4]

i64_actorid ngl::nguid::make ( ENUM_ACTOR atype,
i32_actordataid aid )
inlinestatic

当Actor没有具体区域时构建ID。

Parameters
atypeActor类型
aid数据ID
Returns
打包的64位标识符

◆ make_actordataid() [1/2]

i64_actorid ngl::nguid::make_actordataid ( i32_actordataid aid)
inline

就地修改数据ID位。

Parameters
aid新的数据ID
Returns
修改后的64位标识符

◆ make_actordataid() [2/2]

i64_actorid ngl::nguid::make_actordataid ( i64_actorid aactorid,
i32_actordataid aid )
inlinestatic

返回替换了数据ID位的副本。

Parameters
aactorid原始Actor ID
aid新的数据ID
Returns
替换后的64位标识符

◆ make_area()

i64_actorid ngl::nguid::make_area ( i16_area aareaid)
inline

就地修改区域位。

Parameters
aareaid新的区域值
Returns
修改后的64位标识符

◆ make_self()

i64_actorid ngl::nguid::make_self ( ENUM_ACTOR atype)
static

在本地进程区域构建仅含类型的ID。

创建本地单例Actor的ID

Parameters
atypeActor类型
Returns
打包的64位标识符

使用合并区域和none_actordataid构建,适用于tab_self_area容器中的实例。

Parameters
atypeActor类型枚举
Returns
64位Actor ID

◆ make_type() [1/2]

i64_actorid ngl::nguid::make_type ( ENUM_ACTOR atype)
inline

就地修改类型位。

Parameters
atype新的Actor类型
Returns
修改后的64位标识符

◆ make_type() [2/2]

i64_actorid ngl::nguid::make_type ( i64_actorid aactorid,
ENUM_ACTOR atype )
inlinestatic

返回替换了类型位的副本。

Parameters
aactorid原始Actor ID
atype新的Actor类型
Returns
替换后的64位标识符

◆ moreactor() [1/2]

i64_actorid ngl::nguid::moreactor ( )
inlinestatic

构建"所有Actor类型"的哨兵广播ID。

Returns
广播ID

◆ moreactor() [2/2]

i64_actorid ngl::nguid::moreactor ( ENUM_ACTOR atype)
inlinestatic

构建"此类型所有Actor"的广播ID。

Parameters
atypeActor类型
Returns
广播ID

◆ name()

const char * ngl::nguid::name ( i64_actorid aactorid)
inlinestatic

返回打包ID的调试友好型Actor类型名称。

Parameters
aactorid打包的Actor ID
Returns
Actor类型名称字符串

◆ none()

template<typename T>
T ngl::nguid::none ( )
inlinestatic

生成指定类型的哨兵无效值。

Template Parameters
T类型
Returns
无效值(-1转换为T类型)

◆ none_actordataid()

i32_actordataid ngl::nguid::none_actordataid ( )
inlinestatic

哨兵Actor本地ID值。

Returns
无效数据ID

◆ none_area()

i16_area ngl::nguid::none_area ( )
inlinestatic

哨兵区域值。

Returns
无效区域值

◆ none_type()

ENUM_ACTOR ngl::nguid::none_type ( )
inlinestatic

哨兵Actor类型值。

Returns
无效Actor类型

◆ operator i64_actorid()

ngl::nguid::operator i64_actorid ( ) const
inline

隐式转换为i64_actorid。

Returns
打包的64位标识符

◆ operator<=>()

auto ngl::nguid::operator<=> ( const nguid & r) const
inline

三路比较运算符。

Parameters
r右操作数
Returns
比较结果

◆ operator==() [1/2]

bool ngl::nguid::operator== ( const nguid & r) const
inline

相等比较运算符。

Parameters
r右操作数
Returns
是否相等

◆ operator==() [2/2]

bool ngl::nguid::operator== ( int64_t r) const
inline

与int64_t的相等比较运算符。

Parameters
r右操作数
Returns
是否相等

◆ type() [1/2]

ENUM_ACTOR ngl::nguid::type ( ) const
inline

返回Actor类型部分。

Returns
Actor类型枚举值

◆ type() [2/2]

i16_actortype ngl::nguid::type ( i64_actorid aactorid)
inlinestatic

从打包ID中提取Actor类型部分。

Parameters
aactorid打包的Actor ID
Returns
Actor类型值

The documentation for this struct was generated from the following files: