|
| | actor_base (const actorparmbase &aparm) |
| | Actor基类构造函数
|
|
nready & | ready () |
|
std::unique_ptr< nmanage_dbclient > & | manage_dbclient () |
|
void | set_db_component (ndb_component *acomponent) |
|
void | db_component_init_data () |
|
void | init_db_component (bool acreate) |
|
void | add_dbclient (ndbclient_base *adbclient, i64_actorid aid) |
|
template<pbdb::ENUM_DB DBTYPE, typename TDBTAB, typename TACTOR> |
| bool | handle_db (const message< np_actordb_load_response< DBTYPE, TDBTAB > > &adata) |
| virtual void | init () |
| virtual actor_stat | activity_stat ()=0 |
| virtual void | set_activity_stat (actor_stat astat)=0 |
| virtual bool | list_empty ()=0 |
| virtual bool | pending_empty ()=0 |
| virtual bool | high_empty ()=0 |
| virtual bool | actor_handle (i32_threadid athreadid)=0 |
| virtual bool | push (handle_pram &apram)=0 |
| virtual void | handle_after (handle_pram &) |
| virtual void | loaddb_finish (pbdb::ENUM_DB atype, enum_dbstat astat) |
| virtual void | release ()=0 |
| virtual void | erase_actor_before () |
|
virtual void | save () |
|
bool | is_single () const |
|
const nguid & | guid () const |
|
i64_actorid | id_guid () const |
|
i32_actordataid | id () const |
|
i16_area | area () const |
|
ENUM_ACTOR | type () const |
|
virtual void | erase_actor () |
| | 从actor_manage中注销并销毁此Actor
|
|
bool | nscript_using () const |
|
bool | nscript_db_loadfinish () const |
|
template<typename T> |
| bool | nscript_data_push (const char *asource, const T &adata, bool aedit) |
|
template<typename T> |
| bool | nscript_data_del (int64_t adataid) |
|
template<typename T> |
| bool | nscript_data_checkout (int64_t adataid, T &adata) |
|
template<typename T> |
| bool | nscript_data_checkout (std::map< int64_t, T > &adata) |
|
template<typename T> |
| bool | nscript_data_checkdel (int64_t adataid) |
|
template<typename T> |
| bool | nscript_data_checkdel (std::vector< int64_t > &adeldata) |
|
template<typename T> |
| bool | nscript_handle (const T &adata) |
|
void | kcp_setindex (i32_serverid aserverid, pbnet::ENUM_KCP aenum, i16_port akcpindex) |
|
std::optional< i16_port > | kcp_index (i32_serverid aserverid, pbnet::ENUM_KCP aenum) |
|
std::optional< i16_port > | kcp_index (int16_t aservertid, int16_t atcount, pbnet::ENUM_KCP aenum) |
|
bool | kcp_connect (i16_port auport, const std::string &aip, i16_port aprot, i64_actorid aactoridserver, std::string &akcpsession) const |
| int64_t | set_timer (const np_timerparm &aparm) |
| | 为当前Actor设置定时器
|
|
bool | isbroadcast () const |
|
void | set_broadcast (bool aisbroadcast) |
|
template<typename T> |
| void | handle_print (const message< T > &adata) const |
|
|
static void | erase_actor (const nguid &aguid) |
|
static std::shared_ptr< pack > | jsonpack (const std::string &apbname, const std::string &ajson, i64_actorid aactorid, i64_actorid arequestactorid, bool ahead=false) |
|
template<typename T> |
| static std::shared_ptr< pack > | net_pack (T &adata, i64_actorid aactorid, i64_actorid arequestactorid, bool ahead=false) |
|
static bool | send_pack (i32_sessionid asession, std::shared_ptr< pack > &apack) |
|
template<typename T> |
| static bool | send (i32_sessionid asession, const T &adata, i64_actorid aactorid, i64_actorid arequestactorid) |
|
template<typename T> |
| static bool | send_server (i32_serverid aserverid, const T &adata, i64_actorid aactorid, i64_actorid arequestactorid) |
|
template<typename T> |
| static bool | send_server (const std::set< i32_serverid > &aserverids, const T &adata, i64_actorid aactorid, i64_actorid arequestactorid) |
|
static bool | send_server (i32_serverid aserverid, std::shared_ptr< pack > &apack) |
|
static bool | kcp_sendpack (i64_actorid aactorid, std::shared_ptr< pack > &adata, i16_port auport=0) |
|
static bool | kcp_sendpack (const std::set< i64_actorid > &aactorids, std::shared_ptr< pack > &adata, i16_port auport=0) |
| template<typename T> |
| static bool | kcp_send (i64_actorid aactorid, const T &adata, i16_port auport=0) |
| | 向单个Actor发送KCP数据(actor_base模板实现)。
|
| template<typename T> |
| static bool | kcp_send (const std::set< i64_actorid > &aactorids, const T &adata, i16_port auport=0) |
| | 向一组Actor广播KCP数据(actor_base模板实现)。
|
|
static i64_actorid | actorclient_guid () |
|
template<typename T> |
| static void | send_client (const std::set< i64_actorid > &aids, const T &adata, ENET_PROTOCOL aprotocol=ENET_TCP) |
|
template<typename T> |
| static void | send_client (i64_actorid aid, const T &adata, ENET_PROTOCOL aprotocol=ENET_TCP) |
|
template<typename T> |
| static void | send_client (const std::vector< i64_actorid > &aids, const T &adata, ENET_PROTOCOL aprotocol=ENET_TCP) |
|
template<typename T> |
| static void | send_client (const T &adata, ENET_PROTOCOL aprotocol=ENET_TCP) |
|
template<typename T> |
| static void | send_clientbyarea (i16_area aarea, const T &adata, ENET_PROTOCOL aprotocol=ENET_TCP) |
| static void | send_actor (const nguid &aguid, const std::shared_ptr< pack > &adata) |
| | 向指定Actor发送消息包
|
|
template<typename T, bool IS_SEND = true> |
| static void | send_actor (ENUM_ACTOR atype, const std::shared_ptr< T > &adata) |
|
template<typename T, bool IS_SEND = true> |
| static void | send_actor (const nguid &aguid, const nguid &arequestguid, const std::shared_ptr< T > &adata) |
|
template<typename T, bool IS_SEND = true> |
| static void | send_actor (const nguid &aguid, const nguid &arequestguid, const std::shared_ptr< T > &adata, const std::function< void()> &afailfun) |
|
template<typename T, bool IS_SEND = true> |
| static void | send_actor (const std::set< i64_actorid > &asetguid, const nguid &arequestguid, const std::shared_ptr< T > &adata) |
| static void | start_broadcast () |
| | 启动全局广播定时器
|
|
template<typename TDerived> |
| static void | first_nregister (ENUM_ACTOR atype) |
| template<typename TACTOR, typename ... ARG> |
| static std::shared_ptr< actor_base > | create (i16_area aarea, i32_actordataid aid, ARG &&... args) |
| | actor工厂方法(编译期类型)
|
|
template<typename ... ARG> |
| static std::map< ENUM_ACTOR, create_fun< ARG... > > & | creators () |
|
template<ENUM_ACTOR EACTOR, typename TACTOR, typename ... ARG> |
| static void | cregister () |
| template<typename ... ARG> |
| static std::shared_ptr< actor_base > | create (ENUM_ACTOR atype, i16_area aarea, i32_actordataid aid, ARG &&... args) |
| | actor工厂方法(运行时类型,查分桶表转调编译期create<TACTOR>)
|
Actor基类,提供所有Actor的通用功能。
Actor是游戏服务器的基本执行单元,每个Actor代表一个独立的逻辑实体。 该基类提供了以下核心功能:
- 身份标识和生命周期管理
- 数据库集成和持久化
- 消息处理和路由
- 脚本扩展支持
- 网络通信接口
- 定时器和事件处理
派生类需要实现纯虚函数来定义具体的行为。