internal ReturnCode CheckReaderPreConditions( T[] data, SampleInfo[] sampleInfos, int maxSamples, SampleStateKind sampleStates, ViewStateKind viewStates, InstanceStateKind instanceStates) { ReturnCode result; if (maxSamples >= Length.Unlimited) { if (DataReader.SampleStateMaskIsValid(sampleStates) && DataReader.ViewStateMaskIsValid(viewStates) && DataReader.InstanceStateMaskIsValid(instanceStates)) { if ((data == null && sampleInfos == null) || (data != null && sampleInfos != null && data.Length == sampleInfos.Length)) { if (data == null || data.Length == 0 || maxSamples == DDS.Length.Unlimited || data.Length >= maxSamples) { result = DDS.ReturnCode.Ok; } else { result = DDS.ReturnCode.PreconditionNotMet; } } else { result = DDS.ReturnCode.PreconditionNotMet; } } else { result = DDS.ReturnCode.BadParameter; } } else { result = DDS.ReturnCode.BadParameter; } return(result); }