diff --git a/SpeckleConnector/Connector/Interface/Browser/Bridge/Send/Arg/SendObject.h b/SpeckleConnector/Connector/Interface/Browser/Bridge/Send/Arg/SendObject.h index 86d6ea8..662b2e3 100644 --- a/SpeckleConnector/Connector/Interface/Browser/Bridge/Send/Arg/SendObject.h +++ b/SpeckleConnector/Connector/Interface/Browser/Bridge/Send/Arg/SendObject.h @@ -48,6 +48,11 @@ namespace connector::interfac::browser::bridge { @param management The management to use */ void useManagement(active::serialise::Management* management) const override { m_object->useManagement(management); } + /*! + Get the cargo management + @return The active management + */ + active::serialise::Management* management() const override { return m_object->management(); } private: ///The object to send diff --git a/SpeckleConnector/Connector/Interface/Browser/Bridge/Send/Arg/SendViaBrowserArgs.h b/SpeckleConnector/Connector/Interface/Browser/Bridge/Send/Arg/SendViaBrowserArgs.h index b2b2347..71cef33 100644 --- a/SpeckleConnector/Connector/Interface/Browser/Bridge/Send/Arg/SendViaBrowserArgs.h +++ b/SpeckleConnector/Connector/Interface/Browser/Bridge/Send/Arg/SendViaBrowserArgs.h @@ -77,6 +77,11 @@ namespace connector::interfac::browser::bridge { @param management The management to use */ void useManagement(active::serialise::Management* management) const override { sendObject.useManagement(management); } + /*! + Get the cargo management + @return The active management + */ + active::serialise::Management* management() const override { return sendObject.management(); } }; } diff --git a/SpeckleConnector/Connector/Record/Collection/ProjectCollection.cpp b/SpeckleConnector/Connector/Record/Collection/ProjectCollection.cpp index f491fe3..44ded4a 100644 --- a/SpeckleConnector/Connector/Record/Collection/ProjectCollection.cpp +++ b/SpeckleConnector/Connector/Record/Collection/ProjectCollection.cpp @@ -2,6 +2,7 @@ #include "Active/Serialise/CargoHold.h" #include "Active/Serialise/Item/Wrapper/ValueWrap.h" +#include "Active/Serialise/Management/Management.h" #include "Active/Serialise/Package/Wrapper/PackageWrap.h" #include "Connector/Connector.h" #include "Connector/ConnectorResource.h" @@ -47,8 +48,11 @@ namespace { project: The source project --------------------------------------------------------------------*/ -ProjectCollection::ProjectCollection(speckle::environment::Project::Shared project) : base{project->getInfo().name, project} { +ProjectCollection::ProjectCollection(speckle::environment::Project::Shared project) : base{project->getInfo().name, project}, + m_management{std::make_unique()} { + m_management->push_back(this); m_finishes = std::make_unique(); + base::useManagement(m_management.get()); } //ProjectCollection::ProjectCollection diff --git a/SpeckleConnector/Connector/Record/Collection/ProjectCollection.h b/SpeckleConnector/Connector/Record/Collection/ProjectCollection.h index ddf287a..7d2f2c6 100644 --- a/SpeckleConnector/Connector/Record/Collection/ProjectCollection.h +++ b/SpeckleConnector/Connector/Record/Collection/ProjectCollection.h @@ -6,6 +6,10 @@ #include +namespace active::serialise { + class Management; +} + namespace speckle::record::element { class Element; } @@ -94,6 +98,7 @@ namespace connector::record { private: using FinishProxies = std::unordered_map>; + std::unique_ptr m_management; ///Finish proxies accumulated from meshes generated from the collection elements FinishProxies m_finishProxies; #ifdef ARCHICAD