File: System\Data\Common\DbDataSourceEnumerator.cs
Project: ndp\fx\src\data\System.Data.csproj (System.Data)
//------------------------------------------------------------------------------
// <copyright file="DbDataSourceEnumerator.cs" company="Microsoft">
//      Copyright (c) Microsoft Corporation.  All rights reserved.
// </copyright>
// <owner current="true" primary="true">Microsoft</owner>
// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
 
namespace System.Data.Common {
 
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Diagnostics;
    using System.Threading;
 
    public abstract class DbDataSourceEnumerator { // V1.2.3300
    
        protected DbDataSourceEnumerator() { // V1.2.3300
        }
 
 
        abstract public DataTable GetDataSources(); // V1.2.3300
 
        /*
        virtual public IAsyncResult BeginGetDataSources(AsyncCallback callback, object asyncStateObject) { // V1.2.3300
            DbEnumSynchronousAsyncResult asyncResult = new DbEnumSynchronousAsyncResult(callback, asyncStateObject);
            try {
                asyncResult._dataTable = GetElements();
                asyncResult.SetCompletedSynchronously();
            }
            catch(DataAdapterException e) {
                ADP.TraceExceptionForCapture(e);
                asyncResult.ExceptionObject = e;
            }
            if (null == asyncResult._dataTable) {
                throw ADP.DataAdapter("no datatable");
            }
            if (null != callback) {
                callback(asyncResult);
            }
            return asyncResult;
        }
 
        virtual public DataTable EndGetDataSources(IAsyncResult asyncResult) { // V1.2.3300
            ADP.CheckArgumentNull(asyncResult, "asyncResult");
            DbEnumSynchronousAsyncResult ar = (asyncResult as DbEnumSynchronousAsyncResult);
            if (ar._endXxxCalled) {
                throw ADP.InvalidOperation("EndGetElements called twice");
            }
            ar._endXxxCalled = true;
 
            if (null != ar.ExceptionObject) {
                throw ar.ExceptionObject;
            }
            return ar._dataTable;
        }
 
        sealed private class DbEnumSynchronousAsyncResult : DbAsyncResult {
            internal bool      _endXxxCalled;
            internal DataTable _dataTable;
 
            internal DbEnumSynchronousAsyncResult(AsyncCallback callback, Object asyncStateObject) : base(null, callback, asyncStateObject) {
            }
        }
        */
    }
}