summaryrefslogtreecommitdiff
path: root/indra/newview/llscripteditorws.h
diff options
context:
space:
mode:
authorRider Linden <rider@lindenlab.com>2026-08-05 17:15:43 -0700
committerRider Linden <rider@lindenlab.com>2026-08-05 17:15:43 -0700
commitebf9cd31d789c0556d741987e95a961edd2955d0 (patch)
treeb39a67434822dbea7bea6b6ea69117e768db7943 /indra/newview/llscripteditorws.h
parentf6fa702706aeba8c5a3760a98883943cba3c973b (diff)
Move object publishing tracking to its own manager in the viewer.
Diffstat (limited to 'indra/newview/llscripteditorws.h')
-rw-r--r--indra/newview/llscripteditorws.h39
1 files changed, 3 insertions, 36 deletions
diff --git a/indra/newview/llscripteditorws.h b/indra/newview/llscripteditorws.h
index 69c7e1a8e1..475a8049ee 100644
--- a/indra/newview/llscripteditorws.h
+++ b/indra/newview/llscripteditorws.h
@@ -27,6 +27,7 @@
#pragma once
#include "lljsonrpcws.h"
+#include "llpublishedobjectmgr.h"
#include "llsd.h"
#include "lluuid.h"
#include "llhandle.h"
@@ -45,7 +46,6 @@ class LLScriptEdContainer;
class LLScriptEditorWSServer;
class LLChat;
class LLPanel;
-class LLPublishedPrimListener;
class LLViewerObject;
class LLInventoryItem;
@@ -207,7 +207,7 @@ public:
bool isObjectPublished(const LLUUID& object_id) const;
void onPrimInventoryReady(const LLUUID& object_id, const LLUUID& prim_id);
void onPrimInventoryChanged(const LLUUID& object_id, const LLUUID& prim_id);
- void onObjectPropertyChanged(const LLUUID& prim_id, const std::string& name, const std::string& desc);
+ void onObjectPropertyChanged(const LLUUID& prim_id, const std::string& name, const std::string& desc, S16 inventory_serial = -1);
void onLinksetChildAdded(const LLUUID& root_id, LLViewerObject* child);
void onLinksetChildRemoved(const LLUUID& root_id, const LLUUID& child_id);
@@ -242,7 +242,6 @@ protected:
LLSD handleObjectScriptReset(U32 connection_id, const LLSD& params);
LLSD handleObjectModify(U32 connection_id, const LLSD& params);
LLSD handleObjectItemModify(U32 connection_id, const LLSD& params);
- LLSD buildPublishedObjectLLSD(LLViewerObject* root) const;
struct ValidatedItem
{
@@ -255,10 +254,8 @@ protected:
// --- Object Content Publishing (helpers) ---
static std::string getPrimName(LLViewerObject* obj);
- LLSD buildPrimInventoryLLSD(LLViewerObject* object) const;
void notifyConnection(U32 connection_id, const std::string& method, const LLSD& params) const;
void notifyAll(const std::string& method, const LLSD& params) const;
- void cleanupPrimListeners(const LLUUID& object_id);
void buildAndSendPublish(const LLUUID& object_id);
void scheduleLinksetFlush(const LLUUID& root_id, F32 delay);
void cancelLinksetFlushTimer(const LLUUID& root_id);
@@ -303,32 +300,6 @@ private:
};
using subscriptions_t = std::unordered_map<std::string, EditorSubscription>;
- struct PublishedPrimInfo
- {
- LLUUID mPrimID;
- std::string mPrimName;
- S32 mLinkNumber; // 1=root, >=2=child
- S16 mInventorySerial; // last-seen serial for change detection (Phase 4)
- };
-
- struct PublishedObjectInfo
- {
- LLUUID mObjectID; // root prim UUID
- LLUUID mOwnerID;
- std::string mObjectName;
- std::string mObjectDescription;
- std::string mRegionName;
- std::vector<PublishedPrimInfo> mPrims; // root + all children
- std::vector<std::unique_ptr<LLPublishedPrimListener>> mListeners;
- };
-
- struct PendingPublish
- {
- LLUUID mObjectID;
- std::set<LLUUID> mPendingPrims; // prims whose inventory we're still waiting for
- std::vector<std::unique_ptr<LLPublishedPrimListener>> mListeners; // listeners for pending prims
- };
-
SubscriptionError updateScriptSubscription(const std::string &script_id, U32 connection_id);
void unsubscribeConnection(U32 connection_id);
@@ -340,11 +311,7 @@ private:
std::unordered_map<U32, S32> mConnectionSubscriptionCounts;
std::map<U32, LLScriptEditorWSConnection::wptr_t> mActiveConnections;
- std::map<LLUUID, PublishedObjectInfo> mPublishedObjects; // keyed by root object_id
- std::map<LLUUID, PendingPublish> mPendingPublishes; // keyed by root object_id
- std::map<LLUUID, std::string> mPendingItemCreates; // prim_id -> pump name awaiting inventory update
- std::map<LLUUID, std::set<LLUUID>> mNewChildPrims; // root_id → children awaiting first inventory response
- std::map<LLUUID, std::weak_ptr<LLEventTimer>> mLinksetFlushTimers; // root_id → pending coalesce timer
+ mutable LLPublishedObjectMgr mPublishedObjectManager;
boost::signals2::connection mLanguageChangeSignal;
LLUUID mLastSyntaxId;