The URL for OCL is http://sourceforge.net/projects/ocl
Intel Labs has implemented
portions of the CLI (Common Language Infrastructure) runtime library as defined
in the draft ECMA CLI specification
(For the latest public draft ECMA documents, see http://www.intel.com/ids/ecma). Objectives for this development effort are
to:
License
The source code in this
release is a snapshot of the current development efforts. It is distributed under Intel Open Source
License for OCL:
The Intel Open Source License for OCL (Open CLI
Library)
(BSD License with Export Notice)
Copyright
(c) 2001 Intel Corporation
All
rights reserved.
Redistribution
and use in source and binary forms, with or without modification, are permitted
provided that the following conditions are met:
· Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
·
Redistributions in
binary form must reproduce the above copyright notice, this list of conditions
and the following disclaimer in the documentation and/or other materials
provided with the distribution.
·
Neither the name of the
Intel Corporation nor the names of its contributors may be used to endorse or
promote products derived from this software without specific prior written
permission.
THIS
SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE INTEL OR CONTRIBUTORS BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
EXPORT
LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR
JURISDICTION. It is licensee's responsibility to comply with any export
regulations applicable in licensee's jurisdiction. Under CURRENT (May 2000)
U.S. export regulations this software is eligible for export from the U.S. and
can be downloaded by or otherwise exported or reexported worldwide EXCEPT to
U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran,
Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed
goods and services.
1)
BCL (Base Class
Library) Implementation: This package contains the current snapshot
of the Intel Labs BCL (Base Class Library) implementation. The BCL is part of the Kernel Profile as
defined in the draft ECMA CLI specification.
The status of this implementation is included in a table at the end of
this document for reference. Please
note the following:
o
Intel Labs to date has
focused only on developing the BCL APIs as they are defined in the draft CLI
ECMA standard. Many classes in this
released code are not fully implemented yet.
o
Intel Labs
automatically generated stub code for ECMA standard class libraries using the
latest draft ECMA XML library definition file available at the date of this
release. This stub code was used as the
initial baseline. This approach offered
the following benefits:
§
Intel Labs code matches
the BCL definition available in the latest draft ECMA specification. All class, interface, enum, property,
method, parameter, etc. names are aligned with what is defined in the draft
ECMA standard.
§
Summary information
available in the latest draft ECMA specification was generated in comment
format preceding all classes, interfaces, enums, properties, and methods.
§
Method parameter
information available in the latest draft ECMA specification was generated in
comment format preceding all method definitions.
§
Method exception
information available in the latest draft ECMA specification was generated in
comment format preceding all method definitions.
§
Method return value
information available in the latest draft ECMA specification was generated in
comment format preceding all method definitions.
§
As a guide to
developers, an associated ‘throw’ stub statement is generated in each method
for every exception thrown by that method, followed by a comment explaining the
exceptional condition. Example:
if
(false)
{
throw
new System.XYZException(); // Statement
describing the exceptional condition as worded in the draft ECMA library
definition.");
}
§
Also note that
automatically generated stub methods that return a non-void value return zero,
false, null, or a new object of the return type. Implementations should change these return values to what it
appropriate for the method.
§
The format of comments
within the code banners is consistent for use with Microsoft's Visual Studio
.Net Document generator. To generate the documentation for all the provided CLI
classes, open the System.sln project that is included with this release using
Visual Studio .Net (Beta 2) and select Tools -> Build Comment web Pages.
This action will generate web based browse-able documentation for all the
included CLI BCL classes.
§
Definitions of classes
within the latest draft ECMA specification contain information about additional
methods that must be implemented if implementing the Compact Profile (as
opposed to the Kernel Profile). As a convenience
to developers who may want to use this release as a basis for developing the
Compact Profile, those methods have also been generated in the BCL classes, but
are commented out. A comment precedes
each of these methods explaining which library in the Compact Profile requires
the method to be implemented.
§
Aesthetically
consistent code formatting throughout the entire library set.
o
Versioning Scheme (file
level): This versioning scheme does not
imply completion status of the source code files. For example, Interfaces and enums are 100% complete, yet have a
version number of 0.0 since the automatically generated code is complete. This scheme is used so that when updates to
the draft EMCA library specification are received, we can automatically generate
code reflecting the update and replace all files with a version number of
0.0. Please reference the code status
table below for the completion status.:
§
A version number of 0.0
is used for code not modified from its auto generated state.
§
A version number of 0.1
is used for auto generated code modified only to reconcile compiler errors.
§
A version number of 1.0
is used for code containing Intel Labs implementation.
o
The BCL cannot be
developed completely in C#. Intel Labs
factored platform specific (Operating System and Virtual Execution System)
functionality into a PAL (Platform Abstraction Layer) to consolidate OS/VES
dependencies and provide a focus point for porting the BCL to other
platforms. Developers should implement
these OS/VES interfaces to provide integration with their target OS and
VES. This layer will obviously continue
to evolve as the Library/OS/VES interaction is better understood – especially
when the libraries are integrated with a working VES. All known OS/VES dependent methods in BCL to date are enumerated
in a table at the end of this document.
The PAL currently consists of the following classes/interfaces:
§
System.PlatformAbstractionLayer.IVirtualExecutionSystem – Definition of functionality needed by the library
that can only be provided by the VES.
§
System.PlatformAbstractionLayer.IntelORP – Class that implements IVirtualExecutionSystem,
providing the requested functionality through integration with ORP (this class
contains only stub functionality at this time).
§
System.PlatformAbstractionLayer.IOperatingSystem - Definition of functionality needed by the library
that can only be provided by the underlying OS.
§
System.PlatformAbstractionLayer.Windows – Class that implements IOperatingSystem, providing
the requested functionality through calls into APIs available in Windows (this
class is a work in progress). Examples
include accessing the console and file system access.
As defined in the draft ECMA CLI specification, accessing native APIs is done
through a mechanism called P/Invoke and its library counterpart is an attribute
called System.Runtime.InteropServices.DllImport. Three classes were added from
the RIL (Runtime Infrastructure Library) in order to support the P/Invoke
mechanism used to call into native APIs (System.Runtime.InteropServices.DllImportAttribute,
System.Runtime.InteropServices.CharSet, and
System.Runtime.InteropServices.CallingConvention). These classes are not
implemented, but are included to allow for a successful compilation. Currently,
the Windows platform (Windows.cs) is dependent on two DLLs (kernel32.dll and
msvcrt.dll) – both of which are installed in the System32 directory on a
Windows 2000 build. These DLL dependencies are subject to change based on
future library development.
§
System.PlatformAbstractionLayer.Linux – Class that implements IOperatingSystem, providing
the requested functionality through calls into APIs available in Linux (this class contains only stub functionality
at this time).
§
System.PlatformAbstractionLayer.Platform – Constructs the concrete classes implementing
IVirtualExecutionSystem and IOperatingSystem for the target platform and
provides static methods to access them.
2)
Non-BCL Stub
Code: This package contains stub
code for the entire draft ECMA CLI library definition, less the BCL contained
in the previously described package. No
effort was made to compile this package, so there are likely syntactical errors
that are artifacts of the minor errors in the XML definition format and the
tool used to generate the stubs. This
package is provided as a starting point for developers wanting to complete the
entire Kernel or Compact profiles.
To sign up for a mailing
list for OCL, visit http://sourceforge.net/projects/ocl
and click ‘lists’. For now, the
ocl-general list can be used to ask questions, submit bugs, post patches, and
exchange experiences between OCL users.
OCL-V0.1.0.zip File Content
Unzip the contents of
OCL-V0.1.0.zip on your local drive.
This will create the following tree:
OCL-V0.1.0 // Root
Directory
|
Contrib-license.txt //
License for code contributors
|
License.txt //
Intel Open Source License Agreement
|
OtherLibraryStubs.zip //
Release item two described above
|
Readme.htm //
this file
|
\---OCLSourceCode
\---System // Root of
source code tree for all code contained within release item one described above
The System.sln and
System.csproj found under the ‘\OCL-V0.1.0\OCLSourceCode\System’ directory are
Visual Studio .Net (Beta 2) project files that allow developers to build the
BCL library on a Windows .Net platform. To build a System.dll under this
platform, open the System.sln file in VS .Net and select Build -> Rebuild
All. Alternatively, developers can create platform specific makefiles that
include and compile all the .cs files found in
‘\OCL-V0.1.0\OCLSourceCode\System’.
The following table shows
the status of each class within the BCL in this release.
|
Class/Interface
Names |
Completion
(as of 08/22/2001) |
Namespace |
Implementation
Notes |
|
ApplicationException |
100% |
System |
|
|
ArgumentException
|
100% |
System |
|
|
ArgumentNullException
|
100% |
System |
|
|
ArgumentOutOfRangeException |
100% |
System |
|
|
ArithmeticException
|
100% |
System |
|
|
Array |
75% |
System |
Several
methods are not completed. See source
for details.All VES dependencies factored into calls to System. PlatformAbstractionLayer. Testing pending VES integration. |
|
ArrayTypeMismatchException
|
100% |
System |
|
|
AsyncCallback |
5% |
System |
|
|
Attribute |
5% |
System |
|
|
AttributeTargets |
100% |
System |
|
|
AttributeUsageAttribute
|
5% |
System |
|
|
Boolean |
90% |
System |
|
|
Byte |
5% |
System |
|
|
Char |
100% |
System |
Only ASCII
set is considered in the implementation |
|
CLSCompliantAttribute |
5% |
System |
|
|
ArrayList |
5% |
System.Collections |
|
|
Comparer |
100% |
System.Collections |
|
|
DictionaryEntry |
5% |
System.Collections |
|
|
Hashtable |
5% |
System.Collections |
|
|
ICollection |
100% |
System.Collections |
|
|
IComparer |
100% |
System.Collections |
|
|
IDictionary |
100% |
System.Collections |
|
|
IDictionaryEnumerator |
100% |
System.Collections |
|
|
IEnumerable |
100% |
System.Collections |
|
|
IEnumerator |
100% |
System.Collections |
|
|
IHashCodeProvider |
100% |
System.Collections |
|
|
IList |
100% |
System.Collections |
|
|
Console |
95% |
System |
All code
for Console is written, but still in the testing phase. Also some changes may
need to be made once Threading (Synchronization) gets developed (see SetOut
method) |
|
Convert |
5% |
System |
|
|
DateTime |
5% |
System |
|
|
Delegate |
15% |
System |
This class
is dependent on the VES abstraction layer |
|
ConditionalAttribute |
5% |
System.Diagnostics |
|
|
DivideByZeroException
|
100% |
System |
|
|
DuplicateWaitObjectException |
100% |
System |
|
|
Enum |
5% |
System |
|
|
Environment
|
5% |
System |
|
|
EventArgs |
5% |
System |
|
|
EventHandler |
5% |
System |
|
|
Exception |
60% |
System |
VES
specific methods need to be implemented |
|
ExecutionEngineException
|
100% |
System |
|
|
FlagsAttribute |
5% |
System |
|
|
FormatException |
100% |
System |
|
|
GC |
15% |
System |
|
|
DateTimeFormatInfo |
5% |
System.Globalization |
|
|
DateTimeStyles |
100% |
System.Globalization |
|
|
NumberFormatInfo |
0% |
System.Globalization |
|
|
NumberStyles |
100% |
System.Globalization |
|
|
UnicodeCategory |
100% |
System.Globalization |
|
|
IAsyncResult |
100% |
System |
|
|
ICloneable |
100% |
System |
|
|
IComparable |
100% |
System |
|
|
IDisposable
|
100% |
System |
|
|
IFormatProvider |
100% |
System |
|
|
IFormattable |
100% |
System |
|
|
IndexOutOfRangeException
|
100% |
System |
|
|
Int16 |
5% |
System |
|
|
Int32 |
70% |
System |
IFormatProvider
ignored in this release, and only few Parse/ToString formats are implemented.
This implementation can be used as the bases for other value types |
|
Int64 |
5% |
System |
|
|
InvalidCastException
|
100% |
System |
|
|
InvalidOperationException
|
100% |
System |
|
|
InvalidProgramException
|
100% |
System |
|
|
Directory |
5% |
System.IO |
|
|
DirectoryNotFoundException |
100% |
System.IO |
|
|
EndOfStreamException |
100% |
System.IO |
|
|
File |
5% |
System.IO |
|
|
FileAccess |
100% |
System.IO |
|
|
FileLoadException |
90% |
System.IO |
|
|
FileMode |
100% |
System.IO |
|
|
FileNotFoundException |
90% |
System.IO |
|
|
FileShare |
100% |
System.IO |
|
|
FileStream |
7% |
System.IO |
Has a
couple of private fields and two calls out into the OS abstraction layer |
|
IOException |
100% |
System.IO |
|
|
MemoryStream |
85% |
System.IO |
|
|
Path |
80% |
System.IO |
Still
needs thorough testing |
|
PathTooLongException |
100% |
System.IO |
|
|
SeekOrigin |
100% |
System.IO |
|
|
Stream |
80% |
System.IO |
Functional
code written. Asynchronous reads and writes stubbed out. Dispose(bool) also
stubbed out. Requires specific testing (Console tests this indirectly) |
|
StreamReader |
70% |
System.IO |
Functional
code written, but no Unicode support. Dispose and Synchronize methods are
stubbed. File based constructors stubbed out. Other miscellaneous “to do”
tasks needs attention. Also requires specific testing (Console tests this
indirectly). Better feel for completeness of class once FileStream is
implemented. |
|
StreamWriter |
70% |
System.IO |
Functional
code written, but no Unicode support. Dispose and Synchronize methods are
stubbed. File based constructors stubbed out. Other miscellaneous “to do”
tasks needs attention. Also requires specific testing (Console tests this
indirectly). Better feel for completeness of class once FileStream is
implemented. |
|
StringReader |
5% |
System.IO |
|
|
StringWriter |
5% |
System.IO |
|
|
TextReader |
75% |
System.IO |
Functional
code written, but no Unicode support. Dispose and Synchronize methods are
stubbed. Also requires testing |
|
TextWriter |
75% |
System.IO |
Functional
code written, but no Unicode support. Dispose and Synchronize methods are
stubbed. Also requires testing |
|
MarshalByRefObject
|
100% |
System |
|
|
MulticastNotSupportedException |
100% |
System |
|
|
NotSupportedException
|
100% |
System |
|
|
NullReferenceException
|
100% |
System |
|
|
Object |
50% |
System |
Some
messages forwarded to the Platform Abstraction Layer, which need to be
implemented there. |
|
ObsoleteAttribute |
5% |
System |
|
|
OutOfMemoryException
|
100% |
System |
|
|
OverflowException
|
100% |
System |
|
|
Random |
5% |
System |
|
|
RankException
|
5% |
System |
|
|
Sbyte |
5% |
System |
|
|
CodeAccessPermission |
5% |
System.Security |
|
|
SecurityException |
5% |
System.Security |
|
|
IPermission |
5% |
System.Security |
|
|
PermissionSet |
5% |
System.Security |
|
|
SecurityElement |
5% |
System.Security |
|
|
VerificationException |
5% |
System.Security |
|
|
CodeAccessSecurityAttribute |
5% |
System.Security.Permissions |
|
|
EnvironmentPermissionAttribute |
5% |
System.Security.Permissions |
|
|
FileIOPermissionAttribute |
5% |
System.Security.Permissions |
|
|
PermissionState |
100% |
System.Security.Permissions |
|
|
SecurityAction |
5% |
System.Security.Permissions |
|
|
SecurityAttribute |
5% |
System.Security.Permissions |
|
|
SecurityPermission |
5% |
System.Security.Permissions |
|
|
SecurityPermissionAttribute |
5% |
System.Security.Permissions |
|
|
SecurityPermissionFlag |
100% |
System.Security.Permissions |
|
|
EnvironmentPermissionAccess |
100% |
System.Security.Permissions |
|
|
FileIOPermissionAccess |
100% |
System.Security.Permissions |
|
|
EnvironmentPermission |
5% |
System.Security.Permissions |
|
|
FileIOPermission |
5% |
System.Security.Permissions |
|
|
IBuiltInPermission |
5% |
System.Security.Permissions |
|
|
StackOverflowException
|
100% |
System |
|
|
String |
85% |
System |
|
|
SystemException
|
100% |
System |
|
|
ASCIIEncoding |
5% |
System.Text |
|
|
Decoder |
5% |
System.Text |
|
|
Encoder |
5% |
System.Text |
|
|
Encoding |
5% |
System.Text |
|
|
StringBuilder |
5% |
System.Text |
|
|
UnicodeEncoding |
5% |
System.Text |
|
|
UTF8Encoding |
5% |
System.Text |
|
|
Interlocked |
100% |
System.Threading |
|
|
Monitor |
5% |
System.Threading |
All messages
forwarded to the Platform Abstraction Layer, which need to be implemented
there. |
|
SynchronizationLockException |
100% |
System.Threading |
|
|
Thread |
5% |
System.Threading |
All messages
forwarded to the Platform Abstraction Layer, which need to be implemented
there. |
|
ThreadAbortException |
100% |
System.Threading |
|
|
ThreadPriority |
100% |
System.Threading |
|
|
ThreadStart |
5% |
System.Threading |
|
|
ThreadState |
100% |
System.Threading |
|
|
ThreadStateException |
100% |
System.Threading |
|
|
Timeout |
100% |
System.Threading |
|
|
Timer |
100% |
System.Threading |
|
|
TimerCallback |
5% |
System.Threading |
|
|
WaitHandle |
5% |
System.Threading |
|
|
TimeSpan |
5% |
System |
|
|
Type |
40% |
System |
|
|
TypeInitializationException
|
25% |
System |
|
|
UInt16 |
5% |
System |
|
|
UInt32 |
5% |
System |
|
|
UInt64 |
5% |
System |
|
|
ValueType |
90% |
System |
|
|
Version |
5% |
System |
|
The following table enumerates
the BCL methods and properties that rely on OS or VES functionality. These methods forward the received message
to classes in the Platform Abstraction Layer for processing. This list will evolve as the libraries are
integrated with a specific platform and the communication between the libraries
and underlying OS and VES is better understood.
|
Dependency
Type (VES/OS) |
BCL
Class |
Method |
|
VES |
Object |
public static object GetMemberWiseCloneFor(object obj) |
|
VES |
Object |
public static Type GetTypeFor(object obj) |
|
VES |
Object |
public static int GetHashCodeFor(object obj) |
|
VES |
Object |
~Object() |
|
VES |
Array |
public static int GetLengthFor(Array array) |
|
VES |
Array |
public static int GetRankFor(Array array) |
|
VES |
Array |
public static Array Clone(Array array) |
|
VES |
Array |
public static object GetValue(Array array, int index) |
|
VES |
Array |
public static object SetValue(Array array, object val, int
index) |
|
VES |
Array |
public static Type GetElementTypeFor(Array array) |
|
VES |
Array |
public static Array CreateArrayInstance(Type elementType,
int length) |
|
VES |
String |
public static string Intern(string str) |
|
VES |
String |
public static string IsInterned(string str) |
|
VES |
GC |
public static void WaitForPendingFinalizers() |
|
VES |
GC |
public static void ReRegisterForFinalize(object obj) |
|
VES |
GC |
public static void SuppressFinalize(object obj) |
|
VES |
Delegate |
public object DelegateClone() |
|
VES |
Delegate |
public Delegate DelegateCombine(Delegate a, Delegate b) |
|
VES |
Delegate |
public Delegate DelegateCombine(Delegate[] delegates) |
|
VES |
Delegate |
public Delegate[] DelegateGetInvocationList() |
|
VES |
Delegate |
public int DelegateGetHashCode(Delegate value) |
|
VES |
Delegate |
public Delegate DelegateRemove(Delegate source, Delegate
value) |
|
VES |
Delegate |
public object DelegateGetTarget(Delegate value) |
|
VES |
Type |
public override int GetHashCode() |
|
VES |
Type |
public virtual int GetArrayRank() |
|
VES |
Type |
Property public bool IsArray; Get |
|
VES |
Type |
Property public bool IsClass; Get |
|
VES |
Type |
Property public bool IsEnum; Get |
|
VES |
Type |
Property public bool IsInterface; Get |
|
VES |
Type |
Property public bool IsPointer; Get |
|
VES |
Type |
Property public bool IsValueType; Get |
|
VES |
Type |
public virtual bool IsAssignableFrom(Type c) |
|
VES |
Type |
public virtual bool IsInstanceOfType(object o) |
|
VES |
Exception |
public virtual Exception GetBaseException() |
|
VES |
Exception |
Property public virtual string StackTrace; Get |
|
VES |
Thread |
public void Abort(object stateInfo) |
|
VES |
Thread |
public void Abort() |
|
VES |
Thread |
~Thread() |
|
VES |
Thread |
public void Join() |
|
VES |
Thread |
public bool Join(int millisecondsTimeout) |
|
VES |
Thread |
public bool Join(TimeSpan timeout) |
|
VES |
Thread |
public static void ResetAbort() |
|
VES |
Thread |
public static void Sleep(int millisecondsTimeout) |
|
VES |
Thread |
public static void Sleep(TimeSpan timeout) |
|
VES |
Thread |
public static void SpinWait(int iterations) |
|
VES |
Thread |
public void Start() |
|
VES |
Thread |
public static Thread CurrentThread; Get |
|
VES |
Thread |
Property public bool IsAlive; Get |
|
VES |
Thread |
Property public bool IsBackground; Get |
|
VES |
Thread |
Property public bool IsBackground; Set |
|
VES |
Thread |
Property public string Name; Get |
|
VES |
Thread |
Property public string Name; Set |
|
VES |
Thread |
Property public ThreadPriority Priority; Get |
|
VES |
Thread |
Property public ThreadPriority Priority; Set |
|
VES |
Thread |
Property public ThreadState ThreadState; Get |
|
VES |
Monitor |
public static void Enter(object obj) |
|
VES |
Monitor |
public static void Exit(object obj) |
|
VES |
Monitor |
public static void Pulse(object obj) |
|
VES |
Monitor |
public static void PulseAll(object obj) |
|
VES |
Monitor |
public static bool TryEnter(object obj) |
|
VES |
Monitor |
public static bool TryEnter(object obj, int
millisecondsTimeout) |
|
VES |
Monitor |
public static bool TryEnter(object obj, TimeSpan timeout) |
|
VES |
Monitor |
public static bool Wait(object obj, int
millisecondsTimeout) |
|
VES |
Monitor |
public static bool Wait(object obj) |
|
VES |
Monitor |
public static bool Wait(object obj, TimeSpan timeout) |
|
OS |
Path |
public static string ChangeExtension(string path, string
extension) |
|
OS |
Path |
public static string GetDirectoryName(string path) |
|
OS |
Path |
public static string GetExtension(string path) |
|
OS |
Path |
public static string GetFileName(string path)+C35 |
|
OS |
Path |
public static string GetFileNameWithoutExtension(string
path) |
|
OS |
Path |
public static string GetFullPath(string path) |
|
OS |
Path |
public static string GetPathRoot(string path) |
|
OS |
Path |
public static string GetTempFileName() |
|
OS |
Path |
public static string GetTempPath() |
|
OS |
Path |
public static bool HasExtension() |
|
OS |
Path |
public static bool IsPathRooted(string path) |
|
OS |
FileStream |
public override void Close() |
|
OS |
FileStream |
public FileStream(string, FileMode, FileAccess, FileShare,
int, bool) |
|
OS |
FileStream |
public override void Flush() |
|
OS |
FileStream |
public override int Read(byte[], int, int) |
|
OS |
FileStream |
public override long Seek(long, SeekOrigin) |
|
OS |
File |
public static void Delete(string path) |
|
OS |
File |
public static bool Exists(string path) |
|
OS |
File |
public static DateTime GetCreationTime(string path) |
|
OS |
File |
public static DateTime GetLastAccessTime(string path) |
|
OS |
File |
public static DateTime GetLastWriteTime(string path) |
|
OS |
File |
public static void SetCreationTime(string path, DateTime
creationTime) |
|
OS |
File |
public static void SetLastAccessTime(string path, DateTime
lastAccessTime) |
|
OS |
File |
public static void SetLastWriteTime(string path, DateTime
lastWriteTime) |
|
OS |
Directory |
public static void Delete(string path, bool recursive) |
|
OS |
Directory |
public static bool Exists(string path) |
|
OS |
Directory |
public static DateTime GetCreationTime(string path) |
|
OS |
Directory |
public static string GetCurrentDirectory() |
|
OS |
Directory |
public static string[] GetDirectories(string path, string
searchPattern) |
|
OS |
Directory |
public static string GetDirectoryRoot(string path) |
|
OS |
Directory |
public static string[] GetFiles(string path, string
searchPattern) |
|
OS |
Directory |
public static string[] GetFileSystemEntries(string path,
string searchPattern) |
|
OS |
Directory |
public static DateTime GetLastAccessTime(string path) |
|
OS |
Directory |
public static DateTime GetLastWriteTime(string path) |
|
OS |
Directory |
public static void Move(string sourceDirName, string
destDirName) |
|
OS |
Directory |
public static void SetCreationTime(string path, DateTime
creationTime) |
|
OS |
Directory |
public static void SetCurrentDirectory(string path) |
|
OS |
Directory |
public static void SetLastAccessTime(string path, DateTime
lastAccessTime) |
|
OS |
Directory |
public static void SetLastWriteTime(string path, DateTime
lastWriteTime) |
|
OS |
StdOutputStream |
public override void Flush() |
|
OS |
StdInputStream |
public override int Read(byte[], int, int) |