mirror of
https://github.com/emagi/eq2emu
synced 2026-08-12 18:23:04 -04:00
4.6 KiB
4.6 KiB
File: PeerManager.h
Classes
ClientHealthCheckGroupOptionsGroupMemberInfoWhoAllPeerPlayerGuildMemberZoneChangeDetailsPeerPeerManager
Functions
void updateStatus(HealthStatus newStatus);std::chrono::duration<double> timeSinceLastCheck() const;: zone_tree(std::make_shared<boost::property_tree::ptree>()),: id(std::move(peerId)), peeringStatus(status), worldAddr(std::move(client_address)),std::string getZoneDataAsJson() const {std::lock_guard<std::mutex> lock(dataMutex);std::string getClientDataAsJson() const {std::lock_guard<std::mutex> lock(dataMutex);void addPeer(std::string id, PeeringStatus status, std::string client_address, std::string client_internal_address, int16 client_port, std::string web_address, int16 web_port);void updateHealth(const std::string& id, HealthStatus newStatus);void updatePriority(const std::string& id, int16 priority);void updateZoneTree(const std::string& id, const boost::property_tree::ptree& newTree);void updateClientTree(const std::string& id, const boost::property_tree::ptree& newTree);bool IsClientConnectedPeer(int32 account_id);std::string GetCharacterPeerId(std::string charName);void SendPeersChannelMessage(int32 group_id, std::string fromName, std::string message, int16 channel, int32 language_id = 0);void SendPeersGuildChannelMessage(int32 guild_id, std::string fromName, std::string message, int16 channel, int32 language_id = 0);void sendZonePeerList(Client* client);std::string getZonePeerId(const std::string& inc_zone_name, int32 inc_zone_id, int32 inc_instance_id, ZoneChangeDetails* opt_details = nullptr, bool only_always_loaded = false, int32 matchDuplicatedId = 0);int32 getZoneHighestDuplicateId(const std::string& inc_zone_name, int32 inc_zone_id, bool increment_new_value = true);void setZonePeerData(ZoneChangeDetails* opt_details);void setPrimary(const std::string& id);bool hasPrimary();bool hasPriorityPeer(int16 priority);std::string getPriorityPeer();void updatePeer(const std::string& web_address, int16 web_port, const std::string& client_address, const std::string& client_internal_address, int16 client_port, bool is_primary = false);std::string isPeer(const std::string& web_address, int16 web_port);HealthStatus getPeerStatus(const std::string& web_address, int16 web_port);bool hasPeers();std::string assignUniqueNameForSecondary(const std::string& baseName, std::string client_address, std::string client_internal_address, int16 client_port, std::string web_address, int16 web_port);std::optional<std::string> getHealthyPeer() const;std::shared_ptr<Peer> getHealthyPeerPtr() const;std::shared_ptr<Peer> getHealthyPrimaryPeerPtr() const;std::shared_ptr<Peer> getHealthyPeerWithLeastClients() const;std::shared_ptr<Peer> getPeerById(const std::string& id) const;int32 getUniqueGroupId();bool sendPrimaryNewGroupRequest(std::string leader, std::string member, int32 entity_id, GroupOptions* options);void sendPeersGroupMember(int32 group_id, GroupMemberInfo* info, bool is_update = false, std::string peerId = "");void sendPeersRemoveGroupMember(int32 group_id, std::string name, int32 char_id, bool is_client);void populateGroupOptions(boost::property_tree::ptree& root, GroupOptions* options);void sendPeersDisbandGroup(int32 group_id);bool sendPrimaryCreateGuildRequest(std::string guild_name, std::string leader_name, bool prompted_dialog = false, int32 spawnID = 0);void sendPeersAddGuildMember(int32 character_id, int32 guild_id, std::string invited_by, int32 join_timestamp, int8 rank);void sendPeersRemoveGuildMember(int32 character_id, int32 guild_id, std::string removed_by);void sendPeersCreateGuild(int32 guild_id);void sendPeersGuildPermission(int32 guild_id, int8 rank, int8 permission, int8 value_);void sendPeersGuildEventFilter(int32 guild_id, int8 event_id, int8 category, int8 value_);void SetPeerErrorState(std::string address, std::string port);void handlePrimaryConflict(const std::string& reconnectingPeerId);std::shared_ptr<Peer> getCurrentPrimary();void sendPeersMessage(const std::string& endpoint, int32 command, int32 sub_command = 0);void sendZonePlayerList(std::vector<string>* queries, std::vector<WhoAllPeerPlayer>* peer_list, bool isGM);bool GetClientGuildDetails(int32 matchCharID, GuildMember* member_details);
Notable Comments
- /*
- */
- // Default constructor
- // Example function to output data as JSON string (for debug or logging)
- // Example function to output data as JSON string (for debug or logging)