Перенос инициализации в класс MM
This commit is contained in:
parent
8c388b1123
commit
d9e8285439
5 changed files with 17 additions and 22 deletions
|
|
@ -31,19 +31,22 @@ shared static this()
|
|||
enforce(rc == 0, "xdl_set_allocator failed (rc=" ~ rc.to!string ~ ")");
|
||||
}
|
||||
|
||||
mmfile_t initMmfile(size_t blockSize)
|
||||
{
|
||||
mmfile_t mf;
|
||||
auto rc = xdl_init_mmfile(&mf, blockSize.to!long, XDL_MMF_ATOMIC);
|
||||
enforce(rc == 0, "xdl_init_mmfile failed (rc=" ~ rc.to!string ~ ")");
|
||||
return mf;
|
||||
}
|
||||
|
||||
abstract class MM
|
||||
{
|
||||
private:
|
||||
mmfile_t initMmfile(size_t blockSize)
|
||||
{
|
||||
mmfile_t mf;
|
||||
auto rc = xdl_init_mmfile(&mf, blockSize.to!long, XDL_MMF_ATOMIC);
|
||||
enforce(rc == 0, "xdl_init_mmfile failed (rc=" ~ rc.to!string ~ ")");
|
||||
return mf;
|
||||
}
|
||||
protected:
|
||||
mmfile_t _inner;
|
||||
public:
|
||||
this(long bsize = 0) {
|
||||
_inner = initMmfile(bsize);
|
||||
}
|
||||
final @property size_t size()
|
||||
{
|
||||
return xdl_mmfile_size(&_inner).to!size_t;
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ final class MMBlocks : MM
|
|||
public:
|
||||
this()
|
||||
{
|
||||
_inner = initMmfile(DEFAULT_BSIZE);
|
||||
super(DEFAULT_BSIZE);
|
||||
}
|
||||
|
||||
~this()
|
||||
|
|
|
|||
|
|
@ -14,8 +14,6 @@ final class MMFile : MM
|
|||
private:
|
||||
void _write(const(ubyte)[] data)
|
||||
{
|
||||
_inner = initMmfile(0);
|
||||
|
||||
if (data.length > 0)
|
||||
{
|
||||
auto length = data.length.to!long;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue