summaryrefslogtreecommitdiff
path: root/indra/newview/llgroupmgr.h
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llgroupmgr.h')
-rw-r--r--indra/newview/llgroupmgr.h636
1 files changed, 318 insertions, 318 deletions
diff --git a/indra/newview/llgroupmgr.h b/indra/newview/llgroupmgr.h
index 0d25e8fb22..c12a0b019a 100644
--- a/indra/newview/llgroupmgr.h
+++ b/indra/newview/llgroupmgr.h
@@ -1,25 +1,25 @@
-/**
+/**
* @file llgroupmgr.h
* @brief Manager for aggregating all client knowledge for specific groups
*
* $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
* Copyright (C) 2010, Linden Research, Inc.
- *
+ *
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License only.
- *
+ *
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
+ *
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -42,13 +42,13 @@ class LLGroupMgr;
enum LLGroupChange
{
- GC_PROPERTIES,
- GC_MEMBER_DATA,
- GC_ROLE_DATA,
- GC_ROLE_MEMBER_DATA,
- GC_TITLES,
- GC_BANLIST,
- GC_ALL
+ GC_PROPERTIES,
+ GC_MEMBER_DATA,
+ GC_ROLE_DATA,
+ GC_ROLE_MEMBER_DATA,
+ GC_TITLES,
+ GC_BANLIST,
+ GC_ALL
};
const U32 GB_MAX_BANNED_AGENTS = 500;
@@ -56,20 +56,20 @@ const U32 GB_MAX_BANNED_AGENTS = 500;
class LLGroupMgrObserver
{
public:
- LLGroupMgrObserver(const LLUUID& id) : mID(id){};
- LLGroupMgrObserver() : mID(LLUUID::null){};
- virtual ~LLGroupMgrObserver(){};
- virtual void changed(LLGroupChange gc) = 0;
- const LLUUID& getID() { return mID; }
+ LLGroupMgrObserver(const LLUUID& id) : mID(id){};
+ LLGroupMgrObserver() : mID(LLUUID::null){};
+ virtual ~LLGroupMgrObserver(){};
+ virtual void changed(LLGroupChange gc) = 0;
+ const LLUUID& getID() { return mID; }
protected:
- LLUUID mID;
+ LLUUID mID;
};
class LLParticularGroupObserver
{
public:
- virtual ~LLParticularGroupObserver(){}
- virtual void changed(const LLUUID& group_id, LLGroupChange gc) = 0;
+ virtual ~LLParticularGroupObserver(){}
+ virtual void changed(const LLUUID& group_id, LLGroupChange gc) = 0;
};
class LLGroupMemberData
@@ -77,56 +77,56 @@ class LLGroupMemberData
friend class LLGroupMgrGroupData;
public:
- typedef std::map<LLUUID,LLGroupRoleData*> role_list_t;
-
- LLGroupMemberData(const LLUUID& id,
- S32 contribution,
- U64 agent_powers,
- const std::string& title,
- const std::string& online_status,
- BOOL is_owner);
-
- ~LLGroupMemberData();
-
- const LLUUID& getID() const { return mID; }
- S32 getContribution() const { return mContribution; }
- U64 getAgentPowers() const { return mAgentPowers; }
- BOOL isOwner() const { return mIsOwner; }
- const std::string& getTitle() const { return mTitle; }
- const std::string& getOnlineStatus() const { return mOnlineStatus; }
- void addRole(const LLUUID& role, LLGroupRoleData* rd);
- bool removeRole(const LLUUID& role);
- void clearRoles() { mRolesList.clear(); };
- role_list_t::iterator roleBegin() { return mRolesList.begin(); }
- role_list_t::iterator roleEnd() { return mRolesList.end(); }
-
- BOOL isInRole(const LLUUID& role_id) { return (mRolesList.find(role_id) != mRolesList.end()); }
+ typedef std::map<LLUUID,LLGroupRoleData*> role_list_t;
+
+ LLGroupMemberData(const LLUUID& id,
+ S32 contribution,
+ U64 agent_powers,
+ const std::string& title,
+ const std::string& online_status,
+ BOOL is_owner);
+
+ ~LLGroupMemberData();
+
+ const LLUUID& getID() const { return mID; }
+ S32 getContribution() const { return mContribution; }
+ U64 getAgentPowers() const { return mAgentPowers; }
+ BOOL isOwner() const { return mIsOwner; }
+ const std::string& getTitle() const { return mTitle; }
+ const std::string& getOnlineStatus() const { return mOnlineStatus; }
+ void addRole(const LLUUID& role, LLGroupRoleData* rd);
+ bool removeRole(const LLUUID& role);
+ void clearRoles() { mRolesList.clear(); };
+ role_list_t::iterator roleBegin() { return mRolesList.begin(); }
+ role_list_t::iterator roleEnd() { return mRolesList.end(); }
+
+ BOOL isInRole(const LLUUID& role_id) { return (mRolesList.find(role_id) != mRolesList.end()); }
private:
- LLUUID mID;
- S32 mContribution;
- U64 mAgentPowers;
- std::string mTitle;
- std::string mOnlineStatus;
- BOOL mIsOwner;
- role_list_t mRolesList;
+ LLUUID mID;
+ S32 mContribution;
+ U64 mAgentPowers;
+ std::string mTitle;
+ std::string mOnlineStatus;
+ BOOL mIsOwner;
+ role_list_t mRolesList;
};
struct LLRoleData
{
- LLRoleData() : mRolePowers(0), mChangeType(RC_UPDATE_NONE) { }
- LLRoleData(const LLRoleData& rd)
- : mRoleName(rd.mRoleName),
- mRoleTitle(rd.mRoleTitle),
- mRoleDescription(rd.mRoleDescription),
- mRolePowers(rd.mRolePowers),
- mChangeType(rd.mChangeType) { }
-
- std::string mRoleName;
- std::string mRoleTitle;
- std::string mRoleDescription;
- U64 mRolePowers;
- LLRoleChangeType mChangeType;
+ LLRoleData() : mRolePowers(0), mChangeType(RC_UPDATE_NONE) { }
+ LLRoleData(const LLRoleData& rd)
+ : mRoleName(rd.mRoleName),
+ mRoleTitle(rd.mRoleTitle),
+ mRoleDescription(rd.mRoleDescription),
+ mRolePowers(rd.mRolePowers),
+ mChangeType(rd.mChangeType) { }
+
+ std::string mRoleName;
+ std::string mRoleTitle;
+ std::string mRoleDescription;
+ U64 mRolePowers;
+ LLRoleChangeType mChangeType;
};
class LLGroupRoleData
@@ -134,94 +134,94 @@ class LLGroupRoleData
friend class LLGroupMgrGroupData;
public:
- LLGroupRoleData(const LLUUID& role_id,
- const std::string& role_name,
- const std::string& role_title,
- const std::string& role_desc,
- const U64 role_powers,
- const S32 member_count);
-
- LLGroupRoleData(const LLUUID& role_id,
- LLRoleData role_data,
- const S32 member_count);
+ LLGroupRoleData(const LLUUID& role_id,
+ const std::string& role_name,
+ const std::string& role_title,
+ const std::string& role_desc,
+ const U64 role_powers,
+ const S32 member_count);
+
+ LLGroupRoleData(const LLUUID& role_id,
+ LLRoleData role_data,
+ const S32 member_count);
+
+ ~LLGroupRoleData();
- ~LLGroupRoleData();
+ const LLUUID& getID() const { return mRoleID; }
- const LLUUID& getID() const { return mRoleID; }
+ const uuid_vec_t& getRoleMembers() const { return mMemberIDs; }
+ S32 getMembersInRole(uuid_vec_t members, BOOL needs_sort = TRUE);
+ S32 getTotalMembersInRole() { return mMemberCount ? mMemberCount : mMemberIDs.size(); } //FIXME: Returns 0 for Everyone role when Member list isn't yet loaded, see MAINT-5225
- const uuid_vec_t& getRoleMembers() const { return mMemberIDs; }
- S32 getMembersInRole(uuid_vec_t members, BOOL needs_sort = TRUE);
- S32 getTotalMembersInRole() { return mMemberCount ? mMemberCount : mMemberIDs.size(); } //FIXME: Returns 0 for Everyone role when Member list isn't yet loaded, see MAINT-5225
+ LLRoleData getRoleData() const { return mRoleData; }
+ void setRoleData(LLRoleData data) { mRoleData = data; }
- LLRoleData getRoleData() const { return mRoleData; }
- void setRoleData(LLRoleData data) { mRoleData = data; }
-
- void addMember(const LLUUID& member);
- bool removeMember(const LLUUID& member);
- void clearMembers();
+ void addMember(const LLUUID& member);
+ bool removeMember(const LLUUID& member);
+ void clearMembers();
- const uuid_vec_t::const_iterator getMembersBegin() const
- { return mMemberIDs.begin(); }
+ const uuid_vec_t::const_iterator getMembersBegin() const
+ { return mMemberIDs.begin(); }
- const uuid_vec_t::const_iterator getMembersEnd() const
- { return mMemberIDs.end(); }
+ const uuid_vec_t::const_iterator getMembersEnd() const
+ { return mMemberIDs.end(); }
protected:
- LLGroupRoleData()
- : mMemberCount(0), mMembersNeedsSort(FALSE) {}
+ LLGroupRoleData()
+ : mMemberCount(0), mMembersNeedsSort(FALSE) {}
- LLUUID mRoleID;
- LLRoleData mRoleData;
+ LLUUID mRoleID;
+ LLRoleData mRoleData;
- uuid_vec_t mMemberIDs;
- S32 mMemberCount;
+ uuid_vec_t mMemberIDs;
+ S32 mMemberCount;
private:
- BOOL mMembersNeedsSort;
+ BOOL mMembersNeedsSort;
};
struct LLRoleMemberChange
{
- LLRoleMemberChange() : mChange(RMC_NONE) { }
- LLRoleMemberChange(const LLUUID& role, const LLUUID& member, LLRoleMemberChangeType change)
- : mRole(role), mMember(member), mChange(change) { }
- LLRoleMemberChange(const LLRoleMemberChange& rc)
- : mRole(rc.mRole), mMember(rc.mMember), mChange(rc.mChange) { }
- LLUUID mRole;
- LLUUID mMember;
- LLRoleMemberChangeType mChange;
+ LLRoleMemberChange() : mChange(RMC_NONE) { }
+ LLRoleMemberChange(const LLUUID& role, const LLUUID& member, LLRoleMemberChangeType change)
+ : mRole(role), mMember(member), mChange(change) { }
+ LLRoleMemberChange(const LLRoleMemberChange& rc)
+ : mRole(rc.mRole), mMember(rc.mMember), mChange(rc.mChange) { }
+ LLUUID mRole;
+ LLUUID mMember;
+ LLRoleMemberChangeType mChange;
};
typedef std::pair<LLUUID,LLUUID> lluuid_pair;
struct lluuid_pair_less
{
- bool operator()(const lluuid_pair& lhs, const lluuid_pair& rhs) const
- {
- if (lhs.first == rhs.first)
- return lhs.second < rhs.second;
- else
- return lhs.first < rhs.first;
- }
+ bool operator()(const lluuid_pair& lhs, const lluuid_pair& rhs) const
+ {
+ if (lhs.first == rhs.first)
+ return lhs.second < rhs.second;
+ else
+ return lhs.first < rhs.first;
+ }
};
struct LLGroupBanData
{
- LLGroupBanData(): mBanDate() {}
- ~LLGroupBanData() {}
-
- LLDate mBanDate;
- // TODO: std:string ban_reason;
+ LLGroupBanData(): mBanDate() {}
+ ~LLGroupBanData() {}
+
+ LLDate mBanDate;
+ // TODO: std:string ban_reason;
};
struct LLGroupTitle
{
- std::string mTitle;
- LLUUID mRoleID;
- BOOL mSelected;
+ std::string mTitle;
+ LLUUID mRoleID;
+ BOOL mSelected;
};
class LLGroupMgrGroupData
@@ -229,211 +229,211 @@ class LLGroupMgrGroupData
friend class LLGroupMgr;
public:
- LLGroupMgrGroupData(const LLUUID& id);
- ~LLGroupMgrGroupData();
-
- const LLUUID& getID() { return mID; }
-
- BOOL getRoleData(const LLUUID& role_id, LLRoleData& role_data);
- void setRoleData(const LLUUID& role_id, LLRoleData role_data);
- void createRole(const LLUUID& role_id, LLRoleData role_data);
- void deleteRole(const LLUUID& role_id);
- BOOL pendingRoleChanges();
-
- void addRolePower(const LLUUID& role_id, U64 power);
- void removeRolePower(const LLUUID& role_id, U64 power);
- U64 getRolePowers(const LLUUID& role_id);
-
- void removeData();
- void removeRoleData();
- void removeMemberData();
- void removeRoleMemberData();
-
- bool changeRoleMember(const LLUUID& role_id, const LLUUID& member_id, LLRoleMemberChangeType rmc);
- void recalcAllAgentPowers();
- void recalcAgentPowers(const LLUUID& agent_id);
-
- bool isMemberDataComplete() { return mMemberDataComplete; }
- bool isRoleDataComplete() { return mRoleDataComplete; }
- bool isRoleMemberDataComplete() { return mRoleMemberDataComplete; }
- bool isGroupPropertiesDataComplete() { return mGroupPropertiesDataComplete; }
-
- bool isMemberDataPending() { return mMemberRequestID.notNull(); }
- bool isRoleDataPending() { return mRoleDataRequestID.notNull(); }
- bool isRoleMemberDataPending() { return (mRoleMembersRequestID.notNull() || mPendingRoleMemberRequest); }
- bool isGroupTitlePending() { return mTitlesRequestID.notNull(); }
-
- bool isSingleMemberNotOwner();
-
- F32 getAccessTime() const { return mAccessTime; }
- void setAccessed();
-
- const LLUUID& getMemberVersion() const { return mMemberVersion; }
-
- void clearBanList() { mBanList.clear(); }
- void getBanList(const LLUUID& group_id, LLGroupBanData& ban_data);
- const LLGroupBanData& getBanEntry(const LLUUID& ban_id) { return mBanList[ban_id]; }
-
- void createBanEntry(const LLUUID& ban_id, const LLGroupBanData& ban_data = LLGroupBanData());
- void removeBanEntry(const LLUUID& ban_id);
- void banMemberById(const LLUUID& participant_uuid);
-
+ LLGroupMgrGroupData(const LLUUID& id);
+ ~LLGroupMgrGroupData();
+
+ const LLUUID& getID() { return mID; }
+
+ BOOL getRoleData(const LLUUID& role_id, LLRoleData& role_data);
+ void setRoleData(const LLUUID& role_id, LLRoleData role_data);
+ void createRole(const LLUUID& role_id, LLRoleData role_data);
+ void deleteRole(const LLUUID& role_id);
+ BOOL pendingRoleChanges();
+
+ void addRolePower(const LLUUID& role_id, U64 power);
+ void removeRolePower(const LLUUID& role_id, U64 power);
+ U64 getRolePowers(const LLUUID& role_id);
+
+ void removeData();
+ void removeRoleData();
+ void removeMemberData();
+ void removeRoleMemberData();
+
+ bool changeRoleMember(const LLUUID& role_id, const LLUUID& member_id, LLRoleMemberChangeType rmc);
+ void recalcAllAgentPowers();
+ void recalcAgentPowers(const LLUUID& agent_id);
+
+ bool isMemberDataComplete() { return mMemberDataComplete; }
+ bool isRoleDataComplete() { return mRoleDataComplete; }
+ bool isRoleMemberDataComplete() { return mRoleMemberDataComplete; }
+ bool isGroupPropertiesDataComplete() { return mGroupPropertiesDataComplete; }
+
+ bool isMemberDataPending() { return mMemberRequestID.notNull(); }
+ bool isRoleDataPending() { return mRoleDataRequestID.notNull(); }
+ bool isRoleMemberDataPending() { return (mRoleMembersRequestID.notNull() || mPendingRoleMemberRequest); }
+ bool isGroupTitlePending() { return mTitlesRequestID.notNull(); }
+
+ bool isSingleMemberNotOwner();
+
+ F32 getAccessTime() const { return mAccessTime; }
+ void setAccessed();
+
+ const LLUUID& getMemberVersion() const { return mMemberVersion; }
+
+ void clearBanList() { mBanList.clear(); }
+ void getBanList(const LLUUID& group_id, LLGroupBanData& ban_data);
+ const LLGroupBanData& getBanEntry(const LLUUID& ban_id) { return mBanList[ban_id]; }
+
+ void createBanEntry(const LLUUID& ban_id, const LLGroupBanData& ban_data = LLGroupBanData());
+ void removeBanEntry(const LLUUID& ban_id);
+ void banMemberById(const LLUUID& participant_uuid);
+
public:
- typedef std::map<LLUUID,LLGroupMemberData*> member_list_t;
- typedef std::map<LLUUID,LLGroupRoleData*> role_list_t;
- typedef std::map<lluuid_pair,LLRoleMemberChange,lluuid_pair_less> change_map_t;
- typedef std::map<LLUUID,LLRoleData> role_data_map_t;
- typedef std::map<LLUUID,LLGroupBanData> ban_list_t;
-
- member_list_t mMembers;
- role_list_t mRoles;
- change_map_t mRoleMemberChanges;
- role_data_map_t mRoleChanges;
- ban_list_t mBanList;
-
- std::vector<LLGroupTitle> mTitles;
-
- LLUUID mID;
- LLUUID mOwnerRole;
- std::string mName;
- std::string mCharter;
- BOOL mShowInList;
- LLUUID mInsigniaID;
- LLUUID mFounderID;
- BOOL mOpenEnrollment;
- S32 mMembershipFee;
- BOOL mAllowPublish;
- BOOL mListInProfile;
- BOOL mMaturePublish;
- BOOL mChanged;
- S32 mMemberCount;
- S32 mRoleCount;
-
- bool mPendingBanRequest;
- LLUUID mPendingBanMemberID;
+ typedef std::map<LLUUID,LLGroupMemberData*> member_list_t;
+ typedef std::map<LLUUID,LLGroupRoleData*> role_list_t;
+ typedef std::map<lluuid_pair,LLRoleMemberChange,lluuid_pair_less> change_map_t;
+ typedef std::map<LLUUID,LLRoleData> role_data_map_t;
+ typedef std::map<LLUUID,LLGroupBanData> ban_list_t;
+
+ member_list_t mMembers;
+ role_list_t mRoles;
+ change_map_t mRoleMemberChanges;
+ role_data_map_t mRoleChanges;
+ ban_list_t mBanList;
+
+ std::vector<LLGroupTitle> mTitles;
+
+ LLUUID mID;
+ LLUUID mOwnerRole;
+ std::string mName;
+ std::string mCharter;
+ BOOL mShowInList;
+ LLUUID mInsigniaID;
+ LLUUID mFounderID;
+ BOOL mOpenEnrollment;
+ S32 mMembershipFee;
+ BOOL mAllowPublish;
+ BOOL mListInProfile;
+ BOOL mMaturePublish;
+ BOOL mChanged;
+ S32 mMemberCount;
+ S32 mRoleCount;
+
+ bool mPendingBanRequest;
+ LLUUID mPendingBanMemberID;
protected:
- void sendRoleChanges();
- void cancelRoleChanges();
+ void sendRoleChanges();
+ void cancelRoleChanges();
private:
- LLUUID mMemberRequestID;
- LLUUID mRoleDataRequestID;
- LLUUID mRoleMembersRequestID;
- LLUUID mTitlesRequestID;
- U32 mReceivedRoleMemberPairs;
-
- bool mMemberDataComplete;
- bool mRoleDataComplete;
- bool mRoleMemberDataComplete;
- bool mGroupPropertiesDataComplete;
-
- bool mPendingRoleMemberRequest;
- F32 mAccessTime;
-
- // Generate a new ID every time mMembers
- LLUUID mMemberVersion;
+ LLUUID mMemberRequestID;
+ LLUUID mRoleDataRequestID;
+ LLUUID mRoleMembersRequestID;
+ LLUUID mTitlesRequestID;
+ U32 mReceivedRoleMemberPairs;
+
+ bool mMemberDataComplete;
+ bool mRoleDataComplete;
+ bool mRoleMemberDataComplete;
+ bool mGroupPropertiesDataComplete;
+
+ bool mPendingRoleMemberRequest;
+ F32 mAccessTime;
+
+ // Generate a new ID every time mMembers
+ LLUUID mMemberVersion;
};
struct LLRoleAction
{
- std::string mName;
- std::string mDescription;
- std::string mLongDescription;
- U64 mPowerBit;
+ std::string mName;
+ std::string mDescription;
+ std::string mLongDescription;
+ U64 mPowerBit;
};
struct LLRoleActionSet
{
- LLRoleActionSet();
- ~LLRoleActionSet();
- LLRoleAction* mActionSetData;
- std::vector<LLRoleAction*> mActions;
+ LLRoleActionSet();
+ ~LLRoleActionSet();
+ LLRoleAction* mActionSetData;
+ std::vector<LLRoleAction*> mActions;
};
class LLGroupMgr : public LLSingleton<LLGroupMgr>
{
- LLSINGLETON(LLGroupMgr);
- ~LLGroupMgr();
- LOG_CLASS(LLGroupMgr);
-
+ LLSINGLETON(LLGroupMgr);
+ ~LLGroupMgr();
+ LOG_CLASS(LLGroupMgr);
+
public:
- enum EBanRequestType
- {
- REQUEST_GET = 0,
- REQUEST_POST,
- REQUEST_PUT,
- REQUEST_DEL
- };
-
- enum EBanRequestAction
- {
- BAN_NO_ACTION = 0,
- BAN_CREATE = 1,
- BAN_DELETE = 2,
- BAN_UPDATE = 4
- };
+ enum EBanRequestType
+ {
+ REQUEST_GET = 0,
+ REQUEST_POST,
+ REQUEST_PUT,
+ REQUEST_DEL
+ };
+
+ enum EBanRequestAction
+ {
+ BAN_NO_ACTION = 0,
+ BAN_CREATE = 1,
+ BAN_DELETE = 2,
+ BAN_UPDATE = 4
+ };
public:
- void addObserver(LLGroupMgrObserver* observer);
- void addObserver(const LLUUID& group_id, LLParticularGroupObserver* observer);
- void removeObserver(LLGroupMgrObserver* observer);
- void removeObserver(const LLUUID& group_id, LLParticularGroupObserver* observer);
- LLGroupMgrGroupData* getGroupData(const LLUUID& id);
-
- void sendGroupPropertiesRequest(const LLUUID& group_id);
- void sendGroupRoleDataRequest(const LLUUID& group_id);
- void sendGroupRoleMembersRequest(const LLUUID& group_id);
- void sendGroupMembersRequest(const LLUUID& group_id);
- void sendGroupTitlesRequest(const LLUUID& group_id);
- void sendGroupTitleUpdate(const LLUUID& group_id, const LLUUID& title_role_id);
- void sendUpdateGroupInfo(const LLUUID& group_id);
- void sendGroupRoleMemberChanges(const LLUUID& group_id);
- void sendGroupRoleChanges(const LLUUID& group_id);
-
- static void sendCreateGroupRequest(const std::string& name,
- const std::string& charter,
- U8 show_in_list,
- const LLUUID& insignia,
- S32 membership_fee,
- BOOL open_enrollment,
- BOOL allow_publish,
- BOOL mature_publish);
-
- static void sendGroupMemberJoin(const LLUUID& group_id);
- static void sendGroupMemberInvites(const LLUUID& group_id, std::map<LLUUID,LLUUID>& role_member_pairs);
- static void sendGroupMemberEjects(const LLUUID& group_id,
- uuid_vec_t& member_ids);
-
- void sendGroupBanRequest(EBanRequestType request_type,
- const LLUUID& group_id,
- U32 ban_action = BAN_NO_ACTION,
- const uuid_vec_t &ban_list = uuid_vec_t());
-
-
- void sendCapGroupMembersRequest(const LLUUID& group_id);
-
- void cancelGroupRoleChanges(const LLUUID& group_id);
-
- static void processGroupPropertiesReply(LLMessageSystem* msg, void** data);
- static void processGroupMembersReply(LLMessageSystem* msg, void** data);
- static void processGroupRoleDataReply(LLMessageSystem* msg, void** data);
- static void processGroupRoleMembersReply(LLMessageSystem* msg, void** data);
- static void processGroupTitlesReply(LLMessageSystem* msg, void** data);
- static void processCreateGroupReply(LLMessageSystem* msg, void** data);
- static void processJoinGroupReply(LLMessageSystem* msg, void ** data);
- static void processEjectGroupMemberReply(LLMessageSystem* msg, void ** data);
- static void processLeaveGroupReply(LLMessageSystem* msg, void ** data);
-
- static bool parseRoleActions(const std::string& xml_filename);
-
- std::vector<LLRoleActionSet*> mRoleActionSets;
-
- static void debugClearAllGroups(void*);
- void clearGroups();
- void clearGroupData(const LLUUID& group_id);
+ void addObserver(LLGroupMgrObserver* observer);
+ void addObserver(const LLUUID& group_id, LLParticularGroupObserver* observer);
+ void removeObserver(LLGroupMgrObserver* observer);
+ void removeObserver(const LLUUID& group_id, LLParticularGroupObserver* observer);
+ LLGroupMgrGroupData* getGroupData(const LLUUID& id);
+
+ void sendGroupPropertiesRequest(const LLUUID& group_id);
+ void sendGroupRoleDataRequest(const LLUUID& group_id);
+ void sendGroupRoleMembersRequest(const LLUUID& group_id);
+ void sendGroupMembersRequest(const LLUUID& group_id);
+ void sendGroupTitlesRequest(const LLUUID& group_id);
+ void sendGroupTitleUpdate(const LLUUID& group_id, const LLUUID& title_role_id);
+ void sendUpdateGroupInfo(const LLUUID& group_id);
+ void sendGroupRoleMemberChanges(const LLUUID& group_id);
+ void sendGroupRoleChanges(const LLUUID& group_id);
+
+ static void sendCreateGroupRequest(const std::string& name,
+ const std::string& charter,
+ U8 show_in_list,
+ const LLUUID& insignia,
+ S32 membership_fee,
+ BOOL open_enrollment,
+ BOOL allow_publish,
+ BOOL mature_publish);
+
+ static void sendGroupMemberJoin(const LLUUID& group_id);
+ static void sendGroupMemberInvites(const LLUUID& group_id, std::map<LLUUID,LLUUID>& role_member_pairs);
+ static void sendGroupMemberEjects(const LLUUID& group_id,
+ uuid_vec_t& member_ids);
+
+ void sendGroupBanRequest(EBanRequestType request_type,
+ const LLUUID& group_id,
+ U32 ban_action = BAN_NO_ACTION,
+ const uuid_vec_t &ban_list = uuid_vec_t());
+
+
+ void sendCapGroupMembersRequest(const LLUUID& group_id);
+
+ void cancelGroupRoleChanges(const LLUUID& group_id);
+
+ static void processGroupPropertiesReply(LLMessageSystem* msg, void** data);
+ static void processGroupMembersReply(LLMessageSystem* msg, void** data);
+ static void processGroupRoleDataReply(LLMessageSystem* msg, void** data);
+ static void processGroupRoleMembersReply(LLMessageSystem* msg, void** data);
+ static void processGroupTitlesReply(LLMessageSystem* msg, void** data);
+ static void processCreateGroupReply(LLMessageSystem* msg, void** data);
+ static void processJoinGroupReply(LLMessageSystem* msg, void ** data);
+ static void processEjectGroupMemberReply(LLMessageSystem* msg, void ** data);
+ static void processLeaveGroupReply(LLMessageSystem* msg, void ** data);
+
+ static bool parseRoleActions(const std::string& xml_filename);
+
+ std::vector<LLRoleActionSet*> mRoleActionSets;
+
+ static void debugClearAllGroups(void*);
+ void clearGroups();
+ void clearGroupData(const LLUUID& group_id);
private:
void groupMembersRequestCoro(std::string url, LLUUID groupId);
@@ -444,26 +444,26 @@ private:
static void processGroupBanRequest(const LLSD& content);
- void notifyObservers(LLGroupChange gc);
- void notifyObserver(const LLUUID& group_id, LLGroupChange gc);
- void addGroup(LLGroupMgrGroupData* group_datap);
- LLGroupMgrGroupData* createGroupData(const LLUUID &id);
- bool hasPendingPropertyRequest(const LLUUID& id);
- void addPendingPropertyRequest(const LLUUID& id);
+ void notifyObservers(LLGroupChange gc);
+ void notifyObserver(const LLUUID& group_id, LLGroupChange gc);
+ void addGroup(LLGroupMgrGroupData* group_datap);
+ LLGroupMgrGroupData* createGroupData(const LLUUID &id);
+ bool hasPendingPropertyRequest(const LLUUID& id);
+ void addPendingPropertyRequest(const LLUUID& id);
- typedef std::multimap<LLUUID,LLGroupMgrObserver*> observer_multimap_t;
- observer_multimap_t mObservers;
+ typedef std::multimap<LLUUID,LLGroupMgrObserver*> observer_multimap_t;
+ observer_multimap_t mObservers;
- typedef std::map<LLUUID, LLGroupMgrGroupData*> group_map_t;
- group_map_t mGroups;
+ typedef std::map<LLUUID, LLGroupMgrGroupData*> group_map_t;
+ group_map_t mGroups;
- const U64MicrosecondsImplicit MIN_GROUP_PROPERTY_REQUEST_FREQ = 100000;//100ms between requests should be enough to avoid spamming.
- typedef std::map<LLUUID, U64MicrosecondsImplicit> properties_request_map_t;
- properties_request_map_t mPropRequests;
+ const U64MicrosecondsImplicit MIN_GROUP_PROPERTY_REQUEST_FREQ = 100000;//100ms between requests should be enough to avoid spamming.
+ typedef std::map<LLUUID, U64MicrosecondsImplicit> properties_request_map_t;
+ properties_request_map_t mPropRequests;
- typedef std::set<LLParticularGroupObserver*> observer_set_t;
- typedef std::map<LLUUID,observer_set_t> observer_map_t;
- observer_map_t mParticularObservers;
+ typedef std::set<LLParticularGroupObserver*> observer_set_t;
+ typedef std::map<LLUUID,observer_set_t> observer_map_t;
+ observer_map_t mParticularObservers;
bool mMemberRequestInFlight;
};