Add DBus interface documentation 42/272742/12
authorMateusz Majewski <m.majewski2@samsung.com>
Wed, 23 Mar 2022 12:37:02 +0000 (13:37 +0100)
committerMateusz Majewski <m.majewski2@samsung.com>
Tue, 29 Mar 2022 16:16:05 +0000 (18:16 +0200)
Change-Id: I5fa963b5073f8939f9a13a5fa2db19afb90be501

doc/sessiond-dbus-interface.md [new file with mode: 0644]

diff --git a/doc/sessiond-dbus-interface.md b/doc/sessiond-dbus-interface.md
new file mode 100644 (file)
index 0000000..b913773
--- /dev/null
@@ -0,0 +1,157 @@
+# API flow
+
+1. Process A that wants to listen to an add user operation calls AddUserWait and registers on the AddUserStarted signal.
+2. Process B that wants to add a user calls AddUser.
+3. sessiond emits AddUserStarted and starts to process the operation.
+4. Process A receives AddUserStarted and reacts to this. After it's done, it calls AddUserDone.
+5. Once sessiond receives all AddUserDones (or waits ~10 seconds), it emits AddUserComplete.
+
+In case of an error, methods return a DBus error.
+
+# Methods
+
+1. Add a user to the subsession:
+
+        objpath: /org/tizen/sessiond
+        interface: org.tizen.sessiond.subsession.Manager
+        member: AddUser
+        parameters: (ii)
+            session_uid <int32> in
+            subsession_id <int32> in
+
+2. Remove a user from the subsession:
+
+        objpath: /org/tizen/sessiond
+        interface: org.tizen.sessiond.subsession.Manager
+        member: RemoveUser
+        parameters: (ii)
+            session_uid <int32> in
+            subsession_id <int32> in
+
+3. Switch the subsession user:
+
+        objpath: /org/tizen/sessiond
+        interface: org.tizen.sessiond.subsession.Manager
+        member: SwitchUser
+        parameters: (iii)
+            session_uid <int32> in
+            prev_subsession_id <int32> in
+            next_subsession_id <int32> in
+
+4. Register to wait for user add operation:
+
+        objpath: /org/tizen/sessiond
+        interface: org.tizen.sessiond.subsession.Manager
+        member: AddUserWait
+        parameters: (i)
+            session_uid <int32> in
+
+5. Register to wait for user remove operation:
+
+        objpath: /org/tizen/sessiond
+        interface: org.tizen.sessiond.subsession.Manager
+        member: RemoveUserWait
+        parameters: (i)
+            session_uid <int32> in
+
+6. Register to wait for user switch operation:
+
+        objpath: /org/tizen/sessiond
+        interface: org.tizen.sessiond.subsession.Manager
+        member: SwitchUserWait
+        parameters: (i)
+            session_uid <int32> in
+
+7. Mark user add callback as done:
+
+        objpath: /org/tizen/sessiond
+        interface: org.tizen.sessiond.subsession.Manager
+        member: AddUserDone
+        parameters: (ii)
+            session_uid <int32> in
+            subsession_id <int32> in
+
+8. Mark user remove callback as done:
+
+        objpath: /org/tizen/sessiond
+        interface: org.tizen.sessiond.subsession.Manager
+        member: RemoveUserDone
+        parameters: (ii)
+            session_uid <int32> in
+            subsession_id <int32> in
+
+9. Mark user switch callback as done:
+
+        objpath: /org/tizen/sessiond
+        interface: org.tizen.sessiond.subsession.Manager
+        member: SwitchUserDone
+        parameters: (ix)
+            session_uid <int32> in
+            switch_id <int64> in
+
+10. Get subsession user list:
+
+        objpath: /org/tizen/sessiond
+        interface: org.tizen.sessiond.subsession.Manager
+        member: GetUserList
+        parameters: (i) -> (ai)
+            session_uid <int32> in
+            subsession_id_list <array<int32>> out
+
+# Signals
+
+1. On user add:
+
+        objpath: /org/tizen/sessiond
+        interface: org.tizen.sessiond.subsession.Manager
+        member: AddUserStarted
+        parameters: (ii)
+            session_uid <int32>
+            subsession_id <int32>
+
+2. On user removal:
+
+        objpath: /org/tizen/sessiond
+        interface: org.tizen.sessiond.subsession.Manager
+        member: RemoveUserStarted
+        parameters: (ii)
+            session_uid <int32>
+            subsession_id <int32>
+
+3. On user switch:
+
+        objpath: /org/tizen/sessiond
+        interface: org.tizen.sessiond.subsession.Manager
+        member: SwitchUserStarted
+        parameters: (ixii)
+            session_uid <int32>
+            switch_id <int64>
+            prev_subsession_id <int32>
+            next_subsession_id <int32>
+
+4. On user add completed:
+
+        objpath: /org/tizen/sessiond
+        interface: org.tizen.sessiond.subsession.Manager
+        member: AddUserCompleted
+        parameters: (ii)
+            session_uid <int32>
+            subsession_id <int32>
+
+5. On user removal completed:
+
+        objpath: /org/tizen/sessiond
+        interface: org.tizen.sessiond.subsession.Manager
+        member: RemoveUserCompleted
+        parameters: (ii)
+            session_uid <int32>
+            subsession_id <int32>
+
+6. On user switch completed:
+
+        objpath: /org/tizen/sessiond
+        interface: org.tizen.sessiond.subsession.Manager
+        member: SwitchUserCompleted
+        parameters: (ix)
+            session_uid <int32>
+            switch_id <int64>