diff options
Diffstat (limited to 'benchmarks/CUDA/MUM/PoolMalloc.hh')
| -rw-r--r-- | benchmarks/CUDA/MUM/PoolMalloc.hh | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/benchmarks/CUDA/MUM/PoolMalloc.hh b/benchmarks/CUDA/MUM/PoolMalloc.hh new file mode 100644 index 0000000..8fb7733 --- /dev/null +++ b/benchmarks/CUDA/MUM/PoolMalloc.hh @@ -0,0 +1,53 @@ +//////////////////////////////////////////////////////////////////////////////// +//! \file +//! \author Adam M Phillippy +//! \date 09/22/2006 +//! +//! \brief PoolMalloc_t header file +//! +//////////////////////////////////////////////////////////////////////////////// + +#ifndef POOLMALLOC_HH +#define POOLMALLOC_HH + +#include <cstdlib> + +struct PoolNode_t; + +//============================================================ PoolMalloc_t ==== +/** \brief Class for allocating memory from a pool + ** Manage memory in pools to speed up allocation of many short strings or + ** arrays. + ** + ** All of the arrays/strings allocated from a given PoolMalloc_t object + ** should share the same lifetime, since they will all be free'd when the + ** object is destroyed. + **/ + +class PoolMalloc_t +{ + +public: + /// Initialize the pool + PoolMalloc_t(); + + /// Free all of the memory associated with this object + ~PoolMalloc_t(); + + /// Explicitly free all of the memory associated with this object + void pfree(); + + /// Allocate an array from the pool + void * pmalloc(size_t size); + + /// Copy a string using memory from the pool + char * pstrdup(const char *s); + +private: + + PoolNode_t *head_m; + +}; + + +#endif // POOLMALLOC_HH |
