renaming and modifications to the shorten test
[oweals/gnunet.git] / src / consensus / consensus.h
index 3f1efe3401b8f5871aad3e1049828caf828c6241..f1049e1cd20c7c4c11da081bf8a5978ce0a48a34 100644 (file)
@@ -4,7 +4,7 @@
 
      GNUnet is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 2, or (at your
+     by the Free Software Foundation; either version 3, or (at your
      option) any later version.
 
      GNUnet is distributed in the hope that it will be useful, but
  * @file consensus/consensus.h
  * @brief
  */
-#ifndef NSE_H
-#define NSE_H
+#ifndef CONSENSUS_H
+#define CONSENSUS_H
 
 #include "gnunet_common.h"
 
 GNUNET_NETWORK_STRUCT_BEGIN
 
+/**
+ * Sent by the client to the service,
+ * when the client wants the service to join a consensus session.
+ */
 struct GNUNET_CONSENSUS_JoinMessage
 {
   /**
@@ -37,9 +41,9 @@ struct GNUNET_CONSENSUS_JoinMessage
    */
   struct GNUNET_MessageHeader header;
 
-  struct GNUNET_HashCode session_id;
+  uint32_t num_peers GNUNET_PACKED;
 
-  uint16_t num_peers;
+  struct GNUNET_HashCode session_id;
 
   /* GNUNET_PeerIdentity[num_peers] */
 };
@@ -52,20 +56,12 @@ struct GNUNET_CONSENSUS_ConcludeMessage
    */
   struct GNUNET_MessageHeader header;
 
-  struct GNUNET_TIME_RelativeNBO timeout;
-};
+  // uint32_t reserved GNUNET_PACKED; // FIXME...
 
-
-struct GNUNET_CONSENSUS_ConcludeDoneMessage
-{
   /**
-   * Type: GNUNET_MESSAGE_TYPE_CONSENSUS_CLIENT_CONCLUDE_DONE
+   * Timeout for conclude
    */
-  struct GNUNET_MessageHeader header;
-
-  uint16_t num_peers;
-
-  /** PeerIdentity[num_peers] */
+  struct GNUNET_TIME_RelativeNBO timeout;
 };
 
 
@@ -85,11 +81,26 @@ struct GNUNET_CONSENSUS_ElementMessage
   /**
    * Type: GNUNET_MESSAGE_TYPE_CONSENSUS_CLIENT_NEW_ELEMENT
    */
-  uint16_t element_type;
+  uint16_t element_type GNUNET_PACKED; /* FIXME: alignment? => uint32_t */
 
   /* rest: element data */
 };
 
+struct GNUNET_CONSENSUS_AckMessage
+{
+  /**
+   * Type: GNUNET_MESSAGE_TYPE_CONSENSUS_CLIENT_ACK
+   */
+  struct GNUNET_MessageHeader header;
+
+  /**
+   * Do we want to keep and propagate the element?
+   */
+  uint8_t keep; /* FIXME: alignment!? => (u)int32_t */
+
+  /* FIXME: add message hash? */
+};
+
 GNUNET_NETWORK_STRUCT_END
 
 #endif