]> rtime.felk.cvut.cz Git - frescor/fna.git/blobdiff - src_frescan/frescan_servers.c
add functions to be able to change the PERCEIVED parameters and then commit them...
[frescor/fna.git] / src_frescan / frescan_servers.c
index c133ee4b12da7e6636a6a127d998d0086b152cb1..861cef0b18cd6a17976cbbacf3ef9f9100ca5165 100644 (file)
@@ -177,6 +177,55 @@ int frescan_servers_create(frescan_network_t net,
         return 0;
 }
 
+/**
+ * frescan_servers_set_perceived() - update a sporadic server perceived data
+ *
+ * @net: the network instance
+ * @params: the parameters for the server
+ * @id: the identificator for the server
+ *
+ */
+
+int frescan_servers_set_perceived(frescan_network_t net,
+                                  const frescan_server_params_t *params,
+                                  frescan_ss_t id)
+{
+        the_servers_pool[net][id].params = *params;
+        return 0;
+}
+
+/**
+ * frescan_servers_commit_perceived() - commit sporadic server perceived data
+ *
+ * @net: the network instance
+ * @params: the parameters for the server
+ * @id: the identificator for the server
+ *
+ */
+
+int frescan_servers_commit_perceived(frescan_network_t net,
+                                     frescan_ss_t id)
+{
+
+//         typedef struct {
+//                 frescan_server_params_t params;
+//                 frescan_network_t       net;
+//                 frescan_ss_t            id;
+//                 frescan_budget_t        current_budget;
+//                 frescan_prio_t          current_priority;
+//                 frescan_budget_t        pending_packets;
+//                 frescan_repl_op_t       replenishments;
+//                 timer_t                 repl_timer;
+//                 struct timespec         act_time;
+//                 frescan_packet_t        packet_list;
+//                 struct list_head        servers_list;
+//         } frescan_server_data_t;
+
+        // TODO: remove or add replenishment operations
+        ...
+        return -1;
+}
+
 /**
  * frescan_servers_update() - update a sporadic server data
  *
@@ -190,7 +239,14 @@ int frescan_servers_update(frescan_network_t net,
                            const frescan_server_params_t *params,
                            frescan_ss_t id)
 {
-        the_servers_pool[net][id].params = *params;
+        int ret;
+
+        ret = frescan_servers_set_perceived(net, params, id);
+        if (ret != 0) return ret;
+
+        ret = frescan_servers_commit_perceived(net, id);
+        if (ret != 0) return ret;
+
         return 0;
 }