~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/discrete_interval.h

Merge Stewart.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/* -*- mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
2
2
 *  vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
3
3
 *
4
 
 *  Copyright (C) 2008 Sun Microsystems, Inc.
 
4
 *  Copyright (C) 2008 Sun Microsystems
5
5
 *
6
6
 *  This program is free software; you can redistribute it and/or modify
7
7
 *  it under the terms of the GNU General Public License as published by
54
54
    interval_min(start), interval_values(val),
55
55
    interval_max((val == UINT64_MAX) ? val : start + val * incr),
56
56
    next(NULL)
57
 
  {}
 
57
  {};
58
58
  Discrete_interval() :
59
59
    interval_min(0), interval_values(0),
60
60
    interval_max(0), next(NULL)
61
 
  {}
62
 
  uint64_t minimum() const { return interval_min;    }
63
 
  uint64_t values()  const { return interval_values; }
64
 
  uint64_t maximum() const { return interval_max;    }
 
61
  {};
 
62
  uint64_t minimum() const { return interval_min;    };
 
63
  uint64_t values()  const { return interval_values; };
 
64
  uint64_t maximum() const { return interval_max;    };
65
65
  /*
66
66
    If appending [3,5] to [1,2], we merge both in [1,5] (they should have the
67
67
    same increment for that, user of the class has to ensure that). That is
83
83
      return 0;
84
84
    }
85
85
    return 1;
86
 
  }
 
86
  };
87
87
};
88
88
 
89
89
 
114
114
public:
115
115
  Discrete_intervals_list() :
116
116
    head(NULL), tail(NULL),
117
 
    current(NULL), elements(0) {}
 
117
    current(NULL), elements(0) {};
118
118
  Discrete_intervals_list(const Discrete_intervals_list& from) :
119
119
    head(NULL), tail(NULL),
120
120
    current(NULL), elements(0)
150
150
      current= current->next;
151
151
    return tmp;
152
152
  }
153
 
  ~Discrete_intervals_list() { empty(); }
154
 
  uint64_t minimum()     const { return (head ? head->minimum() : 0); }
155
 
  uint64_t maximum()     const { return (head ? tail->maximum() : 0); }
 
153
  ~Discrete_intervals_list() { empty(); };
 
154
  uint64_t minimum()     const { return (head ? head->minimum() : 0); };
 
155
  uint64_t maximum()     const { return (head ? tail->maximum() : 0); };
156
156
  uint32_t      nb_elements() const { return elements; }
157
157
 
158
158
  bool append(uint64_t start, uint64_t val, uint64_t incr)