// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
namespace System
{
using Microsoft.Singularity;
#if !MINRUNTIME
using Microsoft.Singularity.Io;
#endif
using System;
using System.Text;
using System.Globalization;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// Provides static fields for console input and output. Use
// Console.In for input from the standard input stream (stdin),
// Console.Out for output to stdout, and Console.Error
// for output to stderr. If any of those console streams are
// redirected from the command line, these streams will be redirected.
// A program can also redirect its own output or input with the
// SetIn, SetOut, and SetError methods.
//
// The distinction between Console.Out and Console.Error is useful
// for programs that redirect output to a file or a pipe. Note that
// stdout and stderr can be output to different files at the same
// time from the DOS command line:
//
// someProgram 1> out 2> err
//
//|
public sealed class Console
{
private Console()
{
throw new NotSupportedException("NotSupported_Constructor");
}
static Console() {
}
private static void WriteInternal(char[] buffer, int index, int count)
{
#if !MINRUNTIME
ConsoleOutput.Write(buffer, index, count);
#else
for (int i = 0; i < count; i++) {
DebugStub.Print(buffer[index + i]);
}
#endif
}
private static void WriteInternal(String value)
{
#if !MINRUNTIME
ConsoleOutput.Write(value);
#else
DebugStub.Print(value);
#endif
}
private static void WriteNewLine()
{
WriteInternal(Environment.NewLine);
}
//|
public static void WriteLine()
{
WriteNewLine();
}
//|
public static void WriteLine(String value)
{
WriteInternal(value);
WriteNewLine();
}
//|
public static void WriteLine(bool value)
{
WriteInternal(value.ToString());
WriteNewLine();
}
//|
public static void WriteLine(char value)
{
WriteInternal(value.ToString());
WriteNewLine();
}
//|
public static void WriteLine(char[] buffer)
{
WriteInternal(buffer, 0, buffer.Length);
WriteNewLine();
}
//|
public static void WriteLine(char[] buffer, int index, int count)
{
WriteInternal(buffer, index, count);
WriteNewLine();
}
//|
public static void WriteLine(decimal value)
{
WriteInternal(value.ToString());
WriteNewLine();
}
//|
public static void WriteLine(double value)
{
WriteInternal(value.ToString());
WriteNewLine();
}
//|
public static void WriteLine(float value)
{
WriteInternal(value.ToString());
WriteNewLine();
}
//|
public static void WriteLine(int value)
{
WriteInternal(value.ToString());
WriteNewLine();
}
//|
[CLSCompliant(false)]
public static void WriteLine(uint value)
{
WriteInternal(value.ToString());
WriteNewLine();
}
//|
public static void WriteLine(long value)
{
WriteInternal(value.ToString());
WriteNewLine();
}
//|
[CLSCompliant(false)]
public static void WriteLine(ulong value)
{
WriteInternal(value.ToString());
WriteNewLine();
}
//|
public static void WriteLine(Object value)
{
WriteInternal(value.ToString());
WriteNewLine();
}
//|
public static void WriteLine(String format, Object arg0)
{
WriteInternal(String.Format(format, arg0));
WriteNewLine();
}
//|
public static void WriteLine(String format, Object arg0, Object arg1)
{
WriteInternal(String.Format(format, arg0, arg1));
WriteNewLine();
}
//|
public static void WriteLine(String format, Object arg0, Object arg1, Object arg2)
{
WriteInternal(String.Format(format, arg0, arg1, arg2));
WriteNewLine();
}
//|
public static void WriteLine(String format, params Object[] args)
{
WriteInternal(String.Format(format, args));
WriteNewLine();
}
//|
public static void Write(String format, Object arg0)
{
WriteInternal(String.Format(format, arg0));
}
//|
public static void Write(String format, Object arg0, Object arg1)
{
WriteInternal(String.Format(format, arg0, arg1));
}
//|
public static void Write(String format, Object arg0, Object arg1, Object arg2)
{
WriteInternal(String.Format(format, arg0, arg1, arg2));
}
//|
public static void Write(String format, params Object[] args)
{
WriteInternal(String.Format(format, args));
}
//|
public static void Write(bool value)
{
WriteInternal(value.ToString());
}
//|
public static void Write(char value)
{
WriteInternal(value.ToString());
}
//|
public static void Write(char[] buffer)
{
WriteInternal(buffer, 0, buffer.Length);
}
//|
public static void Write(char[] buffer, int index, int count)
{
WriteInternal(buffer, index, count);
}
//|
public static void Write(double value)
{
WriteInternal(value.ToString());
}
//|
public static void Write(decimal value)
{
WriteInternal(value.ToString());
}
//|
public static void Write(float value)
{
WriteInternal(value.ToString());
}
//|
public static void Write(int value)
{
WriteInternal(value.ToString());
}
//|
[CLSCompliant(false)]
public static void Write(uint value)
{
WriteInternal(value.ToString());
}
//|
public static void Write(long value)
{
WriteInternal(value.ToString());
}
//|
[CLSCompliant(false)]
public static void Write(ulong value)
{
WriteInternal(value.ToString());
}
//|
public static void Write(Object value)
{
WriteInternal(value.ToString());
}
//|
public static void Write(String value)
{
WriteInternal(value);
}
public static int Read()
{
#if !MINRUNTIME
return ConsoleInput.ReadChar();
#else
return -1;
#endif
}
public static string ReadLine()
{
#if !MINRUNTIME
return ConsoleInput.ReadLine();
#else
return "";
#endif
}
}
}