Update Reference Sources to .NET Framework 4.6.1
[mono.git] / mcs / class / referencesource / System.Data / System / Data / Common / DbDataSourceEnumerator.cs
1 //------------------------------------------------------------------------------
2 // <copyright file="DbDataSourceEnumerator.cs" company="Microsoft">
3 //      Copyright (c) Microsoft Corporation.  All rights reserved.
4 // </copyright>
5 // <owner current="true" primary="true">[....]</owner>
6 // <owner current="true" primary="false">[....]</owner>
7 //------------------------------------------------------------------------------
8
9 namespace System.Data.Common {
10
11     using System;
12     using System.Collections;
13     using System.ComponentModel;
14     using System.Data;
15     using System.Diagnostics;
16     using System.Threading;
17
18     public abstract class DbDataSourceEnumerator { // V1.2.3300
19     
20         protected DbDataSourceEnumerator() { // V1.2.3300
21         }
22
23
24         abstract public DataTable GetDataSources(); // V1.2.3300
25
26         /*
27         virtual public IAsyncResult BeginGetDataSources(AsyncCallback callback, object asyncStateObject) { // V1.2.3300
28             DbEnumSynchronousAsyncResult asyncResult = new DbEnumSynchronousAsyncResult(callback, asyncStateObject);
29             try {
30                 asyncResult._dataTable = GetElements();
31                 asyncResult.SetCompletedSynchronously();
32             }
33             catch(DataAdapterException e) {
34                 ADP.TraceExceptionForCapture(e);
35                 asyncResult.ExceptionObject = e;
36             }
37             if (null == asyncResult._dataTable) {
38                 throw ADP.DataAdapter("no datatable");
39             }
40             if (null != callback) {
41                 callback(asyncResult);
42             }
43             return asyncResult;
44         }
45
46         virtual public DataTable EndGetDataSources(IAsyncResult asyncResult) { // V1.2.3300
47             ADP.CheckArgumentNull(asyncResult, "asyncResult");
48             DbEnumSynchronousAsyncResult ar = (asyncResult as DbEnumSynchronousAsyncResult);
49             if (ar._endXxxCalled) {
50                 throw ADP.InvalidOperation("EndGetElements called twice");
51             }
52             ar._endXxxCalled = true;
53
54             if (null != ar.ExceptionObject) {
55                 throw ar.ExceptionObject;
56             }
57             return ar._dataTable;
58         }
59
60         sealed private class DbEnumSynchronousAsyncResult : DbAsyncResult {
61             internal bool      _endXxxCalled;
62             internal DataTable _dataTable;
63
64             internal DbEnumSynchronousAsyncResult(AsyncCallback callback, Object asyncStateObject) : base(null, callback, asyncStateObject) {
65             }
66         }
67         */
68     }
69 }