internal override void PerformReadWrite(ref ReadWriteRequest[] values, string parentID, bool suppressEthernetHeader) { SplitAndJoin splitAndJoin = new SplitAndJoin(m_BufferSize); List <ReadWriteRequest> splitRequestsList = new List <ReadWriteRequest>(); for (int iter = 0; iter < values.Length; iter++) { switch (values[iter].GetType().ToString().Substring(42)) { case "ReadOperands": case "WriteOperands": splitAndJoin.AddNewRequest(values[iter], iter, false); break; default: throw new ComDriveExceptions( "Unexpected error. Actual request type doesn't match the expected type", ComDriveExceptions.ComDriveException.UnexpectedError); } } if (splitAndJoin.FinishSpliting()) { ExecuteRequests(ref values, parentID, splitAndJoin); } }