multicast: removed replay cancellation as responses are limited
[oweals/gnunet.git] / src / include / gnunet_env_lib.h
index 89101afc1a4f9760bb0b925652f6eee07f1710dc..408a19a56c265b6f011cf2e11e3cf66454ea230e 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * This file is part of GNUnet.
- * (C) 2013 Christian Grothoff (and other contributing authors)
+ * Copyright (C) 2013 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.
  */
 
 /**
@@ -93,7 +93,8 @@ enum GNUNET_ENV_Type
 /**
  * PSYC state modifier.
  */
-struct GNUNET_ENV_Modifier {
+struct GNUNET_ENV_Modifier
+{
   /**
    * State operation.
    */
@@ -153,9 +154,41 @@ GNUNET_ENV_environment_create ();
  * @param value_size Size of @a value.
  */
 void
-GNUNET_ENV_environment_add_mod (struct GNUNET_ENV_Environment *env,
-                                enum GNUNET_ENV_Operator oper, const char *name,
-                                const void *value, size_t value_size);
+GNUNET_ENV_environment_add (struct GNUNET_ENV_Environment *env,
+                            enum GNUNET_ENV_Operator oper, const char *name,
+                            const void *value, size_t value_size);
+
+
+/**
+ * Get the first modifier of the environment.
+ */
+struct GNUNET_ENV_Modifier *
+GNUNET_ENV_environment_head (const struct GNUNET_ENV_Environment *env);
+
+
+
+/**
+ * Get the last modifier of the environment.
+ */
+struct GNUNET_ENV_Modifier *
+GNUNET_ENV_environment_tail (const struct GNUNET_ENV_Environment *env);
+
+
+/**
+ * Remove a modifier from the environment.
+ */
+void
+GNUNET_ENV_environment_remove (struct GNUNET_ENV_Environment *env,
+                               struct GNUNET_ENV_Modifier *mod);
+
+
+/**
+ * Remove a modifier at the beginning of the environment.
+ */
+int
+GNUNET_ENV_environment_shift (struct GNUNET_ENV_Environment *env,
+                              enum GNUNET_ENV_Operator *oper, const char **name,
+                              const void **value, size_t *value_size);
 
 
 /**
@@ -193,7 +226,7 @@ GNUNET_ENV_environment_iterate (const struct GNUNET_ENV_Environment *env,
  * @return Number of modifiers.
  */
 size_t
-GNUNET_ENV_environment_get_mod_count (const struct GNUNET_ENV_Environment *env);
+GNUNET_ENV_environment_get_count (const struct GNUNET_ENV_Environment *env);
 
 
 /**
@@ -249,19 +282,6 @@ int
 GNUNET_ENV_value_to_number (size_t size, const void *value, int64_t *number);
 
 
-/**
- * Get the variable's value as a list.
- *
- * @param size Size of value.
- * @param value Raw value of variable.
- * @param[out] list A newly created list holding the elements.
- *
- * @return #GNUNET_OK on success, #GNUNET_SYSERR if an error occurred (e.g. the value is invalid).
- */
-int
-GNUNET_ENV_value_to_list (size_t size, const void *value, struct GNUNET_CONTAINER_SList **list);
-
-
 /**
  * Get the variable's value as a dictionary.
  *
@@ -287,18 +307,6 @@ void *
 GNUNET_ENV_value_from_number (int64_t number, size_t *value_size);
 
 
-/**
- * Create a PSYC variable value from a list.
- *
- * @param list The list to convert.
- * @param[out] value_size Size of returned value.
- *
- * @return A newly allocated value or NULL on error.
- */
-void *
-GNUNET_ENV_value_from_list (struct GNUNET_CONTAINER_SList *list, size_t *value_size);
-
-
 /**
  * Create a PSYC variable value from a dictionary.
  *