]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/lib/tree.h
ebl fix batch evry x files
[bacula/bacula] / bacula / src / lib / tree.h
index c5faa14945dfa5461d250aec7e45d10fc4a9e961..d35e5de553f48d8ff0b331a7c247957fe6af35b0 100644 (file)
@@ -5,19 +5,32 @@
  *
 */
 /*
-   Copyright (C) 2002-2006 Kern Sibbald
-
-   This program is free software; you can redistribute it and/or
-   modify it under the terms of the GNU General Public License
-   version 2 as amended with additional clauses defined in the
-   file LICENSE in the main source directory.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
-   the file LICENSE for additional details.
-
- */
+   Bacula® - The Network Backup Solution
+
+   Copyright (C) 2002-2007 Free Software Foundation Europe e.V.
+
+   The main author of Bacula is Kern Sibbald, with contributions from
+   many others, a complete list can be found in the file AUTHORS.
+   This program is Free Software; you can redistribute it and/or
+   modify it under the terms of version two of the GNU General Public
+   License as published by the Free Software Foundation plus additions
+   that are listed in the file LICENSE.
+
+   This program is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+   General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+   02110-1301, USA.
+
+   Bacula® is a registered trademark ofJohn Walker.
+   The licensor of Bacula is the Free Software Foundation Europe
+   (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich,
+   Switzerland, email:ftf@fsfeurope.org.
+*/
 
 struct s_mem {
    struct s_mem *next;                /* next buffer */
@@ -45,8 +58,8 @@ struct s_mem {
 struct s_tree_node {
    /* KEEP sibling as the first member to avoid having to
     *  do initialization of child */
-   dlink sibling;
-   dlist child;
+   rblink sibling;
+   rblist child;
    char *fname;                       /* file name */
    int32_t FileIndex;                 /* file index */
    uint32_t JobId;                    /* JobId */
@@ -56,7 +69,8 @@ struct s_tree_node {
    unsigned int extract_dir: 1;       /* extract dir entry only */
    unsigned int hard_link: 1;         /* set if have hard link */
    unsigned int soft_link: 1;         /* set if is soft link */
-   unsigned int inserted: 1;          /* set when newly inserted */
+   unsigned int inserted: 1;          /* set when node newly inserted */
+   unsigned int loaded: 1;            /* set when the dir is in the tree */
    struct s_tree_node *parent;
    struct s_tree_node *next;          /* next hash of FileIndex */
 };
@@ -65,8 +79,8 @@ typedef struct s_tree_node TREE_NODE;
 struct s_tree_root {
    /* KEEP sibling as the first member to avoid having to
     *  do initialization of child */
-   dlink sibling;
-   dlist child;
+   rblink sibling;
+   rblist child;
    const char *fname;                 /* file name */
    int32_t FileIndex;                 /* file index */
    uint32_t JobId;                    /* JobId */
@@ -76,6 +90,7 @@ struct s_tree_root {
    unsigned int extract_dir: 1;       /* extract dir entry only */
    unsigned int have_link: 1;         /* set if have hard link */
    unsigned int inserted: 1;          /* set when newly inserted */
+   unsigned int loaded: 1;            /* set when the dir is in the tree */
    struct s_tree_node *parent;
    struct s_tree_node *next;          /* next hash of FileIndex */