public void SaveBlock(MyAbstractMemoryBlock memoryBlock)
{
int length = m_buffer.Length;
SizeT size = memoryBlock.GetSize();
while (size > length)
{
length *= 2;
}
if (length != m_buffer.Length)
{
m_buffer = new byte[length];
}
memoryBlock.GetBytes(m_buffer);
string tempFolder = GetTempStorage(memoryBlock.Owner.Owner) + "\\" + GetNodeFolder(memoryBlock.Owner);
Directory.CreateDirectory(tempFolder);
string filePath = tempFolder + "\\" + GetFileName(memoryBlock);
try
{
using (var writer = new BinaryWriter(File.Open(filePath, FileMode.Create)))
{
writer.Write(m_buffer, 0, size);
}
}
catch (Exception e)
{
MyLog.WARNING.WriteLine("Memory block saving failed (node: {0} (id: {1}), block: {2}): {3}", memoryBlock.Owner.Name,
memoryBlock.Owner.Id, memoryBlock.Name, e.Message);
}
}
}