Add btr_bytes_pending().
[paraslash.git] / buffer_tree.c
index b3aea0e..941d58d 100644 (file)
@@ -44,8 +44,6 @@ struct btr_node {
 #define FOR_EACH_BUFFER_REF_SAFE(_br, _tmp, _btrn) \
        list_for_each_entry_safe((_br), (_tmp), &(_btrn)->input_queue, node)
 
-INIT_STDERR_LOGGING(0);
-
 struct btr_node *btr_new_node(char *name, struct btr_node *parent)
 {
        struct btr_node *btrn = para_malloc(sizeof(*btrn));
@@ -199,7 +197,19 @@ size_t btr_get_input_queue_size(struct btr_node *btrn)
        return size;
 }
 
-int main(void)
+/**
+ * Return the size of the largest input queue.
+ *
+ * Iterates over all children of the given node.
+ */
+size_t btr_bytes_pending(struct btr_node *btrn)
 {
-       return 1;
+       size_t max_size = 0;
+       struct btr_node *ch;
+
+       FOR_EACH_CHILD(ch, btrn) {
+               size_t size = btr_get_input_queue_size(ch);
+               max_size = PARA_MAX(max_size, size);
+       }
+       return max_size;
 }