Implemented Allocation Pool use by cChunkData

This commit is contained in:
Tycho
2014-05-23 17:18:11 +01:00
parent 6991c2dd84
commit 8be3a8f7dc
11 changed files with 125 additions and 45 deletions
+12 -3
View File
@@ -6,9 +6,18 @@
int main(int argc, char** argv)
{
class cStarvationCallbacks
: public cAllocationPool<cChunkData::sChunkSection,1600>::cStarvationCallbacks
{
virtual void OnStartingUsingBuffer() {}
virtual void OnStopUsingBuffer() {}
virtual void OnBufferEmpty() {}
};
cAllocationPool<cChunkData::sChunkSection,1600> Pool(std::auto_ptr<cAllocationPool<cChunkData::sChunkSection,1600>::cStarvationCallbacks>(new cStarvationCallbacks()));
{
// Test first segment
cChunkData buffer;
cChunkData buffer(Pool);
BLOCKTYPE* SrcBlockBuffer = new BLOCKTYPE[16 * 16 * 256];
memset(SrcBlockBuffer, 0x00, 16 * 16 * 256);
@@ -45,7 +54,7 @@ int main(int argc, char** argv)
{
// test following segment
cChunkData buffer;
cChunkData buffer(Pool);
BLOCKTYPE* SrcBlockBuffer = new BLOCKTYPE[16 * 16 * 256];
memset(SrcBlockBuffer, 0x00, 16 * 16 * 256);
@@ -82,7 +91,7 @@ int main(int argc, char** argv)
{
// test zeros
cChunkData buffer;
cChunkData buffer(Pool);
BLOCKTYPE* SrcBlockBuffer = new BLOCKTYPE[16 * 16 * 256];
memset(SrcBlockBuffer, 0x00, 16 * 16 * 256);
+12 -4
View File
@@ -6,8 +6,16 @@
int main(int argc, char** argv)
{
class cStarvationCallbacks
: public cAllocationPool<cChunkData::sChunkSection,1600>::cStarvationCallbacks
{
cChunkData buffer;
virtual void OnStartingUsingBuffer() {}
virtual void OnStopUsingBuffer() {}
virtual void OnBufferEmpty() {}
};
cAllocationPool<cChunkData::sChunkSection,1600> Pool(std::auto_ptr<cAllocationPool<cChunkData::sChunkSection,1600>::cStarvationCallbacks>(new cStarvationCallbacks()));
{
cChunkData buffer(Pool);
// Empty chunks
buffer.SetBlock(0,0,0, 0xAB);
@@ -105,7 +113,7 @@ int main(int argc, char** argv)
}
{
cChunkData buffer;
cChunkData buffer(Pool);
// Zero's
buffer.SetBlock(0,0,0, 0x0);
@@ -122,9 +130,9 @@ int main(int argc, char** argv)
{
// Operator =
cChunkData buffer;
cChunkData buffer(Pool);
buffer.SetBlock(0,0,0,0x42);
cChunkData copy;
cChunkData copy(Pool);
#if __cplusplus < 201103L
copy = buffer;
#else
+13 -5
View File
@@ -6,8 +6,16 @@
int main(int argc, char** argv)
{
class cStarvationCallbacks
: public cAllocationPool<cChunkData::sChunkSection,1600>::cStarvationCallbacks
{
cChunkData buffer;
virtual void OnStartingUsingBuffer() {}
virtual void OnStopUsingBuffer() {}
virtual void OnBufferEmpty() {}
};
cAllocationPool<cChunkData::sChunkSection,1600> Pool(std::auto_ptr<cAllocationPool<cChunkData::sChunkSection,1600>::cStarvationCallbacks>(new cStarvationCallbacks()));
{
cChunkData buffer(Pool);
buffer.SetBlock(3,1,4,0xDE);
buffer.SetMeta(3,1,4,0xA);
@@ -47,7 +55,7 @@ int main(int argc, char** argv)
}
{
cChunkData buffer;
cChunkData buffer(Pool);
NIBBLETYPE * SrcNibbleBuffer = new NIBBLETYPE[16 * 16 * 256/2];
for (int i = 0; i < 16 * 16 * 256 / 2; i += 4)
@@ -80,7 +88,7 @@ int main(int argc, char** argv)
}
{
cChunkData buffer;
cChunkData buffer(Pool);
NIBBLETYPE * SrcNibbleBuffer = new NIBBLETYPE[16 * 16 * 256/2];
for (int i = 0; i < 16 * 16 * 256 / 2; i += 4)
@@ -114,7 +122,7 @@ int main(int argc, char** argv)
}
{
cChunkData buffer;
cChunkData buffer(Pool);
NIBBLETYPE * SrcNibbleBuffer = new NIBBLETYPE[16 * 16 * 256/2];
for (int i = 0; i < 16 * 16 * 256 / 2; i += 4)
@@ -148,7 +156,7 @@ int main(int argc, char** argv)
}
{
cChunkData buffer;
cChunkData buffer(Pool);
BLOCKTYPE * SrcBlockBuffer = new BLOCKTYPE[16 * 16 * 256];
memset(SrcBlockBuffer, 0x00, 16 * 16 * 256);
+9 -1
View File
@@ -4,6 +4,14 @@
int main(int argc, char** argv)
{
cChunkData buffer;
class cStarvationCallbacks
: public cAllocationPool<cChunkData::sChunkSection,1600>::cStarvationCallbacks
{
virtual void OnStartingUsingBuffer() {}
virtual void OnStopUsingBuffer() {}
virtual void OnBufferEmpty() {}
};
cAllocationPool<cChunkData::sChunkSection,1600> Pool(std::auto_ptr<cAllocationPool<cChunkData::sChunkSection,1600>::cStarvationCallbacks>(new cStarvationCallbacks()));
cChunkData buffer(Pool);
return 0;
}