diff options
Diffstat (limited to 'indra/llinventory')
-rw-r--r-- | indra/llinventory/CMakeLists.txt | 18 | ||||
-rw-r--r-- | indra/llinventory/lleconomy.cpp | 27 | ||||
-rw-r--r-- | indra/llinventory/lleconomy.h | 16 | ||||
-rw-r--r-- | indra/llinventory/llinventory.cpp | 3 | ||||
-rw-r--r-- | indra/llinventory/llinventorytype.cpp | 5 | ||||
-rw-r--r-- | indra/llinventory/llinventorytype.h | 3 | ||||
-rw-r--r-- | indra/llinventory/llparcel.cpp | 9 | ||||
-rw-r--r-- | indra/llinventory/llparcel.h | 5 |
8 files changed, 60 insertions, 26 deletions
diff --git a/indra/llinventory/CMakeLists.txt b/indra/llinventory/CMakeLists.txt index 35a764b111..e45c809e7e 100644 --- a/indra/llinventory/CMakeLists.txt +++ b/indra/llinventory/CMakeLists.txt @@ -62,14 +62,14 @@ add_library (llinventory ${llinventory_SOURCE_FILES}) #add unit tests if (LL_TESTS) - INCLUDE(LLAddBuildTest) - SET(llinventory_TEST_SOURCE_FILES - # no real unit tests yet! - ) - LL_ADD_PROJECT_UNIT_TESTS(llinventory "${llinventory_TEST_SOURCE_FILES}") + INCLUDE(LLAddBuildTest) + SET(llinventory_TEST_SOURCE_FILES + # no real unit tests yet! + ) + LL_ADD_PROJECT_UNIT_TESTS(llinventory "${llinventory_TEST_SOURCE_FILES}") - #set(TEST_DEBUG on) - set(test_libs llinventory ${LLMESSAGE_LIBRARIES} ${LLVFS_LIBRARIES} ${LLMATH_LIBRARIES} ${LLCOMMON_LIBRARIES} ${WINDOWS_LIBRARIES}) - LL_ADD_INTEGRATION_TEST(inventorymisc "" "${test_libs}") - LL_ADD_INTEGRATION_TEST(llparcel "" "${test_libs}") + #set(TEST_DEBUG on) + set(test_libs llinventory ${LLMESSAGE_LIBRARIES} ${LLVFS_LIBRARIES} ${LLMATH_LIBRARIES} ${LLCOMMON_LIBRARIES} ${WINDOWS_LIBRARIES}) + LL_ADD_INTEGRATION_TEST(inventorymisc "" "${test_libs}") + LL_ADD_INTEGRATION_TEST(llparcel "" "${test_libs}") endif (LL_TESTS) diff --git a/indra/llinventory/lleconomy.cpp b/indra/llinventory/lleconomy.cpp index c6eaa6d3e1..d643ea6ed9 100644 --- a/indra/llinventory/lleconomy.cpp +++ b/indra/llinventory/lleconomy.cpp @@ -48,6 +48,31 @@ LLGlobalEconomy::LLGlobalEconomy() LLGlobalEconomy::~LLGlobalEconomy() { } +void LLGlobalEconomy::addObserver(LLEconomyObserver* observer) +{ + mObservers.push_back(observer); +} + +void LLGlobalEconomy::removeObserver(LLEconomyObserver* observer) +{ + std::list<LLEconomyObserver*>::iterator it = + std::find(mObservers.begin(), mObservers.end(), observer); + if (it != mObservers.end()) + { + mObservers.erase(it); + } +} + +void LLGlobalEconomy::notifyObservers() +{ + for (std::list<LLEconomyObserver*>::iterator it = mObservers.begin(); + it != mObservers.end(); + ++it) + { + (*it)->onEconomyDataChange(); + } +} + // static void LLGlobalEconomy::processEconomyData(LLMessageSystem *msg, LLGlobalEconomy* econ_data) { @@ -88,6 +113,8 @@ void LLGlobalEconomy::processEconomyData(LLMessageSystem *msg, LLGlobalEconomy* econ_data->setTeleportPriceExponent(f); msg->getS32Fast(_PREHASH_Info, _PREHASH_PriceGroupCreate, i); econ_data->setPriceGroupCreate(i); + + econ_data->notifyObservers(); } S32 LLGlobalEconomy::calculateTeleportCost(F32 distance) const diff --git a/indra/llinventory/lleconomy.h b/indra/llinventory/lleconomy.h index cc6643f955..eb2ecf71ba 100644 --- a/indra/llinventory/lleconomy.h +++ b/indra/llinventory/lleconomy.h @@ -31,6 +31,16 @@ class LLMessageSystem; class LLVector3; +/** + * Register an observer to be notified of economy data updates coming from server. + */ +class LLEconomyObserver +{ +public: + virtual ~LLEconomyObserver() {} + virtual void onEconomyDataChange() = 0; +}; + class LLGlobalEconomy { public: @@ -46,6 +56,10 @@ public: virtual void print(); + void addObserver(LLEconomyObserver* observer); + void removeObserver(LLEconomyObserver* observer); + void notifyObservers(); + static void processEconomyData(LLMessageSystem *msg, LLGlobalEconomy* econ_data); S32 calculateTeleportCost(F32 distance) const; @@ -89,6 +103,8 @@ private: S32 mTeleportMinPrice; F32 mTeleportPriceExponent; S32 mPriceGroupCreate; + + std::list<LLEconomyObserver*> mObservers; }; diff --git a/indra/llinventory/llinventory.cpp b/indra/llinventory/llinventory.cpp index a3caf79519..76760aa414 100644 --- a/indra/llinventory/llinventory.cpp +++ b/indra/llinventory/llinventory.cpp @@ -1034,8 +1034,11 @@ void LLInventoryItem::asLLSD( LLSD& sd ) const sd[INV_CREATION_DATE_LABEL] = (S32) mCreationDate; } +LLFastTimer::DeclareTimer FTM_INVENTORY_SD_DESERIALIZE("Inventory SD Deserialize"); + bool LLInventoryItem::fromLLSD(const LLSD& sd) { + LLFastTimer _(FTM_INVENTORY_SD_DESERIALIZE); mInventoryType = LLInventoryType::IT_NONE; mAssetUUID.setNull(); std::string w; diff --git a/indra/llinventory/llinventorytype.cpp b/indra/llinventory/llinventorytype.cpp index d2bba21648..8282d79b67 100644 --- a/indra/llinventory/llinventorytype.cpp +++ b/indra/llinventory/llinventorytype.cpp @@ -84,6 +84,7 @@ LLInventoryDictionary::LLInventoryDictionary() addEntry(LLInventoryType::IT_ANIMATION, new InventoryEntry("animation", "animation", 1, LLAssetType::AT_ANIMATION)); addEntry(LLInventoryType::IT_GESTURE, new InventoryEntry("gesture", "gesture", 1, LLAssetType::AT_GESTURE)); addEntry(LLInventoryType::IT_MESH, new InventoryEntry("mesh", "mesh", 1, LLAssetType::AT_MESH)); + addEntry(LLInventoryType::IT_WIDGET, new InventoryEntry("widget", "widget", 1, LLAssetType::AT_WIDGET)); } @@ -134,7 +135,7 @@ DEFAULT_ASSET_FOR_INV_TYPE[LLAssetType::AT_COUNT] = LLInventoryType::IT_NONE, // 37 AT_NONE LLInventoryType::IT_NONE, // 38 AT_NONE LLInventoryType::IT_NONE, // 39 AT_NONE - LLInventoryType::IT_NONE, // 40 AT_NONE + LLInventoryType::IT_WIDGET, // 40 AT_WIDGET LLInventoryType::IT_NONE, // 41 AT_NONE LLInventoryType::IT_NONE, // 42 AT_NONE LLInventoryType::IT_NONE, // 43 AT_NONE @@ -143,7 +144,7 @@ DEFAULT_ASSET_FOR_INV_TYPE[LLAssetType::AT_COUNT] = LLInventoryType::IT_NONE, // 46 AT_NONE LLInventoryType::IT_NONE, // 47 AT_NONE LLInventoryType::IT_NONE, // 48 AT_NONE - LLInventoryType::IT_MESH // 49 AT_MESH + LLInventoryType::IT_MESH, // 49 AT_MESH }; // static diff --git a/indra/llinventory/llinventorytype.h b/indra/llinventory/llinventorytype.h index 1a24e351ad..4d1e0db040 100644 --- a/indra/llinventory/llinventorytype.h +++ b/indra/llinventory/llinventorytype.h @@ -62,7 +62,8 @@ public: IT_ANIMATION = 19, IT_GESTURE = 20, IT_MESH = 22, - IT_COUNT = 23, + IT_WIDGET = 23, + IT_COUNT = 24, IT_NONE = -1 }; diff --git a/indra/llinventory/llparcel.cpp b/indra/llinventory/llparcel.cpp index c95f922301..433076c7a9 100644 --- a/indra/llinventory/llparcel.cpp +++ b/indra/llinventory/llparcel.cpp @@ -1373,12 +1373,3 @@ LLParcel::ECategory category_ui_string_to_category(const std::string& s) // is a distinct option from "None" and "Other" return LLParcel::C_ANY; } - -void LLParcel::updateQuota( const LLUUID& objectId, const ParcelQuota& quota ) -{ - if ( mID == objectId ) - { - mQuota = quota; - } -} - diff --git a/indra/llinventory/llparcel.h b/indra/llinventory/llparcel.h index ff35caab4c..e36d0b20d2 100644 --- a/indra/llinventory/llparcel.h +++ b/indra/llinventory/llparcel.h @@ -34,7 +34,6 @@ #include "llpermissions.h" #include "lltimer.h" #include "v3math.h" -#include "llaccountingquota.h" // Grid out of which parcels taken is stepped every 4 meters. const F32 PARCEL_GRID_STEP_METERS = 4.f; @@ -603,9 +602,6 @@ public: BOOL getSellWithObjects() const { return (mParcelFlags & PF_SELL_PARCEL_OBJECTS) ? TRUE : FALSE; } - void updateQuota( const LLUUID& objectId, const ParcelQuota& quota ); - const ParcelQuota& getQuota( void ) { return mQuota; } - protected: LLUUID mID; LLUUID mOwnerID; @@ -681,7 +677,6 @@ protected: BOOL mAllowGroupAVSounds; BOOL mAllowAnyAVSounds; - ParcelQuota mQuota; public: // HACK, make private |