]> gitweb.ps.run Git - matrix_esp_thesis/blobdiff - examples/Cli.c
share, save, load, init, print megolm out sessions
[matrix_esp_thesis] / examples / Cli.c
index 4a8e571c9df413bc74b39663511562f25f6c3545..daf79e9c21ca6ccc2ec35678a14d4194b5c3360d 100644 (file)
@@ -160,28 +160,56 @@ ExecuteCommand(
             body);\r
     }\r
     else if (CheckCommand(cmd, "sharesession")) {\r
-        CHECK_ARGS(2, "<user_id> <device_id>")\r
+        CHECK_ARGS(3, "<session_index> <user_id> <device_id>")\r
 \r
-        MatrixClientShareMegolmOutSession(&client,\r
-            args[0],\r
+        int sessionIndex = atoi(args[0]);\r
+\r
+        MatrixClientShareMegolmOutSession(client,\r
             args[1],\r
-            &client->megolmOutSessions[0]);\r
+            args[2],\r
+            &client->megolmOutSessions[sessionIndex]);\r
     }\r
     else if (CheckCommand(cmd, "savesession")) {\r
-        CHECK_ARGS(2, "<filename> <key>")\r
+        CHECK_ARGS(3, "<session_index> <filename> <key>")\r
+\r
+        int sessionIndex = atoi(args[0]);\r
 \r
         MatrixMegolmOutSessionSave(\r
-            &client->megolmOutSessions[0],\r
-            args[0],\r
-            args[1]);\r
+            &client->megolmOutSessions[sessionIndex],\r
+            args[1],\r
+            args[2]);\r
     }\r
     else if (CheckCommand(cmd, "loadsession")) {\r
-        CHECK_ARGS(2, "<filename> <key>")\r
+        CHECK_ARGS(3, "<session_index> <filename> <key>")\r
+\r
+        int sessionIndex = atoi(args[0]);\r
 \r
         MatrixMegolmOutSessionLoad(\r
-            &client->megolmOutSessions[0],\r
-            args[0],\r
-            args[1]);\r
+            &client->megolmOutSessions[sessionIndex],\r
+            args[1],\r
+            args[2]);\r
+    }\r
+    else if (CheckCommand(cmd, "printsessions")) {\r
+        for (int i = 0; i < client->numMegolmOutSessions; i++) {\r
+            printf("%d: %s\t%s\t%s\n", i,\r
+                client->megolmOutSessions[i].roomId,\r
+                client->megolmOutSessions[i].id,\r
+                client->megolmOutSessions[i].key);\r
+        }\r
+    }\r
+    else if (CheckCommand(cmd, "initsession")) {\r
+        CHECK_ARGS(1, "<room_id>")\r
+\r
+        if (! MatrixClientInitMegolmOutSession(client,\r
+            args[0]))\r
+        {\r
+            printf("Maximum number of Megolm sessions reached (%d)\n", NUM_MEGOLM_SESSIONS);\r
+        }\r
+    }\r
+    \r
+    \r
+    else {\r
+        printf("Unknown command\n");\r
     }\r
 #undef CHECK_ARGS\r
 }\r