Updates and fixes.
[mono.git] / mcs / class / corlib / System.Reflection.Emit / AssemblyBuilder.cs
1 using System;
2 using System.Reflection;
3 using System.Resources;
4 using System.IO;
5 using System.Security.Policy;
6 using System.Runtime.Serialization;
7 using System.Globalization;
8 using System.Runtime.CompilerServices;
9
10 namespace System.Reflection.Emit {
11         public sealed class AssemblyBuilder : Assembly {
12                 private IntPtr _impl;
13                 private MethodInfo entry_point;
14
15                 public override string CodeBase {get {return null;}}
16                 public override MethodInfo EntryPoint {get {return entry_point;}}
17
18                 public override string Location {get {return null;}}
19
20
21                 public void AddResourceFile( string name, string fileName) {
22                 }
23                 public void AddResourceFile( string name, string fileName, ResourceAttributes attribute) {
24                 }
25                 [MethodImplAttribute(MethodImplOptions.InternalCall)]
26                 private static extern ModuleBuilder defineModule (AssemblyBuilder ab, string name, string filename);
27                 
28                 public ModuleBuilder DefineDynamicModule( string name) {
29                         return null;
30                 }
31                 public ModuleBuilder DefineDynamicModule( string name, bool emitSymbolInfo) {
32                         return null;
33                 }
34                 public ModuleBuilder DefineDynamicModule( string name, string fileName) {
35                         return defineModule (this, name, fileName);
36                 }
37                 public ModuleBuilder DefineDynamicModule( string name, string fileName, bool emitSymbolInfo) {
38                         return null;
39                 }
40                 public IResourceWriter DefineResource( string name, string description, string fileName) {
41                         return null;
42                 }
43                 public IResourceWriter DefineResource( string name, string description, string fileName, ResourceAttributes attribute) {
44                         return null;
45                 }
46                 public void DefineUnmanagedResource( byte[] resource) {
47                 }
48                 public void DefineUnmanagedResource( string resourceFileName) {
49                 }
50                 public void DefineVersionInfoResource() {
51                 }
52                 public void DefineVersionInfoResource( string product, string productVersion, string company, string copyright, string trademark) {
53                 }
54                 public ModuleBuilder GetDynamicModule( string name) {
55                         return null;
56                 }
57                 public override Type[] GetExportedTypes() {
58                         return null;
59                 }
60                 public override FileStream GetFile( string name) {
61                         return null;
62                 }
63                 /*public virtual FileStream[] GetFiles() {
64                         return null;
65                 }
66                 public override FileStream[] GetFiles( bool getResourceModules) {
67                         return null;
68                 }*/
69                 public Module[] GetLoadedModules() {
70                         return null;
71                 }
72                 public Module[] GetLoadedModules( bool getResourceModules) {
73                         return null;
74                 }
75                 /*public virtual ManifestResourceInfo GetManifestResourceInfo( string resourceName) {
76                         return null;
77                 }
78                 public virtual string[] GetManifestResourceNames() {
79                         return null;
80                 }
81                 public virtual Stream GetManifestResourceStream( string name) {
82                         return null;
83                 }
84                 public virtual Stream GetManifestResourceStream( Type type, string name) {
85                         return null;
86                 }*/
87                 public Module GetModule( string name) {
88                         return null;
89                 }
90                 public Module[] GetModules() {
91                         return null;
92                 }
93                 public Module[] GetModules( bool getResourceModules) {
94                         return null;
95                 }
96                 /*public virtual AssemblyName GetName() {
97                         return null;
98                 }
99                 public virtual AssemblyName GetName( bool copiedName) {
100                         return null;
101                 }
102                 public virtual void GetObjectData( SerializationInfo info, StreamingContext context) {
103                 }*/
104                 public AssemblyName[] GetReferencedAssemblies() {
105                         return null;
106                 }
107                 public Assembly GetSatelliteAssembly( CultureInfo culture) {
108                         return null;
109                 }
110
111                 public Assembly GetSatelliteAssembly( CultureInfo culture, Version version) {
112                         return null;
113                 }
114                 /*public virtual Type GetType( string name) {
115                         return null;
116                 }
117                 public virtual Type GetType( string name, bool throwOnError) {
118                         return null;
119                 }*/
120                 public Type GetType( string name, bool throwOnError, bool ignoreCase) {
121                         return null;
122                 }
123                 /*public virtual Type[] GetTypes() {
124                         return null;
125                 }
126                 public virtual bool IsDefined( Type attributeType, bool inherit) {
127                         return false;
128                 }*/
129                 public static Assembly Load( AssemblyName assemblyRef) {
130                         return null;
131                 }
132
133                 public static Assembly Load( byte[] rawAssembly) {
134                         return null;
135                 }
136
137                 public static Assembly Load( string assemblyString) {
138                         return null;
139                 }
140
141                 public static Assembly Load( AssemblyName assemblyRef, Evidence assemblySecurity) {
142                         return null;
143                 }
144
145                 public static Assembly Load( byte[] rawAssembly, byte[] rawSymbolStore) {
146                         return null;
147                 }
148
149                 public static Assembly Load( string assemblyString, Evidence assemblySecurity) {
150                         return null;
151                 }
152
153                 public static Assembly Load( byte[] rawAssembly, byte[] rawSymbolStore, Evidence securityEvidence) {
154                         return null;
155                 }
156                 public static Assembly LoadFrom( string assemblyFile) {
157                         return null;
158                 }
159
160                 public static Assembly LoadFrom( string assemblyFile, Evidence securityEvidence) {
161                         return null;
162                 }
163                 public Module LoadModule( string moduleName, byte[] rawModule) {
164                         return null;
165                 }
166
167                 public Module LoadModule( string moduleName, byte[] rawModule, byte[] rawSymbolStore) {
168                         return null;
169                 }
170                 public override string ToString() {
171                         return "AssemblyBuilder";
172                 }
173                 
174                 [MethodImplAttribute(MethodImplOptions.InternalCall)]
175                 private static extern int getDataChunk (AssemblyBuilder ab, int type, byte[] buf);
176
177                 public void Save( string assemblyFileName) {
178                         byte[] buf = new byte[8192];
179                         FileStream file = new FileStream (assemblyFileName, FileMode.OpenOrCreate, FileAccess.Write);
180                         int count;
181
182                         count = getDataChunk (this, 0, buf);
183                         if (count != 0) {
184                                 file.Write (buf, 0, count);
185                                 count = getDataChunk (this, 1, buf); /* may be a too small buffer */
186                                 file.Write (buf, 0, count);
187                         }
188
189                         file.Close ();
190                 }
191                 public void SetEntryPoint(MethodInfo entryMethod) {
192                         entry_point = entryMethod;
193                 }
194
195         }
196 }