While no functionality is directly impacted by this, using update_base instead of the add change type is, to say the least, unexpected. I think this decision stems from the add change type not being used anywhere else for scenes and projects (as new scenes/projects are de-facto notified by the OpenScene/OpenProject events... and are not really saved on the server side until a client invokes SaveScene/SaveProject RPC).
As this is a breaking change for the API, these would be the related modifications for C# client libraries:
- Communication library - Arcor2Client.cs (lines: 844)):
Define and invoke a new SceneAdded event on the right change type of the SceneChanged event message.
- ClientServices library - Arcor2Session.cs (lines: 747, 892)):
Set up registration, unregistration, and logic for the new SceneAdded event. This event will just add a new scene, similar to the old SceneBaseUpdate, except it doesn't need to check for the non-existence of the scene (e.g., to recognize duplicate x rename for existing). The SceneBaseUpdate event logic can be marked and left intact for compatibility.
While no functionality is directly impacted by this, using
update_baseinstead of theaddchange type is, to say the least, unexpected. I think this decision stems from theaddchange type not being used anywhere else for scenes and projects (as new scenes/projects are de-facto notified by the OpenScene/OpenProject events... and are not really saved on the server side until a client invokes SaveScene/SaveProject RPC).As this is a breaking change for the API, these would be the related modifications for C# client libraries:
Define and invoke a new
SceneAddedevent on the right change type of theSceneChangedevent message.Set up registration, unregistration, and logic for the new
SceneAddedevent. This event will just add a new scene, similar to the oldSceneBaseUpdate, except it doesn't need to check for the non-existence of the scene (e.g., to recognize duplicate x rename for existing). TheSceneBaseUpdateevent logic can be marked and left intact for compatibility.