From c9c86dacef028ce9443fea82f5a0b6e8acab8cc2 Mon Sep 17 00:00:00 2001 From: Mordred Date: Sun, 27 Aug 2017 02:04:04 +0200 Subject: [PATCH] Added a linkshell representation class --- .../Server_Zone/Linkshell/Linkshell.cpp | 95 +++++++++++++++++++ src/servers/Server_Zone/Linkshell/Linkshell.h | 62 ++++++++++++ 2 files changed, 157 insertions(+) create mode 100644 src/servers/Server_Zone/Linkshell/Linkshell.cpp create mode 100644 src/servers/Server_Zone/Linkshell/Linkshell.h diff --git a/src/servers/Server_Zone/Linkshell/Linkshell.cpp b/src/servers/Server_Zone/Linkshell/Linkshell.cpp new file mode 100644 index 00000000..f8643edb --- /dev/null +++ b/src/servers/Server_Zone/Linkshell/Linkshell.cpp @@ -0,0 +1,95 @@ +#include "Linkshell.h" + +Core::Linkshell::Linkshell( uint32_t id, + const std::string &name, + uint32_t masterId, + const std::set &members, + const std::set &leaders, + const std::set &invites ) : + m_linkshellId( id ), + m_name( name ), + m_masterCharacterId( masterId ), + m_memberIds( members ), + m_leaderIds( leaders ), + m_inviteIds( invites ) +{ + +} + +uint32_t Core::Linkshell::getId() const +{ + return m_linkshellId; +} + +uint32_t Core::Linkshell::getMasterId() const +{ + return m_masterCharacterId; +} + +const std::set< uint32_t >& Core::Linkshell::getMemberIdList() const +{ + return m_memberIds; +} + +std::set< uint32_t >& Core::Linkshell::getMemberIdList() +{ + return m_memberIds; +} + +const std::string& Core::Linkshell::getName() const +{ + return m_name; +} + +const std::set< uint32_t >& Core::Linkshell::getLeaderIdList() const +{ + return m_leaderIds; +} + +std::set< uint32_t >& Core::Linkshell::getLeaderIdList() +{ + return m_leaderIds; +} + +const std::set< uint32_t >& Core::Linkshell::getInviteIdList() const +{ + return m_inviteIds; +} + +std::set< uint32_t > &Core::Linkshell::getInviteIdList() +{ + return m_inviteIds; +} + +void Core::Linkshell::addMember( uint32_t memberId ) +{ + m_memberIds.insert( memberId ); +} + +void Core::Linkshell::removeMember( uint32_t memberId ) +{ + m_memberIds.erase( memberId ); +} + +void Core::Linkshell::addLeader( uint32_t memberId ) +{ + m_leaderIds.insert( memberId ); +} + +void Core::Linkshell::removeLeader( uint32_t memberId ) +{ + m_leaderIds.erase( memberId ); +} + +void Core::Linkshell::addInvite( uint32_t memberId ) +{ + m_inviteIds.insert( memberId ); +} + +void Core::Linkshell::removeInvite( uint32_t memberId ) +{ + m_inviteIds.erase( memberId ); +} + + + diff --git a/src/servers/Server_Zone/Linkshell/Linkshell.h b/src/servers/Server_Zone/Linkshell/Linkshell.h new file mode 100644 index 00000000..3dd393ec --- /dev/null +++ b/src/servers/Server_Zone/Linkshell/Linkshell.h @@ -0,0 +1,62 @@ +#ifndef CORE_LINKSHELL_H +#define CORE_LINKSHELL_H + +#include +#include + +namespace Core +{ + +class Linkshell +{ +private: + /*! unique ID of the linkshell */ + uint32_t m_linkshellId; + /*! ID of the master character */ + uint32_t m_masterCharacterId; + /*! ID list of all linkshell members */ + std::set< uint32_t > m_memberIds; + /*! Name of the linkshell */ + std::string m_name; + /*! List of member IDs with leader rank */ + std::set< uint32_t > m_leaderIds; + /*! list of IDs of pending character invites */ + std::set< uint32_t > m_inviteIds; + +public: + Linkshell( uint32_t id, + const std::string& name, + uint32_t masterId, + const std::set< uint32_t >& members, + const std::set< uint32_t >& leaders, + const std::set< uint32_t >& invites ); + + uint32_t getId() const; + + const std::string& getName() const; + + uint32_t getMasterId() const; + + const std::set< uint32_t >& getMemberIdList() const; + std::set< uint32_t >& getMemberIdList(); + + const std::set< uint32_t >& getLeaderIdList() const; + std::set< uint32_t >& getLeaderIdList(); + + const std::set< uint32_t >& getInviteIdList() const; + std::set< uint32_t >& getInviteIdList(); + + void addMember( uint32_t memberId ); + void removeMember( uint32_t memberId ); + + void addLeader( uint32_t memberId ); + void removeLeader( uint32_t memberId ); + + void addInvite( uint32_t memberId ); + void removeInvite( uint32_t memberId ); + + +}; + +} +#endif //SAPPHIRE_LINKSHELL_H