25 #ifndef __TPIE_RESOURCE_MANAGER_H__
26 #define __TPIE_RESOURCE_MANAGER_H__
27 #include <tpie/tpie_export.h>
28 #include <tpie/config.h>
59 size_t used() const noexcept;
64 size_t available() const noexcept;
69 size_t limit() const noexcept {
return m_limit;}
77 void set_limit(
size_t new_limit);
83 void set_enforcement(enforce_t e);
90 void register_increased_usage(
size_t amount);
92 void register_decreased_usage(
size_t amount);
94 virtual std::string amount_with_unit(
size_t amount)
const;
105 void print_resource_complaint(std::ostream & os,
size_t amount,
size_t usage);
107 virtual void throw_out_of_resource_error(
const std::string & s) = 0;
109 std::atomic<size_t> m_used;
111 size_t m_maxExceeded;
112 size_t m_nextWarning;
115 resource_type resource_managed;
120 #endif //__TPIE_RESOURCE_MANAGER_H__