File: dbf\b_tree_file.ads

    1 --::::::::::
    2 --btrefile.ads
    3 --::::::::::
    4 -- Developed by (C) Wasiliy W. Molostoff 1994, 1995.
    5 --                  Moscow, Russia,
    6 --                  Voice:   7 (095) 398-23-38
    7 --                  e-mail:  edv@edv.msk.ru
    8 -- This is free software; you can  freely  redistribute  it  and/or
    9 -- modify  it  without any restrictions.  Please report any errors.
   10 -- All corrections will be made as soon as possible.
   11 generic
   12 
   13    type item_type is private;
   14    type data_type is private;
   15 
   16    with function "<" (left, right: item_type) return boolean is <>;
   17 
   18    degree: in positive := 16;
   19 
   20 package b_tree_file is
   21 
   22   type tree_type is limited private;
   23   type tree_mode is (in_tree, inout_tree, out_tree);
   24 
   25   procedure open   (file : in out tree_type;
   26                     mode : in     tree_mode;
   27                     name : in     string := "";
   28                     form : in     string := "");
   29 
   30   procedure create (file : in out tree_type;
   31                     mode : in     tree_mode := inout_tree;
   32                     name : in     string := "";
   33                     form : in     string := "");
   34 
   35   procedure delete (file : in out tree_type);
   36   procedure close  (file : in out tree_type);
   37   procedure reset  (file : in out tree_type);
   38   procedure reset  (file : in out tree_type;
   39                     mode : in     tree_mode);
   40 
   41   function is_open (file : in     tree_type) return boolean;
   42   function mode    (file : in     tree_type) return tree_mode;
   43   function name    (file : in     tree_type) return string;
   44   function form    (file : in     tree_type) return string;
   45 
   46   procedure insert (file : in out tree_type;
   47                     item : in     item_type;
   48                     data : in     data_type);
   49 
   50   procedure modify (file : in out tree_type;
   51                     item : in     item_type;
   52                     data : in     data_type;
   53                     ok   :    out boolean);
   54 
   55   procedure delete (file : in out tree_type;
   56                     item : in     item_type;
   57                     data :    out data_type;
   58                     ok   :    out boolean);
   59 
   60   procedure get_ge (file : in     tree_type;
   61                     item : in out item_type;
   62                     data :    out data_type;
   63                     ok   :    out boolean);
   64 
   65   procedure get_gt (file : in     tree_type;
   66                     item : in out item_type;
   67                     data :    out data_type;
   68                     ok   :    out boolean);
   69 
   70   procedure get_le (file : in     tree_type;
   71                     item : in out item_type;
   72                     data :    out data_type;
   73                     ok   :    out boolean);
   74 
   75   procedure get_lt (file : in     tree_type;
   76                     item : in out item_type;
   77                     data :    out data_type;
   78                     ok   :    out boolean);
   79 
   80   procedure get_first (file : in     tree_type;
   81                        item :    out item_type;
   82                        data :    out data_type;
   83                        ok   :    out boolean);
   84 
   85   procedure get_last  (file : in     tree_type;
   86                        item :    out item_type;
   87                        data :    out data_type;
   88                        ok   :    out boolean);
   89 
   90 private
   91 
   92   type tree_object;
   93   type tree_type is access tree_object;
   94 end b_tree_file;
   95