range_tree.h 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /*
  2. * Copyright (c) 2016, Campbell Barton.
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "Apache License")
  5. * with the following modification; you may not use this file except in
  6. * compliance with the Apache License and the following modification to it:
  7. * Section 6. Trademarks. is deleted and replaced with:
  8. *
  9. * 6. Trademarks. This License does not grant permission to use the trade
  10. * names, trademarks, service marks, or product names of the Licensor
  11. * and its affiliates, except as required to comply with Section 4(c) of
  12. * the License and to reproduce the content of the NOTICE file.
  13. *
  14. * You may obtain a copy of the Apache License at
  15. *
  16. * http://www.apache.org/licenses/LICENSE-2.0
  17. *
  18. * Unless required by applicable law or agreed to in writing, software
  19. * distributed under the Apache License with the above modification is
  20. * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  21. * KIND, either express or implied. See the Apache License for the specific
  22. * language governing permissions and limitations under the Apache License.
  23. */
  24. #ifndef __RANGE_TREE_H__
  25. #define __RANGE_TREE_H__
  26. #ifdef __cplusplus
  27. extern "C" {
  28. #endif
  29. typedef struct RangeTreeUInt RangeTreeUInt;
  30. struct RangeTreeUInt *range_tree_uint_alloc(unsigned int min, unsigned int max);
  31. void range_tree_uint_free(struct RangeTreeUInt *rt);
  32. struct RangeTreeUInt *range_tree_uint_copy(const struct RangeTreeUInt *rt_src);
  33. bool range_tree_uint_has(struct RangeTreeUInt *rt, const unsigned int value);
  34. void range_tree_uint_take(struct RangeTreeUInt *rt, const unsigned int value);
  35. bool range_tree_uint_retake(struct RangeTreeUInt *rt, const unsigned int value);
  36. unsigned int range_tree_uint_take_any(struct RangeTreeUInt *rt);
  37. void range_tree_uint_release(struct RangeTreeUInt *rt, const unsigned int value);
  38. #ifdef __cplusplus
  39. }
  40. #endif
  41. #endif /* __RANGE_TREE_H__ */