summaryrefslogtreecommitdiff
path: root/indra/newview/llestateinfomodel.h
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llestateinfomodel.h')
-rw-r--r--indra/newview/llestateinfomodel.h139
1 files changed, 47 insertions, 92 deletions
diff --git a/indra/newview/llestateinfomodel.h b/indra/newview/llestateinfomodel.h
index 2c89a85500..d6f00c573c 100644
--- a/indra/newview/llestateinfomodel.h
+++ b/indra/newview/llestateinfomodel.h
@@ -32,123 +32,78 @@ class LLMessageSystem;
#include "llsingleton.h"
#include "llcoros.h"
#include "lleventcoro.h"
-#include "lldispatcher.h"
-#include "llregionflags.h"
-class LLViewerRegion;
/**
* Contains estate info, notifies interested parties of its changes.
*/
class LLEstateInfoModel : public LLSingleton<LLEstateInfoModel>
{
- LLSINGLETON_C11(LLEstateInfoModel);
+ LLSINGLETON(LLEstateInfoModel);
LOG_CLASS(LLEstateInfoModel);
public:
- typedef std::vector<std::string> strings_t;
- typedef boost::signals2::signal<void()> update_signal_t;
- typedef boost::signals2::signal<void(U32)> update_flaged_signal_t;
- typedef boost::signals2::connection connection_t;
+ typedef boost::signals2::signal<void()> update_signal_t;
+ boost::signals2::connection setUpdateCallback(const update_signal_t::slot_type& cb); /// the model has been externally updated
+ boost::signals2::connection setCommitCallback(const update_signal_t::slot_type& cb); /// our changes have been applied
- connection_t setUpdateCallback(const update_signal_t::slot_type& cb); /// the model has been externally updated
- connection_t setUpdateAccessCallback(const update_flaged_signal_t::slot_type& cb);
- connection_t setUpdateExperienceCallback(const update_signal_t::slot_type& cb);
- connection_t setCommitCallback(const update_signal_t::slot_type& cb); /// our changes have been applied
-
- void setRegion(LLViewerRegion* region);
- void clearRegion();
- void sendEstateInfo(); /// send estate info to the simulator
+ void sendEstateInfo(); /// send estate info to the simulator
// getters
- bool getUseFixedSun() const { return getFlag(REGION_FLAGS_SUN_FIXED); }
- bool getIsExternallyVisible() const { return getFlag(REGION_FLAGS_EXTERNALLY_VISIBLE); }
- bool getAllowDirectTeleport() const { return getFlag(REGION_FLAGS_ALLOW_DIRECT_TELEPORT); }
- bool getDenyAnonymous() const { return getFlag(REGION_FLAGS_DENY_ANONYMOUS); }
- bool getDenyAgeUnverified() const { return getFlag(REGION_FLAGS_DENY_AGEUNVERIFIED); }
- bool getAllowVoiceChat() const { return getFlag(REGION_FLAGS_ALLOW_VOICE); }
- bool getAllowAccessOverride() const { return getFlag(REGION_FLAGS_ALLOW_ACCESS_OVERRIDE); }
- bool getAllowEnvironmentOverride() const { return getFlag(REGION_FLAGS_ALLOW_ENVIRONMENT_OVERRIDE); }
-
- const std::string& getName() const { return mName; }
- const LLUUID& getOwnerID() const { return mOwnerID; }
- U32 getID() const { return mID; }
- F32 getSunHour() const { return getUseFixedSun() ? mSunHour : 0.f; }
+ bool getUseFixedSun() const;
+ bool getIsExternallyVisible() const;
+ bool getAllowDirectTeleport() const;
+ bool getDenyAnonymous() const;
+ bool getDenyAgeUnverified() const;
+ bool getAllowVoiceChat() const;
+ bool getAllowAccessOverride() const;
+ bool getAllowEnvironmentOverride() const;
+
+ const std::string& getName() const { return mName; }
+ const LLUUID& getOwnerID() const { return mOwnerID; }
+ U32 getID() const { return mID; }
+ F32 getSunHour() const { return getUseFixedSun() ? mSunHour : 0.f; }
// setters
- void setUseFixedSun(bool val) { setFlag(REGION_FLAGS_SUN_FIXED, val); }
- void setIsExternallyVisible(bool val) { setFlag(REGION_FLAGS_EXTERNALLY_VISIBLE, val); }
- void setAllowDirectTeleport(bool val) { setFlag(REGION_FLAGS_ALLOW_DIRECT_TELEPORT, val); }
- void setDenyAnonymous(bool val) { setFlag(REGION_FLAGS_DENY_ANONYMOUS, val); }
- void setDenyAgeUnverified(bool val) { setFlag(REGION_FLAGS_DENY_AGEUNVERIFIED, val); }
- void setAllowVoiceChat(bool val) { setFlag(REGION_FLAGS_ALLOW_VOICE, val); }
- void setAllowAccessOverride(bool val) { setFlag(REGION_FLAGS_ALLOW_ACCESS_OVERRIDE, val); }
- void setAllowEnvironmentOverride(bool val) { setFlag(REGION_FLAGS_ALLOW_ENVIRONMENT_OVERRIDE, val); }
-
- void setSunHour(F32 sun_hour) { mSunHour = sun_hour; }
-
- const uuid_set_t & getAllowedAgents() const { return mAllowedAgents; }
- const uuid_set_t & getAllowedGroups() const { return mAllowedGroups; }
- const uuid_set_t & getBannedAgents() const { return mBannedAgents; }
- const uuid_set_t & getEstateManagers() const { return mEstateManagers; }
-
- const uuid_set_t & getAllowedExperiences() const { return mExperienceAllowed; }
- const uuid_set_t & getTrustedExperiences() const { return mExperienceTrusted; }
- const uuid_set_t & getBlockedExperiences() const { return mExperienceBlocked; }
-
- void sendEstateOwnerMessage(const std::string& request, const strings_t& strings);
-
- //---------------------------------------------------------------------
- /// refresh model with data from the incoming server message
- void updateEstateInfo(const strings_t& strings);
- void updateAccessInfo(const strings_t& strings);
- void updateExperienceInfo(const strings_t& strings);
+ void setUseFixedSun(bool val);
+ void setIsExternallyVisible(bool val);
+ void setAllowDirectTeleport(bool val);
+ void setDenyAnonymous(bool val);
+ void setDenyAgeUnverified(bool val);
+ void setAllowVoiceChat(bool val);
+ void setAllowAccessOverride(bool val);
+ void setAllowEnvironmentOverride(bool val);
- const LLUUID & getLastInvoice() { return mRequestInvoice; }
- const LLUUID & nextInvoice() { mRequestInvoice.generate(); return mRequestInvoice; }
+ void setSunHour(F32 sun_hour) { mSunHour = sun_hour; }
protected:
+ typedef std::vector<std::string> strings_t;
- void notifyCommit();
+ friend class LLDispatchEstateUpdateInfo;
- virtual void initSingleton() override;
+ /// refresh model with data from the incoming server message
+ void update(const strings_t& strings);
+
+ void notifyCommit();
private:
- bool commitEstateInfoCaps();
- void commitEstateInfoDataserver();
- inline bool getFlag(U64 flag) const;
- inline void setFlag(U64 flag, bool val);
- U64 getFlags() const { return mFlags; }
- std::string getInfoDump();
+ bool commitEstateInfoCaps();
+ void commitEstateInfoDataserver();
+ inline bool getFlag(U64 flag) const;
+ inline void setFlag(U64 flag, bool val);
+ U64 getFlags() const { return mFlags; }
+ std::string getInfoDump();
// estate info
- std::string mName; /// estate name
- LLUUID mOwnerID; /// estate owner id
- U32 mID; /// estate id
- U64 mFlags; /// estate flags
- F32 mSunHour; /// estate sun hour
-
- uuid_set_t mAllowedAgents;
- uuid_set_t mAllowedGroups;
- uuid_set_t mBannedAgents;
- uuid_set_t mEstateManagers;
-
- uuid_set_t mExperienceAllowed;
- uuid_set_t mExperienceTrusted;
- uuid_set_t mExperienceBlocked;
-
- update_signal_t mUpdateSignal; /// emitted when we receive update from sim
- update_flaged_signal_t mUpdateAccess;
- update_signal_t mUpdateExperience;
- update_signal_t mCommitSignal; /// emitted when our update gets applied to sim
-
- LLDispatcher mDispatch;
- LLUUID mRequestInvoice;
- LLViewerRegion* mRegion;
-
- void commitEstateInfoCapsCoro(std::string url);
+ std::string mName; /// estate name
+ LLUUID mOwnerID; /// estate owner id
+ U32 mID; /// estate id
+ U64 mFlags; /// estate flags
+ F32 mSunHour; /// estate sun hour
- static void processEstateOwnerRequest(LLMessageSystem* msg, void**);
+ update_signal_t mUpdateSignal; /// emitted when we receive update from sim
+ update_signal_t mCommitSignal; /// emitted when our update gets applied to sim
+ void commitEstateInfoCapsCoro(std::string url);
};
inline bool LLEstateInfoModel::getFlag(U64 flag) const