From 10f0c244ffd97a1be9cc1bc78571dd2dba1bcfde Mon Sep 17 00:00:00 2001 From: JR-Morgan <45512892+JR-Morgan@users.noreply.github.com> Date: Wed, 18 May 2022 01:00:02 +0100 Subject: [PATCH] Re-added commit creation when sending. Also replaced ParallelExtensionsExtras.dll with source file for cross platform building --- .../ConverterUnity.Geometry.cs | 2 - .../ConverterUnity.cs | 9 +- .../CoordinationDataStructures.meta | 8 + .../ObservableConcurrentDictionary.cs | 199 ++++++++++++++++++ .../ObservableConcurrentDictionary.cs.meta | 11 + .../ParallelExtensionsExtras.asmdef | 14 ++ .../ParallelExtensionsExtras.asmdef.meta | 7 + .../ParallelExtensionsExtras.dll | Bin 164864 -> 0 bytes .../ParallelExtensionsExtras.dll.meta | 33 --- .../systems.speckle.speckle-unity/Sender.cs | 41 +++- .../Speckle.Connector.asmdef | 3 +- ProjectSettings/UnityConnectSettings.asset | 1 + 12 files changed, 274 insertions(+), 54 deletions(-) create mode 100644 Packages/systems.speckle.speckle-unity/Parallel Extensions/CoordinationDataStructures.meta create mode 100644 Packages/systems.speckle.speckle-unity/Parallel Extensions/CoordinationDataStructures/ObservableConcurrentDictionary.cs create mode 100644 Packages/systems.speckle.speckle-unity/Parallel Extensions/CoordinationDataStructures/ObservableConcurrentDictionary.cs.meta create mode 100644 Packages/systems.speckle.speckle-unity/Parallel Extensions/ParallelExtensionsExtras.asmdef create mode 100644 Packages/systems.speckle.speckle-unity/Parallel Extensions/ParallelExtensionsExtras.asmdef.meta delete mode 100644 Packages/systems.speckle.speckle-unity/Parallel Extensions/ParallelExtensionsExtras.dll delete mode 100644 Packages/systems.speckle.speckle-unity/Parallel Extensions/ParallelExtensionsExtras.dll.meta diff --git a/Packages/systems.speckle.speckle-unity/ConverterUnity.Geometry.cs b/Packages/systems.speckle.speckle-unity/ConverterUnity.Geometry.cs index 660ffa7..fe3c431 100644 --- a/Packages/systems.speckle.speckle-unity/ConverterUnity.Geometry.cs +++ b/Packages/systems.speckle.speckle-unity/ConverterUnity.Geometry.cs @@ -256,7 +256,6 @@ namespace Objects.Converter.Unity /// /// The element from which properties should be grabbed from /// Collection of es that shall be converted - /// If provided, will override the properties on the mesh itself /// A with the converted , , and public GameObject MeshesToNative(Base element, IReadOnlyCollection meshes) { @@ -292,7 +291,6 @@ namespace Objects.Converter.Unity /// Converts to a with a /// /// Mesh to convert - /// If provided, will override the properties on the mesh itself /// public GameObject MeshToNative(Mesh speckleMesh) { diff --git a/Packages/systems.speckle.speckle-unity/ConverterUnity.cs b/Packages/systems.speckle.speckle-unity/ConverterUnity.cs index 98fed72..6b2bcad 100644 --- a/Packages/systems.speckle.speckle-unity/ConverterUnity.cs +++ b/Packages/systems.speckle.speckle-unity/ConverterUnity.cs @@ -1,15 +1,8 @@ -using Objects.Geometry; -using Speckle.Core.Kits; +using Speckle.Core.Kits; using Speckle.Core.Models; using System; -using System.Collections; using System.Collections.Generic; using System.Linq; -using System.Text; -using System.Threading.Tasks; -using JetBrains.Annotations; -using Objects.BuiltElements; -using Unity.Plastic.Antlr3.Runtime.Debug; using UnityEngine; using Mesh = Objects.Geometry.Mesh; diff --git a/Packages/systems.speckle.speckle-unity/Parallel Extensions/CoordinationDataStructures.meta b/Packages/systems.speckle.speckle-unity/Parallel Extensions/CoordinationDataStructures.meta new file mode 100644 index 0000000..60e4270 --- /dev/null +++ b/Packages/systems.speckle.speckle-unity/Parallel Extensions/CoordinationDataStructures.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6f8fe4d403d6524498fe19d6a1f1e136 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/systems.speckle.speckle-unity/Parallel Extensions/CoordinationDataStructures/ObservableConcurrentDictionary.cs b/Packages/systems.speckle.speckle-unity/Parallel Extensions/CoordinationDataStructures/ObservableConcurrentDictionary.cs new file mode 100644 index 0000000..916a3b2 --- /dev/null +++ b/Packages/systems.speckle.speckle-unity/Parallel Extensions/CoordinationDataStructures/ObservableConcurrentDictionary.cs @@ -0,0 +1,199 @@ +//-------------------------------------------------------------------------- +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// +// File: ObservableConcurrentDictionary.cs +// +//-------------------------------------------------------------------------- + +using System.Collections.Generic; +using System.Collections.Specialized; +using System.ComponentModel; +using System.Threading; +using System.Diagnostics; + +namespace System.Collections.Concurrent +{ + /// + /// Provides a thread-safe dictionary for use with data binding. + /// + /// Specifies the type of the keys in this collection. + /// Specifies the type of the values in this collection. + [DebuggerDisplay("Count={Count}")] + public class ObservableConcurrentDictionary : + ICollection>, IDictionary, + INotifyCollectionChanged, INotifyPropertyChanged + { + private readonly SynchronizationContext _context; + private readonly ConcurrentDictionary _dictionary; + + /// + /// Initializes an instance of the ObservableConcurrentDictionary class. + /// + public ObservableConcurrentDictionary() + { + _context = AsyncOperationManager.SynchronizationContext; + _dictionary = new ConcurrentDictionary(); + } + + /// Event raised when the collection changes. + public event NotifyCollectionChangedEventHandler CollectionChanged; + /// Event raised when a property on the collection changes. + public event PropertyChangedEventHandler PropertyChanged; + + /// + /// Notifies observers of CollectionChanged or PropertyChanged of an update to the dictionary. + /// + private void NotifyObserversOfChange() + { + var collectionHandler = CollectionChanged; + var propertyHandler = PropertyChanged; + if (collectionHandler != null || propertyHandler != null) + { + _context.Post(s => + { + if (collectionHandler != null) + { + collectionHandler(this, new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset)); + } + if (propertyHandler != null) + { + propertyHandler(this, new PropertyChangedEventArgs("Count")); + propertyHandler(this, new PropertyChangedEventArgs("Keys")); + propertyHandler(this, new PropertyChangedEventArgs("Values")); + } + }, null); + } + } + + /// Attempts to add an item to the dictionary, notifying observers of any changes. + /// The item to be added. + /// Whether the add was successful. + private bool TryAddWithNotification(KeyValuePair item) + { + return TryAddWithNotification(item.Key, item.Value); + } + + /// Attempts to add an item to the dictionary, notifying observers of any changes. + /// The key of the item to be added. + /// The value of the item to be added. + /// Whether the add was successful. + private bool TryAddWithNotification(TKey key, TValue value) + { + bool result = _dictionary.TryAdd(key, value); + if (result) NotifyObserversOfChange(); + return result; + } + + /// Attempts to remove an item from the dictionary, notifying observers of any changes. + /// The key of the item to be removed. + /// The value of the item removed. + /// Whether the removal was successful. + private bool TryRemoveWithNotification(TKey key, out TValue value) + { + bool result = _dictionary.TryRemove(key, out value); + if (result) NotifyObserversOfChange(); + return result; + } + + /// Attempts to add or update an item in the dictionary, notifying observers of any changes. + /// The key of the item to be updated. + /// The new value to set for the item. + /// Whether the update was successful. + private void UpdateWithNotification(TKey key, TValue value) + { + _dictionary[key] = value; + NotifyObserversOfChange(); + } + + #region ICollection> Members + void ICollection>.Add(KeyValuePair item) + { + TryAddWithNotification(item); + } + + void ICollection>.Clear() + { + ((ICollection>)_dictionary).Clear(); + NotifyObserversOfChange(); + } + + bool ICollection>.Contains(KeyValuePair item) + { + return ((ICollection>)_dictionary).Contains(item); + } + + void ICollection>.CopyTo(KeyValuePair[] array, int arrayIndex) + { + ((ICollection>)_dictionary).CopyTo(array, arrayIndex); + } + + int ICollection>.Count + { + get { return ((ICollection>)_dictionary).Count; } + } + + bool ICollection>.IsReadOnly + { + get { return ((ICollection>)_dictionary).IsReadOnly; } + } + + bool ICollection>.Remove(KeyValuePair item) + { + TValue temp; + return TryRemoveWithNotification(item.Key, out temp); + } + #endregion + + #region IEnumerable> Members + IEnumerator> IEnumerable>.GetEnumerator() + { + return ((ICollection>)_dictionary).GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return ((ICollection>)_dictionary).GetEnumerator(); + } + #endregion + + #region IDictionary Members + public void Add(TKey key, TValue value) + { + TryAddWithNotification(key, value); + } + + public bool ContainsKey(TKey key) + { + return _dictionary.ContainsKey(key); + } + + public ICollection Keys + { + get { return _dictionary.Keys; } + } + + public bool Remove(TKey key) + { + TValue temp; + return TryRemoveWithNotification(key, out temp); + } + + public bool TryGetValue(TKey key, out TValue value) + { + return _dictionary.TryGetValue(key, out value); + } + + public ICollection Values + { + get { return _dictionary.Values; } + } + + public TValue this[TKey key] + { + get { return _dictionary[key]; } + set { UpdateWithNotification(key, value); } + } + #endregion + } +} \ No newline at end of file diff --git a/Packages/systems.speckle.speckle-unity/Parallel Extensions/CoordinationDataStructures/ObservableConcurrentDictionary.cs.meta b/Packages/systems.speckle.speckle-unity/Parallel Extensions/CoordinationDataStructures/ObservableConcurrentDictionary.cs.meta new file mode 100644 index 0000000..f19d5e1 --- /dev/null +++ b/Packages/systems.speckle.speckle-unity/Parallel Extensions/CoordinationDataStructures/ObservableConcurrentDictionary.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fbc4646478df067419b8bc7844c0ebfd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/systems.speckle.speckle-unity/Parallel Extensions/ParallelExtensionsExtras.asmdef b/Packages/systems.speckle.speckle-unity/Parallel Extensions/ParallelExtensionsExtras.asmdef new file mode 100644 index 0000000..fe2b472 --- /dev/null +++ b/Packages/systems.speckle.speckle-unity/Parallel Extensions/ParallelExtensionsExtras.asmdef @@ -0,0 +1,14 @@ +{ + "name": "Speckle.ParallelExtensionsExtras", + "rootNamespace": "", + "references": [], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": true +} \ No newline at end of file diff --git a/Packages/systems.speckle.speckle-unity/Parallel Extensions/ParallelExtensionsExtras.asmdef.meta b/Packages/systems.speckle.speckle-unity/Parallel Extensions/ParallelExtensionsExtras.asmdef.meta new file mode 100644 index 0000000..ef33381 --- /dev/null +++ b/Packages/systems.speckle.speckle-unity/Parallel Extensions/ParallelExtensionsExtras.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 24f666972ea7e9149abddaae766b9c1d +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/systems.speckle.speckle-unity/Parallel Extensions/ParallelExtensionsExtras.dll b/Packages/systems.speckle.speckle-unity/Parallel Extensions/ParallelExtensionsExtras.dll deleted file mode 100644 index ca5a3ab44368784fa02131ba91ec229e1fcd6db7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 164864 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 /// Converts and sends the data of the last commit on the Stream /// /// ID of the stream to send to /// List of gameObjects to convert and send /// Account to use. If not provided the default account will be used + /// Name of branch to send to + /// When true, will create a commit using the root object /// Action to run after the data has been sent /// Action to run when there is download/conversion progress /// Action to run on error /// - public void Send(string streamId, List gameObjects, Account account = null, + public void Send(string streamId, + List gameObjects, + Account account = null, + string branchName = "main", + bool createCommit = true, Action onDataSentAction = null, Action> onProgressAction = null, Action onErrorAction = null) @@ -45,21 +51,36 @@ namespace Speckle.ConnectorUnity try { var data = ConvertRecursivelyToSpeckle(gameObjects); - - trasnport = new ServerTransport(account ?? AccountManager.GetDefaultAccount() , streamId); - + var client = new Client(account ?? AccountManager.GetDefaultAccount()); + transport = new ServerTransport(client.Account, streamId); + Task.Run(async () => { var res = await Operations.Send( data, - new List() { trasnport }, + new List() { transport }, useDefaultCache: true, disposeTransports: true, - onProgressAction: onProgressAction, + onProgressAction: onProgressAction, onErrorAction: onErrorAction ); - trasnport?.Dispose(); + Analytics.TrackEvent(client.Account, Analytics.Events.Send); + + if (createCommit) + { + await client.CommitCreate( + new CommitCreateInput + { + streamId = streamId, + branchName = branchName, + objectId = res, + message = "No message", + sourceApplication = VersionedHostApplications.Unity, + }); + } + + transport?.Dispose(); onDataSentAction?.Invoke(res); }); } @@ -71,7 +92,7 @@ namespace Speckle.ConnectorUnity private void OnDestroy() { - trasnport?.Dispose(); + transport?.Dispose(); } #region private methods diff --git a/Packages/systems.speckle.speckle-unity/Speckle.Connector.asmdef b/Packages/systems.speckle.speckle-unity/Speckle.Connector.asmdef index 5c4ca72..9918e17 100644 --- a/Packages/systems.speckle.speckle-unity/Speckle.Connector.asmdef +++ b/Packages/systems.speckle.speckle-unity/Speckle.Connector.asmdef @@ -1,3 +1,4 @@ { - "name": "Speckle.Connector" + "name": "Speckle.Connector", + "references":[ "GUID:24f666972ea7e9149abddaae766b9c1d" ] } diff --git a/ProjectSettings/UnityConnectSettings.asset b/ProjectSettings/UnityConnectSettings.asset index fa0b146..6125b30 100644 --- a/ProjectSettings/UnityConnectSettings.asset +++ b/ProjectSettings/UnityConnectSettings.asset @@ -9,6 +9,7 @@ UnityConnectSettings: m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events m_EventUrl: https://cdp.cloud.unity3d.com/v1/events m_ConfigUrl: https://config.uca.cloud.unity3d.com + m_DashboardUrl: https://dashboard.unity3d.com m_TestInitMode: 0 CrashReportingSettings: m_EventUrl: https://perf-events.cloud.unity3d.com