crucible: add cleanup class

Store a function (or closure) in an instance and invoke the function
from the destructor.

Signed-off-by: Zygo Blaxell <bees@furryterror.org>
Dieser Commit ist enthalten in:
Zygo Blaxell
2018-01-15 11:07:48 -05:00
Ursprung 6d6aedd8ec
Commit 8a68b5f20b
3 geänderte Dateien mit 37 neuen und 1 gelöschten Zeilen
+2 -1
Datei anzeigen
@@ -3,8 +3,9 @@ TAG := $(shell git describe --always --dirty || echo UNKNOWN)
default: libcrucible.so
OBJS = \
crc64.o \
chatter.o \
cleanup.o \
crc64.o \
error.o \
extentwalker.o \
fd.o \
+17
Datei anzeigen
@@ -0,0 +1,17 @@
#include <crucible/cleanup.h>
namespace crucible {
Cleanup::Cleanup(function<void()> func) :
m_cleaner(func)
{
}
Cleanup::~Cleanup()
{
if (m_cleaner) {
m_cleaner();
}
}
}