~alexreg/mathtexdotnet/0.1

« back to all changes in this revision

Viewing changes to TexDotNet/TrackedTextReader.cs

  • Committer: Alex Regueiro
  • Date: 2009-08-07 23:14:32 UTC
  • Revision ID: alexreg@gmail.com-20090807231432-b4enxrxowf8ertnj
Initial commit.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
using System;
 
2
using System.Collections.Generic;
 
3
using System.IO;
 
4
using System.Linq;
 
5
using System.Text;
 
6
 
 
7
namespace TexDotNet
 
8
{
 
9
    public class TrackedTextReader : TextReader
 
10
    {
 
11
        public TrackedTextReader(TextReader baseTextReader)
 
12
            : base()
 
13
        {
 
14
            this.BaseTextReader = baseTextReader;
 
15
        }
 
16
 
 
17
        public int Position
 
18
        {
 
19
            get;
 
20
            private set;
 
21
        }
 
22
 
 
23
        public TextReader BaseTextReader
 
24
        {
 
25
            get;
 
26
            private set;
 
27
        }
 
28
 
 
29
        protected override void Dispose(bool disposing)
 
30
        {
 
31
            try
 
32
            {
 
33
                this.BaseTextReader.Close();
 
34
            }
 
35
            finally
 
36
            {
 
37
                base.Dispose(disposing);
 
38
            }
 
39
        }
 
40
 
 
41
        public override object InitializeLifetimeService()
 
42
        {
 
43
            return this.BaseTextReader.InitializeLifetimeService();
 
44
        }
 
45
 
 
46
        public override System.Runtime.Remoting.ObjRef CreateObjRef(Type requestedType)
 
47
        {
 
48
            return this.BaseTextReader.CreateObjRef(requestedType);
 
49
        }
 
50
 
 
51
        public override int Peek()
 
52
        {
 
53
            return this.BaseTextReader.Peek();
 
54
        }
 
55
 
 
56
        public override int Read()
 
57
        {
 
58
            this.Position++;
 
59
            return this.BaseTextReader.Read();
 
60
        }
 
61
 
 
62
        public override bool Equals(object obj)
 
63
        {
 
64
            return this.BaseTextReader.Equals(obj);
 
65
        }
 
66
 
 
67
        public override int GetHashCode()
 
68
        {
 
69
            return this.BaseTextReader.GetHashCode();
 
70
        }
 
71
 
 
72
    }
 
73
}