TextReader.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. //
  2. // System.IO.TextReader
  3. //
  4. // Author: Marcin Szczepanski ([email protected])
  5. //
  6. // TODO: Implement the Thread Safe stuff
  7. //
  8. using System;
  9. namespace System.IO {
  10. [Serializable]
  11. public abstract class TextReader : MarshalByRefObject, IDisposable {
  12. protected TextReader() { }
  13. public static readonly TextReader Null;
  14. public virtual void Close()
  15. {
  16. Dispose(true);
  17. }
  18. void System.IDisposable.Dispose()
  19. {
  20. Dispose(true);
  21. }
  22. protected virtual void Dispose( bool disposing )
  23. {
  24. return;
  25. }
  26. public virtual int Peek()
  27. {
  28. return -1;
  29. }
  30. public virtual int Read()
  31. {
  32. return -1;
  33. }
  34. public virtual int Read (char[] buffer, int index, int count)
  35. {
  36. int c, i;
  37. for (i = 0; i < count; i++) {
  38. if ((c = Read ()) == -1)
  39. return i;
  40. buffer [index + i] = (char)c;
  41. }
  42. return i;
  43. }
  44. public virtual int ReadBlock (char [] buffer, int index, int count)
  45. {
  46. int read_count = 0;
  47. do {
  48. read_count = Read (buffer, index, count);
  49. index += read_count;
  50. count -= read_count;
  51. } while (read_count != 0 && count > 0);
  52. return read_count;
  53. }
  54. public virtual string ReadLine()
  55. {
  56. return String.Empty;
  57. }
  58. public virtual string ReadToEnd()
  59. {
  60. return String.Empty;
  61. }
  62. [MonoTODO]
  63. public static TextReader Synchronized( TextReader reader )
  64. {
  65. // TODO: Implement
  66. return Null;
  67. }
  68. }
  69. }