Skip to content

Commit

Permalink
nhibernateGH-3530: Add a class for wrapping a DbDataReader.
Browse files Browse the repository at this point in the history
  • Loading branch information
David Ellingsworth authored and David Ellingsworth committed Jun 11, 2024
1 parent 445d5a9 commit fa84e8a
Show file tree
Hide file tree
Showing 2 changed files with 198 additions and 0 deletions.
158 changes: 158 additions & 0 deletions src/NHibernate/AdoNet/DbDataReaderWrapper.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
using System;
using System.Collections;
using System.Data.Common;

namespace NHibernate.AdoNet
{
public abstract partial class DbDataReaderWrapper : DbDataReader
{
protected DbDataReader DataReader { get; private set; }

public override int Depth => DataReader.Depth;

public override int FieldCount => DataReader.FieldCount;

public override bool HasRows => DataReader.HasRows;

public override bool IsClosed => DataReader.IsClosed;

public override int RecordsAffected => DataReader.RecordsAffected;

public override object this[string name] => DataReader[name];

public override object this[int ordinal] => DataReader[ordinal];

public DbDataReaderWrapper(DbDataReader dbDataReader)
{
DataReader = dbDataReader;
}

public override bool GetBoolean(int ordinal)
{
return DataReader.GetBoolean(ordinal);
}

public override byte GetByte(int ordinal)
{
return DataReader.GetByte(ordinal);
}

public override long GetBytes(int ordinal, long dataOffset, byte[] buffer, int bufferOffset, int length)
{
return DataReader.GetBytes(ordinal, dataOffset, buffer, bufferOffset, length);
}

public override char GetChar(int ordinal)
{
return DataReader.GetChar(ordinal);
}

public override long GetChars(int ordinal, long dataOffset, char[] buffer, int bufferOffset, int length)
{
return DataReader.GetChars(ordinal, dataOffset, buffer, bufferOffset, length);
}

public override string GetDataTypeName(int ordinal)
{
return DataReader.GetDataTypeName(ordinal);
}

public override DateTime GetDateTime(int ordinal)
{
return DataReader.GetDateTime(ordinal);
}

public override decimal GetDecimal(int ordinal)
{
return DataReader.GetDecimal(ordinal);
}

public override double GetDouble(int ordinal)
{
return DataReader.GetDouble(ordinal);
}

public override IEnumerator GetEnumerator()
{
while (Read())
{
yield return this;
}
}

public override System.Type GetFieldType(int ordinal)
{
return DataReader.GetFieldType(ordinal);
}

public override float GetFloat(int ordinal)
{
return DataReader.GetFloat(ordinal);
}

public override Guid GetGuid(int ordinal)
{
return DataReader.GetGuid(ordinal);
}

public override short GetInt16(int ordinal)
{
return DataReader.GetInt16(ordinal);
}

public override int GetInt32(int ordinal)
{
return DataReader.GetInt32(ordinal);
}

public override long GetInt64(int ordinal)
{
return DataReader.GetInt64(ordinal);
}

public override string GetName(int ordinal)
{
return DataReader.GetName(ordinal);
}

public override int GetOrdinal(string name)
{
return DataReader.GetOrdinal(name);
}

public override string GetString(int ordinal)
{
return DataReader.GetString(ordinal);
}

public override object GetValue(int ordinal)
{
return DataReader.GetValue(ordinal);
}

public override int GetValues(object[] values)
{
return DataReader.GetValues(values);
}

public override bool IsDBNull(int ordinal)
{
return DataReader.IsDBNull(ordinal);
}

public override bool NextResult()
{
return DataReader.NextResult();
}

public override bool Read()
{
return DataReader.Read();
}

public override void Close()
{
DataReader.Close();
}
}
}
40 changes: 40 additions & 0 deletions src/NHibernate/Async/AdoNet/DbDataReaderWrapper.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by AsyncGenerator.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------


using System;
using System.Collections;
using System.Data.Common;

namespace NHibernate.AdoNet
{
using System.Threading.Tasks;
using System.Threading;
public abstract partial class DbDataReaderWrapper : DbDataReader
{

public override Task<bool> NextResultAsync(CancellationToken cancellationToken)
{
if (cancellationToken.IsCancellationRequested)
{
return Task.FromCanceled<bool>(cancellationToken);
}
return DataReader.NextResultAsync(cancellationToken);
}

public override Task<bool> ReadAsync(CancellationToken cancellationToken)
{
if (cancellationToken.IsCancellationRequested)
{
return Task.FromCanceled<bool>(cancellationToken);
}
return DataReader.ReadAsync(cancellationToken);
}
}
}

0 comments on commit fa84e8a

Please sign in to comment.