7#ifndef MEMORY_SEGMENT_H
8#define MEMORY_SEGMENT_H
303 static void validateName(
const char* name) {
306 }
else if (*name ==
'\0') {
308 }
else if (*name ==
'_') {
310 "Names beginning with '_' are reserved for "
311 "internal use only.");
This is a base class for exceptions thrown from the DNS library module.
virtual const char * what() const
Returns a C-style character string of the cause of the exception.
A generic exception that is thrown if a parameter given to a method or function is considered invalid...
General error that can be thrown by a MemorySegment implementation.
MemorySegmentError(const char *file, size_t line, const char *what)
Exception that is thrown, when allocating space in a MemorySegment results in growing the underlying ...
MemorySegmentGrown(const char *file, size_t line, const char *what)
Exception that can be thrown when constructing a MemorySegment object.
MemorySegmentOpenError(const char *file, size_t line, const char *what)
virtual ~MemorySegment()
Destructor.
bool clearNamedAddress(const char *name)
Delete a name previously associated with a segment address.
virtual void deallocate(void *ptr, size_t size)=0
Free/release a segment of memory.
virtual bool setNamedAddressImpl(const char *name, void *addr)=0
Implementation of setNamedAddress beyond common validation.
virtual bool clearNamedAddressImpl(const char *name)=0
Implementation of clearNamedAddress beyond common validation.
virtual bool allMemoryDeallocated() const =0
Check if all allocated memory was deallocated.
NamedAddressResult getNamedAddress(const char *name) const
Return the address in the segment that has the given name.
std::pair< bool, void * > NamedAddressResult
Type definition for result returned by getNamedAddress()
bool setNamedAddress(const char *name, void *addr)
Associate specified address in the segment with a given name.
virtual void * allocate(size_t size)=0
Allocate/acquire a fragment of memory.
virtual NamedAddressResult getNamedAddressImpl(const char *name) const =0
Implementation of getNamedAddress beyond common validation.
#define isc_throw(type, stream)
A shortcut macro to insert known values into exception arguments.
Defines the logger used by the top-level component of kea-lfc.