/* Copyright (c) Microsoft Corporation All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 THIS CODE IS PROVIDED *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT. See the Apache Version 2.0 License for specific language governing permissions and limitations under the License. */ // // � Microsoft Corporation. All rights reserved. // using System; using System.Collections; using System.Collections.Generic; using System.Text; using System.Reflection; using System.Data.SqlTypes; using Microsoft.Research.DryadLinq; namespace Microsoft.Research.DryadLinq.Internal { public abstract class HpcLinqFactory { public abstract HpcRecordReader MakeReader(NativeBlockStream nativeStream); public abstract HpcRecordReader MakeReader(IntPtr handle, UInt32 port); public abstract HpcRecordWriter MakeWriter(NativeBlockStream nativeStream); public abstract HpcRecordWriter MakeWriter(IntPtr handle, UInt32 port, Int32 buffSize); } public sealed class HpcLinqFactoryByte : HpcLinqFactory { public override HpcRecordReader MakeReader(NativeBlockStream nativeStream) { return new HpcRecordByteReader(new HpcBinaryReader(nativeStream)); } public override HpcRecordReader MakeReader(IntPtr handle, UInt32 port) { return new HpcRecordByteReader(new HpcBinaryReader(handle, port)); } public override HpcRecordWriter MakeWriter(NativeBlockStream nativeStream) { return new HpcRecordByteWriter(new HpcBinaryWriter(nativeStream)); } public override HpcRecordWriter MakeWriter(IntPtr handle, UInt32 port, Int32 buffSize) { return new HpcRecordByteWriter(new HpcBinaryWriter(handle, port, buffSize)); } } public sealed class HpcLinqFactorySByte : HpcLinqFactory { public override HpcRecordReader MakeReader(NativeBlockStream nativeStream) { return new HpcRecordSByteReader(new HpcBinaryReader(nativeStream)); } public override HpcRecordReader MakeReader(IntPtr handle, UInt32 port) { return new HpcRecordSByteReader(new HpcBinaryReader(handle, port)); } public override HpcRecordWriter MakeWriter(NativeBlockStream nativeStream) { return new HpcRecordSByteWriter(new HpcBinaryWriter(nativeStream)); } public override HpcRecordWriter MakeWriter(IntPtr handle, UInt32 port, Int32 buffSize) { return new HpcRecordSByteWriter(new HpcBinaryWriter(handle, port, buffSize)); } } public sealed class HpcLinqFactoryBool : HpcLinqFactory { public override HpcRecordReader MakeReader(NativeBlockStream nativeStream) { return new HpcRecordBoolReader(new HpcBinaryReader(nativeStream)); } public override HpcRecordReader MakeReader(IntPtr handle, UInt32 port) { return new HpcRecordBoolReader(new HpcBinaryReader(handle, port)); } public override HpcRecordWriter MakeWriter(NativeBlockStream nativeStream) { return new HpcRecordBoolWriter(new HpcBinaryWriter(nativeStream)); } public override HpcRecordWriter MakeWriter(IntPtr handle, UInt32 port, Int32 buffSize) { return new HpcRecordBoolWriter(new HpcBinaryWriter(handle, port, buffSize)); } } public sealed class HpcLinqFactoryChar : HpcLinqFactory { public override HpcRecordReader MakeReader(NativeBlockStream nativeStream) { return new HpcRecordCharReader(new HpcBinaryReader(nativeStream)); } public override HpcRecordReader MakeReader(IntPtr handle, UInt32 port) { return new HpcRecordCharReader(new HpcBinaryReader(handle, port)); } public override HpcRecordWriter MakeWriter(NativeBlockStream nativeStream) { return new HpcRecordCharWriter(new HpcBinaryWriter(nativeStream)); } public override HpcRecordWriter MakeWriter(IntPtr handle, UInt32 port, Int32 buffSize) { return new HpcRecordCharWriter(new HpcBinaryWriter(handle, port, buffSize)); } } public sealed class HpcLinqFactoryShort : HpcLinqFactory { public override HpcRecordReader MakeReader(NativeBlockStream nativeStream) { return new HpcRecordShortReader(new HpcBinaryReader(nativeStream)); } public override HpcRecordReader MakeReader(IntPtr handle, UInt32 port) { return new HpcRecordShortReader(new HpcBinaryReader(handle, port)); } public override HpcRecordWriter MakeWriter(NativeBlockStream nativeStream) { return new HpcRecordShortWriter(new HpcBinaryWriter(nativeStream)); } public override HpcRecordWriter MakeWriter(IntPtr handle, UInt32 port, Int32 buffSize) { return new HpcRecordShortWriter(new HpcBinaryWriter(handle, port, buffSize)); } } public sealed class HpcLinqFactoryUShort : HpcLinqFactory { public override HpcRecordReader MakeReader(NativeBlockStream nativeStream) { return new HpcRecordUShortReader(new HpcBinaryReader(nativeStream)); } public override HpcRecordReader MakeReader(IntPtr handle, UInt32 port) { return new HpcRecordUShortReader(new HpcBinaryReader(handle, port)); } public override HpcRecordWriter MakeWriter(NativeBlockStream nativeStream) { return new HpcRecordUShortWriter(new HpcBinaryWriter(nativeStream)); } public override HpcRecordWriter MakeWriter(IntPtr handle, UInt32 port, Int32 buffSize) { return new HpcRecordUShortWriter(new HpcBinaryWriter(handle, port, buffSize)); } } public sealed class HpcLinqFactoryInt32 : HpcLinqFactory { public override HpcRecordReader MakeReader(NativeBlockStream nativeStream) { return new HpcRecordInt32Reader(new HpcBinaryReader(nativeStream)); } public override HpcRecordReader MakeReader(IntPtr handle, UInt32 port) { return new HpcRecordInt32Reader(new HpcBinaryReader(handle, port)); } public override HpcRecordWriter MakeWriter(NativeBlockStream nativeStream) { return new HpcRecordInt32Writer(new HpcBinaryWriter(nativeStream)); } public override HpcRecordWriter MakeWriter(IntPtr handle, UInt32 port, Int32 buffSize) { return new HpcRecordInt32Writer(new HpcBinaryWriter(handle, port, buffSize)); } } public sealed class HpcLinqFactoryUInt32 : HpcLinqFactory { public override HpcRecordReader MakeReader(NativeBlockStream nativeStream) { return new HpcRecordUInt32Reader(new HpcBinaryReader(nativeStream)); } public override HpcRecordReader MakeReader(IntPtr handle, UInt32 port) { return new HpcRecordUInt32Reader(new HpcBinaryReader(handle, port)); } public override HpcRecordWriter MakeWriter(NativeBlockStream nativeStream) { return new HpcRecordUInt32Writer(new HpcBinaryWriter(nativeStream)); } public override HpcRecordWriter MakeWriter(IntPtr handle, UInt32 port, Int32 buffSize) { return new HpcRecordUInt32Writer(new HpcBinaryWriter(handle, port, buffSize)); } } public sealed class HpcLinqFactoryInt64 : HpcLinqFactory { public override HpcRecordReader MakeReader(NativeBlockStream nativeStream) { return new HpcRecordInt64Reader(new HpcBinaryReader(nativeStream)); } public override HpcRecordReader MakeReader(IntPtr handle, UInt32 port) { return new HpcRecordInt64Reader(new HpcBinaryReader(handle, port)); } public override HpcRecordWriter MakeWriter(NativeBlockStream nativeStream) { return new HpcRecordInt64Writer(new HpcBinaryWriter(nativeStream)); } public override HpcRecordWriter MakeWriter(IntPtr handle, UInt32 port, Int32 buffSize) { return new HpcRecordInt64Writer(new HpcBinaryWriter(handle, port, buffSize)); } } public sealed class HpcLinqFactoryUInt64 : HpcLinqFactory { public override HpcRecordReader MakeReader(NativeBlockStream nativeStream) { return new HpcRecordUInt64Reader(new HpcBinaryReader(nativeStream)); } public override HpcRecordReader MakeReader(IntPtr handle, UInt32 port) { return new HpcRecordUInt64Reader(new HpcBinaryReader(handle, port)); } public override HpcRecordWriter MakeWriter(NativeBlockStream nativeStream) { return new HpcRecordUInt64Writer(new HpcBinaryWriter(nativeStream)); } public override HpcRecordWriter MakeWriter(IntPtr handle, UInt32 port, Int32 buffSize) { return new HpcRecordUInt64Writer(new HpcBinaryWriter(handle, port, buffSize)); } } public sealed class HpcLinqFactoryFloat : HpcLinqFactory { public override HpcRecordReader MakeReader(NativeBlockStream nativeStream) { return new HpcRecordFloatReader(new HpcBinaryReader(nativeStream)); } public override HpcRecordReader MakeReader(IntPtr handle, UInt32 port) { return new HpcRecordFloatReader(new HpcBinaryReader(handle, port)); } public override HpcRecordWriter MakeWriter(NativeBlockStream nativeStream) { return new HpcRecordFloatWriter(new HpcBinaryWriter(nativeStream)); } public override HpcRecordWriter MakeWriter(IntPtr handle, UInt32 port, Int32 buffSize) { return new HpcRecordFloatWriter(new HpcBinaryWriter(handle, port, buffSize)); } } public sealed class HpcLinqFactoryDecimal : HpcLinqFactory { public override HpcRecordReader MakeReader(NativeBlockStream nativeStream) { return new HpcRecordDecimalReader(new HpcBinaryReader(nativeStream)); } public override HpcRecordReader MakeReader(IntPtr handle, UInt32 port) { return new HpcRecordDecimalReader(new HpcBinaryReader(handle, port)); } public override HpcRecordWriter MakeWriter(NativeBlockStream nativeStream) { return new HpcRecordDecimalWriter(new HpcBinaryWriter(nativeStream)); } public override HpcRecordWriter MakeWriter(IntPtr handle, UInt32 port, Int32 buffSize) { return new HpcRecordDecimalWriter(new HpcBinaryWriter(handle, port, buffSize)); } } public sealed class HpcLinqFactoryDouble : HpcLinqFactory { public override HpcRecordReader MakeReader(NativeBlockStream nativeStream) { return new HpcRecordDoubleReader(new HpcBinaryReader(nativeStream)); } public override HpcRecordReader MakeReader(IntPtr handle, UInt32 port) { return new HpcRecordDoubleReader(new HpcBinaryReader(handle, port)); } public override HpcRecordWriter MakeWriter(NativeBlockStream nativeStream) { return new HpcRecordDoubleWriter(new HpcBinaryWriter(nativeStream)); } public override HpcRecordWriter MakeWriter(IntPtr handle, UInt32 port, Int32 buffSize) { return new HpcRecordDoubleWriter(new HpcBinaryWriter(handle, port, buffSize)); } } public sealed class HpcLinqFactoryDateTime : HpcLinqFactory { public override HpcRecordReader MakeReader(NativeBlockStream nativeStream) { return new HpcRecordDateTimeReader(new HpcBinaryReader(nativeStream)); } public override HpcRecordReader MakeReader(IntPtr handle, UInt32 port) { return new HpcRecordDateTimeReader(new HpcBinaryReader(handle, port)); } public override HpcRecordWriter MakeWriter(NativeBlockStream nativeStream) { return new HpcRecordDateTimeWriter(new HpcBinaryWriter(nativeStream)); } public override HpcRecordWriter MakeWriter(IntPtr handle, UInt32 port, Int32 buffSize) { return new HpcRecordDateTimeWriter(new HpcBinaryWriter(handle, port, buffSize)); } } public sealed class HpcLinqFactoryString : HpcLinqFactory { public override HpcRecordReader MakeReader(NativeBlockStream nativeStream) { return new HpcRecordStringReader(new HpcBinaryReader(nativeStream)); } public override HpcRecordReader MakeReader(IntPtr handle, UInt32 port) { return new HpcRecordStringReader(new HpcBinaryReader(handle, port)); } public override HpcRecordWriter MakeWriter(NativeBlockStream nativeStream) { return new HpcRecordStringWriter(new HpcBinaryWriter(nativeStream)); } public override HpcRecordWriter MakeWriter(IntPtr handle, UInt32 port, Int32 buffSize) { return new HpcRecordStringWriter(new HpcBinaryWriter(handle, port, buffSize)); } } public sealed class HpcLinqFactoryGuid : HpcLinqFactory { public override HpcRecordReader MakeReader(NativeBlockStream nativeStream) { return new HpcRecordGuidReader(new HpcBinaryReader(nativeStream)); } public override HpcRecordReader MakeReader(IntPtr handle, UInt32 port) { return new HpcRecordGuidReader(new HpcBinaryReader(handle, port)); } public override HpcRecordWriter MakeWriter(NativeBlockStream nativeStream) { return new HpcRecordGuidWriter(new HpcBinaryWriter(nativeStream)); } public override HpcRecordWriter MakeWriter(IntPtr handle, UInt32 port, Int32 buffSize) { return new HpcRecordGuidWriter(new HpcBinaryWriter(handle, port, buffSize)); } } public sealed class HpcLinqFactoryLineRecord : HpcLinqFactory { public override HpcRecordReader MakeReader(NativeBlockStream nativeStream) { return new HpcRecordTextReader(new HpcTextReader(nativeStream)); } public override HpcRecordReader MakeReader(IntPtr handle, UInt32 port) { return new HpcRecordTextReader(new HpcTextReader(handle, port)); } public override HpcRecordWriter MakeWriter(NativeBlockStream nativeStream) { return new HpcRecordTextWriter(new HpcTextWriter(nativeStream)); } public override HpcRecordWriter MakeWriter(IntPtr handle, UInt32 port, Int32 buffSize) { return new HpcRecordTextWriter(new HpcTextWriter(handle, port, buffSize)); } } public sealed class HpcLinqFactorySqlDateTime : HpcLinqFactory { public override HpcRecordReader MakeReader(NativeBlockStream nativeStream) { return new HpcRecordSqlDateTimeReader(new HpcBinaryReader(nativeStream)); } public override HpcRecordReader MakeReader(IntPtr handle, UInt32 port) { return new HpcRecordSqlDateTimeReader(new HpcBinaryReader(handle, port)); } public override HpcRecordWriter MakeWriter(NativeBlockStream nativeStream) { return new HpcRecordSqlDateTimeWriter(new HpcBinaryWriter(nativeStream)); } public override HpcRecordWriter MakeWriter(IntPtr handle, UInt32 port, Int32 buffSize) { return new HpcRecordSqlDateTimeWriter(new HpcBinaryWriter(handle, port, buffSize)); } } }