mirror of
https://github.com/opnsense/src.git
synced 2026-04-29 18:32:49 -04:00
(A number of files not required for the FreeBSD build have been removed.) Sponsored by: DARPA, AFRL
89 lines
1.5 KiB
C++
89 lines
1.5 KiB
C++
//===--------------------- Range.h ------------------------------*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef utility_Range_h_
|
|
#define utility_Range_h_
|
|
|
|
#include <stdint.h>
|
|
#include <algorithm>
|
|
|
|
namespace lldb_utility {
|
|
|
|
class Range
|
|
{
|
|
public:
|
|
|
|
typedef uint64_t ValueType;
|
|
|
|
static const ValueType OPEN_END = UINT64_MAX;
|
|
|
|
Range (const Range& rng);
|
|
|
|
Range (ValueType low = 0,
|
|
ValueType high = OPEN_END);
|
|
|
|
Range&
|
|
operator = (const Range& rhs);
|
|
|
|
ValueType
|
|
GetLow ()
|
|
{
|
|
return m_low;
|
|
}
|
|
|
|
ValueType
|
|
GetHigh ()
|
|
{
|
|
return m_high;
|
|
}
|
|
|
|
void
|
|
SetLow (ValueType low)
|
|
{
|
|
m_low = low;
|
|
}
|
|
|
|
void
|
|
SetHigh (ValueType high)
|
|
{
|
|
m_high = high;
|
|
}
|
|
|
|
void
|
|
Flip ();
|
|
|
|
void
|
|
Intersection (const Range& other);
|
|
|
|
void
|
|
Union (const Range& other);
|
|
|
|
typedef bool (*RangeCallback)(ValueType index);
|
|
|
|
void
|
|
Iterate (RangeCallback callback);
|
|
|
|
ValueType
|
|
GetSize ();
|
|
|
|
bool
|
|
IsEmpty ();
|
|
|
|
private:
|
|
|
|
void
|
|
InitRange ();
|
|
|
|
ValueType m_low;
|
|
ValueType m_high;
|
|
};
|
|
|
|
} // namespace lldb_private
|
|
|
|
#endif // #ifndef utility_Range_h_
|