-keep track of messages passed to mq
[oweals/gnunet.git] / src / arm / arm.h
index 4b9da6fabab0a5069e15d73dc11d6d6182b76db4..6b3077bbcac7bd08cbd29d8478a72f3cb049453a 100644 (file)
@@ -1,6 +1,6 @@
 /*
      This file is part of GNUnet.
-     (C) 2009 Christian Grothoff (and other contributing authors)
+     Copyright (C) 2009 Christian Grothoff (and other contributing authors)
 
      GNUnet is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -14,8 +14,8 @@
 
      You should have received a copy of the GNU General Public License
      along with GNUnet; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
+     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+     Boston, MA 02110-1301, USA.
 */
 
 /**
 GNUNET_NETWORK_STRUCT_BEGIN
 
 /**
- * Reply from ARM to client.
+ * Status update from ARM to client.
  */
-struct GNUNET_ARM_ResultMessage
+struct GNUNET_ARM_StatusMessage
 {
 
   /**
-   * Reply to client, of type is GNUNET_MESSAGE_TYPE_ARM_RESULT. 
+   * Reply to client, of type is #GNUNET_MESSAGE_TYPE_ARM_STATUS.
    */
   struct GNUNET_MessageHeader header;
-  
+
   /**
-   * Status from the 'enum GNUNET_ARM_ProcessStatus'
+   * Status from the 'enum GNUNET_ARM_ServiceStatus'
    */
   uint32_t status;
+
+  /* followed by a 0-terminated service name */
+};
+
+struct GNUNET_ARM_Message
+{
+  /**
+   * Reply to client, type is #GNUNET_MESSAGE_TYPE_ARM_RESULT or
+   * #GNUNET_MESSAGE_TYPE_ARM_LIST_RESULT.
+   * OR
+   * Request from client, type is #GNUNET_MESSAGE_TYPE_ARM_START or
+   * #GNUNET_MESSAGE_TYPE_ARM_STOP.
+   */
+  struct GNUNET_MessageHeader header;
+
+  /**
+   * For alignment.
+   */
+  uint32_t reserved;
+
+  /**
+   * ID of a request that is being replied to.
+   * OR
+   * ID of a request that is being sent.
+   */
+  uint64_t request_id;
+
+  /* For requests - followed by a 0-terminated service name */
+};
+
+
+/**
+ * Reply from ARM to client.
+ */
+struct GNUNET_ARM_ResultMessage
+{
+
+  /**
+   * Reply to client, of type is #GNUNET_MESSAGE_TYPE_ARM_RESULT, with an ID.
+   */
+  struct GNUNET_ARM_Message arm_msg;
+
+  /**
+   * Result from the `enum GNUNET_ARM_Result`
+   */
+  uint32_t result;
 };
+
+/**
+ * Reply from ARM to client for the
+ * #GNUNET_MESSAGE_TYPE_ARM_LIST request followed by count
+ * '\0' terminated strings. header->size contains the
+ * total size (including all strings).
+ */
+struct GNUNET_ARM_ListResultMessage
+{
+  /**
+   * Reply to client, of type is #GNUNET_MESSAGE_TYPE_ARM_LIST_RESULT,
+   * with an ID.
+   */
+  struct GNUNET_ARM_Message arm_msg;
+
+  /**
+   * Number of '\0' terminated strings that follow
+   * this message.
+   */
+  uint16_t count;
+};
+
 GNUNET_NETWORK_STRUCT_END
 
 #endif