/// <summary>
 /// TODO Return a list of IO to enable replication or other IO mechanism Used
 /// by the FileSystemInterface to actual write/read byte to underlying
 /// storage
 /// </summary>
 /// <param name="name">The name of the buffered io</param>
 /// <param name="parameters">The parameters that define the buffer</param>
 /// <param name="bufferSize">The size of the buffers</param>
 /// <returns>The buffer implementation @</returns>
 public virtual NeoDatis.Odb.Core.Layers.Layer3.IBufferedIO GetIO(string name, NeoDatis.Odb.Core.Layers.Layer3.IBaseIdentification
                                                                  parameters, int bufferSize)
 {
     if (parameters is NeoDatis.Odb.Core.Layers.Layer3.IOFileParameter)
     {
         NeoDatis.Odb.Core.Layers.Layer3.IOFileParameter fileParameters = (NeoDatis.Odb.Core.Layers.Layer3.IOFileParameter
                                                                           )parameters;
         // Guarantee that file directory structure exist
         NeoDatis.Tool.Wrappers.IO.OdbFile f = new NeoDatis.Tool.Wrappers.IO.OdbFile(fileParameters
                                                                                     .GetFileName());
         NeoDatis.Tool.Wrappers.IO.OdbFile fparent = f.GetParentFile();
         if (fparent != null && !fparent.Exists())
         {
             fparent.Mkdirs();
         }
         return(new NeoDatis.Odb.Impl.Core.Layers.Layer3.Buffer.MultiBufferedFileIO(NeoDatis.Odb.OdbConfiguration
                                                                                    .GetNbBuffers(), name, fileParameters.GetFileName(), fileParameters.CanWrite(),
                                                                                    bufferSize));
     }
     throw new NeoDatis.Odb.ODBRuntimeException(NeoDatis.Odb.Core.NeoDatisError.UnsupportedIoType
                                                .AddParameter(parameters.ToString()));
 }
 GetServerStorageEngine(NeoDatis.Odb.Core.Layers.Layer3.IBaseIdentification baseIdentification
                        )
 {
     return(new NeoDatis.Odb.Impl.Core.Server.Layers.Layer3.Engine.ServerStorageEngine
                (baseIdentification));
 }