Scene Fusion 2 API Reference
sfSession.h
1 /*************************************************************************
2  *
3  * KINEMATICOUP CONFIDENTIAL
4  * __________________
5  *
6  * Copyright (2016-2021) KinematicSoup Technologies Incorporated
7  * All Rights Reserved.
8  *
9  * NOTICE: All information contained herein is, and remains
10  * the property of KinematicSoup Technologies Incorporated and its
11  * suppliers, if any. The intellectual and technical concepts contained
12  * herein are proprietary to KinematicSoup Technologies Incorporated
13  * and its suppliers and may be covered by Canadian and Foreign Patents,
14  * patents in process, and are protected by trade secret or copyright law.
15  * Dissemination of this information or reproduction of this material
16  * is strictly forbidden unless prior written permission is obtained
17  * from KinematicSoup Technologies Incorporated.
18  */
19 #pragma once
20 #include <string>
21 #include <memory>
22 #include <ksEvent.h>
23 #include <Exports.h>
24 #include "sfUser.h"
25 #include "sfObject.h"
26 #include "sfProperty.h"
27 #include "sfDictionaryProperty.h"
28 #include "sfListProperty.h"
29 #include "sfReferenceProperty.h"
30 
31 namespace KS {
32 namespace SceneFusion2 {
33 
37  class EXTERNAL sfSession :
38  public std::enable_shared_from_this<sfSession>
39  {
40  public:
41  typedef std::shared_ptr<sfSession> SPtr;
42 
49  typedef std::function<void(sfObject::SPtr objPtr, int childIndex)> CreateHandler;
50 
56  typedef std::function<void(sfObject::SPtr objPtr)> DeleteHandler;
57 
63  typedef std::function<void(sfObject::SPtr objPtr)> ConfirmDeleteHandler;
64 
70  typedef std::function<void(sfObject::SPtr objPtr)> LockHandler;
71 
77  typedef std::function<void(sfObject::SPtr objPtr)> UnlockHandler;
78 
84  typedef std::function<void(sfObject::SPtr objPtr)> LockOwnerChangeHandler;
85 
91  typedef std::function<void(sfObject::SPtr objPtr)> DirectLockChangeHandler;
92 
99  typedef std::function<void(sfDictionaryProperty::SPtr dictPtr, const sfName& key)> DictionaryRemoveHandler;
100 
107  typedef std::function<void(sfObject::SPtr objPtr, int childIndex)> ParentChangeHandler;
108 
114  typedef std::function<void(sfProperty::SPtr propertyPtr)> PropertyChangeHandler;
115 
123  typedef std::function<void(sfListProperty::SPtr listPtr, int index, int count)> ListAddHandler;
124 
132  typedef std::function<void(sfListProperty::SPtr listPtr, int index, int count)> ListRemoveHandler;
133 
139  typedef std::function<void(sfUser::SPtr userPtr)> UserJoinHandler;
140 
146  typedef std::function<void(sfUser::SPtr userPtr)> UserLeaveHandler;
147 
153  typedef std::function<void(sfUser::SPtr userPtr)> UserColorChangeHandler;
154 
161  typedef std::function<void(bool, sfObject::SPtr objPtr)> AcknowledgeSubscriptionHandler;
162 
168  typedef ksEvent<sfObject::SPtr&>::SPtr ObjectEventHandle;
169 
176  typedef ksEvent<sfObject::SPtr&, int&>::SPtr ObjectIndexEventHandle;
177 
183  typedef ksEvent<sfUser::SPtr&>::SPtr UserEventHandle;
184 
190  typedef ksEvent<sfProperty::SPtr&>::SPtr PropertyEventHandle;
191 
199  typedef ksEvent<sfListProperty::SPtr&, int&, int&>::SPtr ListPropertyEventHandle;
200 
207  typedef ksEvent<sfDictionaryProperty::SPtr&, sfName&>::SPtr DictionaryPropertyEventHandle;
208 
215  typedef ksEvent<bool&, sfObject::SPtr&>::SPtr AcknowledgeSubscriptionEventHandle;
216 
220  virtual ~sfSession() {}
221 
231 
238 
248 
254  virtual void UnregisterOnDeleteHandler(ObjectEventHandle eventPtr) = 0;
255 
264 
271 
280 
286  virtual void UnregisterOnLockHandler(ObjectEventHandle eventPtr) = 0;
287 
296 
302  virtual void UnregisterOnUnlockHandler(ObjectEventHandle eventPtr) = 0;
303 
313 
320 
328 
335 
345 
352 
361 
368 
378 
385 
394 
401 
411 
418 
427 
433  virtual void UnregisterOnUserJoinHandler(UserEventHandle eventPtr) = 0;
434 
443 
449  virtual void UnregisterOnUserLeaveHandler(UserEventHandle eventPtr) = 0;
450 
458 
465 
474  AcknowledgeSubscriptionHandler handler) = 0;
475 
482 
488  virtual bool IsConnected() const = 0;
489 
495  virtual sfUser::SPtr LocalUser() const = 0;
496 
502  virtual uint32_t LocalUserId() = 0;
503 
510  virtual bool EditsDisabled() const = 0;
511 
517  virtual size_t NumObjects() const = 0;
518 
525  virtual sfObject::SPtr GetObject(uint32_t id) const = 0;
526 
532  virtual const std::list<sfObject::SPtr>& GetRootObjects() const = 0;
533 
540  virtual sfUser::SPtr GetUser(uint32_t id) const = 0;
541 
547  virtual const std::list<sfUser::SPtr>& GetUsers() const = 0;
548 
555  virtual uint32_t GetObjectCount(const sfName& type) const = 0;
556 
563  virtual uint32_t GetObjectLimit(const sfName& type) const = 0;
564 
572  virtual std::vector<sfReferenceProperty::SPtr> GetReferences(
573  sfObject::SPtr objPtr) const = 0;
574 
581  virtual void Create(sfObject::SPtr objPtr) = 0;
582 
592  virtual void Create(sfObject::SPtr objPtr, sfObject::SPtr parentPtr, int childIndex) = 0;
593 
601  virtual void Create(std::list<sfObject::SPtr>& objectList) = 0;
602 
612  virtual void Create(std::list<sfObject::SPtr>& objectList, sfObject::SPtr parentPtr, int childIndex) = 0;
613 
619  virtual void Delete(sfObject::SPtr objPtr) = 0;
620 
628  virtual uint32_t GetStringTableId(const sfName& str) = 0;
629 
637  virtual sfName GetStringFromTable(uint32_t id) = 0;
638 
646  virtual sfName TryGetStringFromTable(uint32_t id) = 0;
647 
655  virtual void SetUserColor(float r, float g, float b) = 0;
656 
662  virtual void SubscribeToChildren(sfObject::SPtr objPtr) = 0;
663 
669  virtual void UnsubscribeFromChildren(sfObject::SPtr objPtr) = 0;
670  };
671 } // SceneFusion2
672 } // KS
Definition: sfName.h:33
Definition: sfSession.h:39
std::function< void(sfProperty::SPtr propertyPtr)> PropertyChangeHandler
Definition: sfSession.h:114
virtual ObjectEventHandle RegisterOnLockHandler(LockHandler handler)=0
std::function< void(sfListProperty::SPtr listPtr, int index, int count)> ListAddHandler
Definition: sfSession.h:123
virtual void UnregisterOnUserLeaveHandler(UserEventHandle eventPtr)=0
std::function< void(sfObject::SPtr objPtr)> LockOwnerChangeHandler
Definition: sfSession.h:84
std::function< void(sfObject::SPtr objPtr, int childIndex)> ParentChangeHandler
Definition: sfSession.h:107
std::function< void(sfListProperty::SPtr listPtr, int index, int count)> ListRemoveHandler
Definition: sfSession.h:132
virtual uint32_t GetObjectCount(const sfName &type) const =0
virtual ObjectIndexEventHandle RegisterOnParentChangeHandler(ParentChangeHandler handler)=0
virtual void UnregisterOnAcknowledgeSubscriptionHandler(AcknowledgeSubscriptionEventHandle eventPtr)=0
virtual void SubscribeToChildren(sfObject::SPtr objPtr)=0
virtual sfUser::SPtr LocalUser() const =0
ksEvent< sfListProperty::SPtr &, int &, int & >::SPtr ListPropertyEventHandle
Definition: sfSession.h:199
virtual void UnregisterOnLockHandler(ObjectEventHandle eventPtr)=0
std::function< void(sfObject::SPtr objPtr)> LockHandler
Definition: sfSession.h:70
virtual ObjectEventHandle RegisterOnUnlockHandler(UnlockHandler handler)=0
ksEvent< sfProperty::SPtr & >::SPtr PropertyEventHandle
Definition: sfSession.h:190
virtual void UnregisterOnUserJoinHandler(UserEventHandle eventPtr)=0
virtual ListPropertyEventHandle RegisterOnListAddHandler(ListAddHandler handler)=0
std::function< void(sfObject::SPtr objPtr)> DirectLockChangeHandler
Definition: sfSession.h:91
std::function< void(sfDictionaryProperty::SPtr dictPtr, const sfName &key)> DictionaryRemoveHandler
Definition: sfSession.h:99
ksEvent< sfUser::SPtr & >::SPtr UserEventHandle
Definition: sfSession.h:183
virtual void Create(sfObject::SPtr objPtr, sfObject::SPtr parentPtr, int childIndex)=0
virtual DictionaryPropertyEventHandle RegisterOnDictionaryRemoveHandler(DictionaryRemoveHandler handler)=0
virtual ObjectEventHandle RegisterOnDirectLockChangeHandler(DirectLockChangeHandler handler)=0
virtual void SetUserColor(float r, float g, float b)=0
std::function< void(sfObject::SPtr objPtr)> ConfirmDeleteHandler
Definition: sfSession.h:63
virtual void UnregisterOnParentChangeHandler(ObjectIndexEventHandle eventPtr)=0
ksEvent< sfDictionaryProperty::SPtr &, sfName & >::SPtr DictionaryPropertyEventHandle
Definition: sfSession.h:207
virtual size_t NumObjects() const =0
std::function< void(sfObject::SPtr objPtr)> UnlockHandler
Definition: sfSession.h:77
virtual sfName TryGetStringFromTable(uint32_t id)=0
virtual void UnregisterOnListRemoveHandler(ListPropertyEventHandle eventPtr)=0
virtual uint32_t LocalUserId()=0
ksEvent< sfObject::SPtr & >::SPtr ObjectEventHandle
Definition: sfSession.h:168
virtual void UnregisterOnDirectLockChangeHandler(ObjectEventHandle eventPtr)=0
virtual UserEventHandle RegisterOnUserColorChangeHandler(UserColorChangeHandler handler)=0
virtual void UnregisterOnUnlockHandler(ObjectEventHandle eventPtr)=0
virtual UserEventHandle RegisterOnUserJoinHandler(UserJoinHandler handler)=0
virtual bool IsConnected() const =0
virtual ListPropertyEventHandle RegisterOnListRemoveHandler(ListRemoveHandler handler)=0
std::function< void(sfObject::SPtr objPtr)> DeleteHandler
Definition: sfSession.h:56
virtual bool EditsDisabled() const =0
virtual void UnregisterOnCreateHandler(ObjectIndexEventHandle eventPtr)=0
virtual sfObject::SPtr GetObject(uint32_t id) const =0
virtual void UnregisterOnListAddHandler(ListPropertyEventHandle eventPtr)=0
ksEvent< sfObject::SPtr &, int & >::SPtr ObjectIndexEventHandle
Definition: sfSession.h:176
virtual void UnsubscribeFromChildren(sfObject::SPtr objPtr)=0
virtual ~sfSession()
Definition: sfSession.h:220
virtual void UnregisterOnConfirmDeleteHandler(ObjectEventHandle eventPtr)=0
virtual AcknowledgeSubscriptionEventHandle RegisterOnAcknowledgeSubscriptionHandler(AcknowledgeSubscriptionHandler handler)=0
virtual void UnregisterOnUserColorChangeHandler(UserEventHandle eventPtr)=0
std::function< void(sfObject::SPtr objPtr, int childIndex)> CreateHandler
Definition: sfSession.h:49
virtual sfName GetStringFromTable(uint32_t id)=0
std::function< void(sfUser::SPtr userPtr)> UserLeaveHandler
Definition: sfSession.h:146
virtual void Create(std::list< sfObject::SPtr > &objectList, sfObject::SPtr parentPtr, int childIndex)=0
virtual PropertyEventHandle RegisterOnPropertyChangeHandler(PropertyChangeHandler handler)=0
virtual void UnregisterOnPropertyChangeHandler(PropertyEventHandle eventPtr)=0
virtual void Create(std::list< sfObject::SPtr > &objectList)=0
virtual UserEventHandle RegisterOnUserLeaveHandler(UserLeaveHandler handler)=0
virtual const std::list< sfObject::SPtr > & GetRootObjects() const =0
virtual ObjectEventHandle RegisterOnConfirmDeleteHandler(ConfirmDeleteHandler handler)=0
std::function< void(sfUser::SPtr userPtr)> UserColorChangeHandler
Definition: sfSession.h:153
virtual ObjectIndexEventHandle RegisterOnCreateHandler(CreateHandler handler)=0
virtual void UnregisterOnDeleteHandler(ObjectEventHandle eventPtr)=0
virtual void UnregisterOnDictionaryRemoveHandler(DictionaryPropertyEventHandle eventPtr)=0
std::function< void(sfUser::SPtr userPtr)> UserJoinHandler
Definition: sfSession.h:139
virtual void Create(sfObject::SPtr objPtr)=0
virtual uint32_t GetObjectLimit(const sfName &type) const =0
virtual void UnregisterOnLockOwnerChangeHandler(ObjectEventHandle eventPtr)=0
virtual uint32_t GetStringTableId(const sfName &str)=0
virtual ObjectEventHandle RegisterOnLockOwnerChangeHandler(LockOwnerChangeHandler handler)=0
virtual const std::list< sfUser::SPtr > & GetUsers() const =0
virtual sfUser::SPtr GetUser(uint32_t id) const =0
ksEvent< bool &, sfObject::SPtr & >::SPtr AcknowledgeSubscriptionEventHandle
Definition: sfSession.h:215
virtual void Delete(sfObject::SPtr objPtr)=0
virtual ObjectEventHandle RegisterOnDeleteHandler(DeleteHandler handler)=0
std::function< void(bool, sfObject::SPtr objPtr)> AcknowledgeSubscriptionHandler
Definition: sfSession.h:161
virtual std::vector< sfReferenceProperty::SPtr > GetReferences(sfObject::SPtr objPtr) const =0
Definition: sfDictionaryProperty.h:24