Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Rename the SQLiteVirtualTableCursorEnumerable class to SQLiteVirtualTableCursorEnumerator. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
4e38ea39a310f642bc26b42d4ee8f766 |
User & Date: | mistachkin 2013-06-26 03:18:01.674 |
Context
2013-06-26
| ||
04:23 | Add generic variants of the SQLiteModuleEnumerable and SQLiteVirtualTableCursorEnumerator classes. check-in: 7da399e402 user: mistachkin tags: trunk | |
03:18 | Rename the SQLiteVirtualTableCursorEnumerable class to SQLiteVirtualTableCursorEnumerator. check-in: 4e38ea39a3 user: mistachkin tags: trunk | |
02:20 | Modify the result code handling performed by the SQLiteModuleNoop class in order to make it more flexible for use with derived classes. Rename the ReturnCode property of the SQLiteException class to ResultCode. check-in: d2d80220a8 user: mistachkin tags: trunk | |
Changes
Changes to System.Data.SQLite/SQLiteModuleEnumerable.cs.
1 2 3 4 5 6 7 8 9 10 11 12 | /******************************************************** * ADO.NET 2.0 Data Provider for SQLite Version 3.X * Written by Joe Mistachkin (joe@mistachkin.com) * * Released to the public domain, use at your own risk! ********************************************************/ using System.Collections; using System.Globalization; namespace System.Data.SQLite { | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | /******************************************************** * ADO.NET 2.0 Data Provider for SQLite Version 3.X * Written by Joe Mistachkin (joe@mistachkin.com) * * Released to the public domain, use at your own risk! ********************************************************/ using System.Collections; using System.Globalization; namespace System.Data.SQLite { #region SQLiteVirtualTableCursorEnumerator Class /// <summary> /// This class represents a virtual table cursor to be used with the /// <see cref="SQLiteModuleEnumerable" /> class. It is not sealed and may /// be used as the base class for any user-defined virtual table cursor /// class that wraps an <see cref="IEnumerator" /> object instance. /// </summary> public class SQLiteVirtualTableCursorEnumerator : SQLiteVirtualTableCursor /* NOT SEALED */ { #region Private Data /// <summary> /// The <see cref="IEnumerator" /> instance provided when this cursor /// was created. /// </summary> |
︙ | ︙ | |||
46 47 48 49 50 51 52 | /// The <see cref="SQLiteVirtualTable" /> object instance associated /// with this object instance. /// </param> /// <param name="enumerator"> /// The <see cref="IEnumerator" /> instance to expose as a virtual /// table cursor. /// </param> | | | 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | /// The <see cref="SQLiteVirtualTable" /> object instance associated /// with this object instance. /// </param> /// <param name="enumerator"> /// The <see cref="IEnumerator" /> instance to expose as a virtual /// table cursor. /// </param> public SQLiteVirtualTableCursorEnumerator( SQLiteVirtualTable table, IEnumerator enumerator ) : base(table) { this.enumerator = enumerator; this.endOfEnumerator = true; |
︙ | ︙ | |||
156 157 158 159 160 161 162 | /// </summary> private void CheckDisposed() /* throw */ { #if THROW_ON_DISPOSED if (disposed) { throw new ObjectDisposedException( | | | 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 | /// </summary> private void CheckDisposed() /* throw */ { #if THROW_ON_DISPOSED if (disposed) { throw new ObjectDisposedException( typeof(SQLiteVirtualTableCursorEnumerator).Name); } #endif } /////////////////////////////////////////////////////////////////////// /// <summary> |
︙ | ︙ | |||
207 208 209 210 211 212 213 | #endregion /////////////////////////////////////////////////////////////////////////// #region SQLiteModuleEnumerable Class /// <summary> /// This class implements a virtual table module that exposes an | | | > | | 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 | #endregion /////////////////////////////////////////////////////////////////////////// #region SQLiteModuleEnumerable Class /// <summary> /// This class implements a virtual table module that exposes an /// <see cref="IEnumerable" /> object instance as a read-only virtual /// table. It is not sealed and may be used as the base class for any /// user-defined virtual table class that wraps an /// <see cref="IEnumerable" /> object instance. /// </summary> public class SQLiteModuleEnumerable : SQLiteModuleNoop /* NOT SEALED */ { #region Private Constants /// <summary> /// The CREATE TABLE statement used to declare the schema for the /// virtual table. |
︙ | ︙ | |||
276 277 278 279 280 281 282 | /// <returns> /// The value of <see cref="SQLiteErrorCode.Error"/>. /// </returns> protected virtual SQLiteErrorCode CursorTypeMismatchError( SQLiteVirtualTableCursor cursor ) { | | | 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 | /// <returns> /// The value of <see cref="SQLiteErrorCode.Error"/>. /// </returns> protected virtual SQLiteErrorCode CursorTypeMismatchError( SQLiteVirtualTableCursor cursor ) { SetCursorError(cursor, "not an \"enumerator\" cursor"); return SQLiteErrorCode.Error; } /////////////////////////////////////////////////////////////////////// /// <summary> /// Sets the table error message to one that indicates the virtual |
︙ | ︙ | |||
527 528 529 530 531 532 533 | public override SQLiteErrorCode Open( SQLiteVirtualTable table, ref SQLiteVirtualTableCursor cursor ) { CheckDisposed(); | | | 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 | public override SQLiteErrorCode Open( SQLiteVirtualTable table, ref SQLiteVirtualTableCursor cursor ) { CheckDisposed(); cursor = new SQLiteVirtualTableCursorEnumerator( table, enumerable.GetEnumerator()); return SQLiteErrorCode.Ok; } /////////////////////////////////////////////////////////////////////// |
︙ | ︙ | |||
550 551 552 553 554 555 556 | /// </returns> public override SQLiteErrorCode Close( SQLiteVirtualTableCursor cursor ) { CheckDisposed(); | | | | | | 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 | /// </returns> public override SQLiteErrorCode Close( SQLiteVirtualTableCursor cursor ) { CheckDisposed(); SQLiteVirtualTableCursorEnumerator enumeratorCursor = cursor as SQLiteVirtualTableCursorEnumerator; if (enumeratorCursor == null) return CursorTypeMismatchError(cursor); enumeratorCursor.Close(); return SQLiteErrorCode.Ok; } /////////////////////////////////////////////////////////////////////// /// <summary> /// See the <see cref="ISQLiteManagedModule.Filter" /> method. |
︙ | ︙ | |||
589 590 591 592 593 594 595 | int indexNumber, string indexString, SQLiteValue[] values ) { CheckDisposed(); | | | | | | | | 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 | int indexNumber, string indexString, SQLiteValue[] values ) { CheckDisposed(); SQLiteVirtualTableCursorEnumerator enumeratorCursor = cursor as SQLiteVirtualTableCursorEnumerator; if (enumeratorCursor == null) return CursorTypeMismatchError(cursor); enumeratorCursor.Filter(indexNumber, indexString, values); enumeratorCursor.Reset(); /* NO RESULT */ enumeratorCursor.MoveNext(); /* IGNORED */ return SQLiteErrorCode.Ok; } /////////////////////////////////////////////////////////////////////// /// <summary> |
︙ | ︙ | |||
619 620 621 622 623 624 625 | /// </returns> public override SQLiteErrorCode Next( SQLiteVirtualTableCursor cursor ) { CheckDisposed(); | | | | | | | | | | | 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 | /// </returns> public override SQLiteErrorCode Next( SQLiteVirtualTableCursor cursor ) { CheckDisposed(); SQLiteVirtualTableCursorEnumerator enumeratorCursor = cursor as SQLiteVirtualTableCursorEnumerator; if (enumeratorCursor == null) return CursorTypeMismatchError(cursor); if (enumeratorCursor.EndOfEnumerator) return CursorEndOfEnumeratorError(cursor); enumeratorCursor.MoveNext(); /* IGNORED */ return SQLiteErrorCode.Ok; } /////////////////////////////////////////////////////////////////////// /// <summary> /// See the <see cref="ISQLiteManagedModule.Eof" /> method. /// </summary> /// <param name="cursor"> /// See the <see cref="ISQLiteManagedModule.Eof" /> method. /// </param> /// <returns> /// See the <see cref="ISQLiteManagedModule.Eof" /> method. /// </returns> public override bool Eof( SQLiteVirtualTableCursor cursor ) { CheckDisposed(); SQLiteVirtualTableCursorEnumerator enumeratorCursor = cursor as SQLiteVirtualTableCursorEnumerator; if (enumeratorCursor == null) return ResultCodeToEofResult(CursorTypeMismatchError(cursor)); return enumeratorCursor.EndOfEnumerator; } /////////////////////////////////////////////////////////////////////// /// <summary> /// See the <see cref="ISQLiteManagedModule.Column" /> method. /// </summary> |
︙ | ︙ | |||
683 684 685 686 687 688 689 | SQLiteVirtualTableCursor cursor, SQLiteContext context, int index ) { CheckDisposed(); | | | | | | | 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 | SQLiteVirtualTableCursor cursor, SQLiteContext context, int index ) { CheckDisposed(); SQLiteVirtualTableCursorEnumerator enumeratorCursor = cursor as SQLiteVirtualTableCursorEnumerator; if (enumeratorCursor == null) return CursorTypeMismatchError(cursor); if (enumeratorCursor.EndOfEnumerator) return CursorEndOfEnumeratorError(cursor); object current = enumeratorCursor.Current; if (current != null) context.SetString(GetStringFromObject(current)); else context.SetNull(); return SQLiteErrorCode.Ok; |
︙ | ︙ | |||
723 724 725 726 727 728 729 | public override SQLiteErrorCode RowId( SQLiteVirtualTableCursor cursor, ref long rowId ) { CheckDisposed(); | | | | | | | 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 | public override SQLiteErrorCode RowId( SQLiteVirtualTableCursor cursor, ref long rowId ) { CheckDisposed(); SQLiteVirtualTableCursorEnumerator enumeratorCursor = cursor as SQLiteVirtualTableCursorEnumerator; if (enumeratorCursor == null) return CursorTypeMismatchError(cursor); if (enumeratorCursor.EndOfEnumerator) return CursorEndOfEnumeratorError(cursor); object current = enumeratorCursor.Current; rowId = GetRowIdFromObject(current); return SQLiteErrorCode.Ok; } /////////////////////////////////////////////////////////////////////// |
︙ | ︙ |