summaryrefslogtreecommitdiff
path: root/src/analysis/db/protocol.h
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2014-08-18 21:55:24 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2014-08-18 21:55:24 (GMT)
commita0a7b6c1e05c78ae433f353d15e3366107b67d03 (patch)
treebca0b187778cf016c6131bfc982b08c67a38442b /src/analysis/db/protocol.h
parent161c0f8ab227af5033b1b6456607b9b9c3bc60df (diff)
Inserted storages and collections into loaded binaries (first steps).
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@389 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/analysis/db/protocol.h')
-rw-r--r--src/analysis/db/protocol.h101
1 files changed, 89 insertions, 12 deletions
diff --git a/src/analysis/db/protocol.h b/src/analysis/db/protocol.h
index b1cdfaf..05b559e 100644
--- a/src/analysis/db/protocol.h
+++ b/src/analysis/db/protocol.h
@@ -27,10 +27,12 @@
/**
- * Nombre maximal de connexions à un serveur.
- * cf. listen().
+ * Version de la définition courante du protocole.
*/
-#define CDB_SEVER_BACKLOG 100
+#define CDB_PROTOCOL_VERSION 0xc0de0001
+
+
+
/**
* Délai maximal de réaction pour les coupures de flux (en ms).
@@ -41,27 +43,102 @@
-/* Fonctionnalités offertes */
+/* Comportement vis à vis des éléments */
+typedef enum _DBStorage
+{
+ DBS_ALL_LOCAL = 0x01, /* Enregistrements locaux */
+ DBS_ALL_REMOTE = 0x02, /* Enregistrements distants */
+ DBS_LOCAL_AND_REMOTE = 0x03, /* Enreg. locaux + infos dists.*/
+
+ DBS_MAX = 3
+
+} DBStorage;
+
+
+
+
+
+
+
+
+
+
+
+
+/**
+ * Une fois la connexion établie, les paquets ont tous la forme suivante :
+
+
+
+
+
+ *
+ * [ type de collection visée ; cf. DBFeatures ]
+ * [ action à mener ; cf. DBAction ]
+ * [ élément de type GDbItem sérialisé... ]
+ *
+ */
+
+/* Fonctionnalités offertes nativement */
typedef enum _DBFeatures
{
+ DBF_BOOKMARKS, /* Signets dans le code */
DBF_COMMENTS, /* Commentaires ajoutés */
DBF_SEGMENTS_DISPLAY, /* Choix d'affichage */
- DBF_BOOKMARKS, /* Signets dans le code */
DBF_COUNT
} DBFeatures;
-/* Comportement vis à vis des éléments */
-typedef enum _DBStorage
+/* Interactions disponibles vis à vis d'une collection. */
+typedef enum _DBAction
{
- DBS_ALL_LOCAL = 0x01, /* Enregistrements locaux */
- DBS_ALL_REMOTE = 0x02, /* Enregistrements distants */
- DBS_LOCAL_AND_REMOTE = 0x03, /* Enreg. locaux + infos dists.*/
+ DBA_ADD_ITEM, /* Ajout d'un élément */
+ DBA_REM_ITEM, /* Suppression d'un élément */
+ DBA_MOD_ITEM, /* Modification de l'existant */
+
+ DBA_COUNT
+
+} DBAction;
+
+
+
+
+
+
+/**
+ * Commandes envoyées d'un côté à un autre.
+ */
+typedef enum _DBCommand
+{
+ DBC_HELO, /* Connexion initiale C -> S */
+ DBC_WELCOME, /* Réponse initiale S -> C */
+ DBC_COLLECTION, /* Implication d'une collection*/
+
+ DBC_COUNT
+
+} DBCommand;
+
+
+
+
+
+
+
+/**
+ * Erreurs pouvant survenir...
+ */
+typedef enum _DBError
+{
+ DBE_NONE, /* Succès d'une opération */
+ DBE_WRONG_VERSION, /* Proto Client != Serveur */
+
+ DBE_COUNT
+
+} DBError;
+
- DBS_MAX = 3
-} DBStorage;