diff options
Diffstat (limited to 'indra/newview/llestateinfomodel.h')
-rw-r--r-- | indra/newview/llestateinfomodel.h | 139 |
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 |