**** Merged from MCS ****
[mono-project.git] / mcs / class / Mono.PEToolkit / metadata / Row.cs
blob4716cbfd080dd9306c06d771c64d848263936c01
1 /*
2 * Copyright (c) 2002 Sergey Chaban <serge@wildwestsoftware.com>
3 */
5 using System;
6 using System.IO;
8 namespace Mono.PEToolkit.Metadata {
10 /// <summary>
11 /// Metadata row interface.
12 /// </summary>
13 public interface Row {
15 /// <summary>
16 /// Number of colums in a row.
17 /// </summary>
18 int NumberOfColumns {get;}
20 int Size {get;}
22 /// <summary>
23 /// Returns reference to parent table or null.
24 /// </summary>
25 MDTable Table {get;}
27 void FromRawData(byte [] buff, int offs);
29 void Dump(TextWriter writer);
34 public sealed class NullRow : Row {
35 public static readonly NullRow Instance;
37 static NullRow()
39 Instance = new NullRow();
42 private NullRow()
46 public int NumberOfColumns {
47 get {
48 return 0;
52 public int Size {
53 get {
54 return 0;
58 public MDTable Table {
59 get {
60 return null;
64 public void FromRawData(byte [] buff, int offs)
68 public void Dump(TextWriter writer)
70 writer.WriteLine("Null row.");