Cosmos/source/Cosmos.System2/Text/CosmosEncodingProvider.cs

39 lines
1.2 KiB
C#

#define COSMOSDEBUG
using System.Text;
using Cosmos.Debug.Kernel;
namespace Cosmos.System.ExtendedASCII
{
public class CosmosEncodingProvider : EncodingProvider
{
private static readonly EncodingProvider s_singleton = new CosmosEncodingProvider();
private static Debugger myDebugger = new Debugger("System", "CosmosEncodingProvider");
internal CosmosEncodingProvider() { }
public static EncodingProvider Instance
{
get { return s_singleton; }
}
public override Encoding GetEncoding(int codepage)
{
myDebugger.SendInternal($"Getting Encoding for codepage {codepage}");
if (codepage < 0 || codepage > 65535)
return null;
/* Let's check on our EncodingTable, if codepage is not found null is returned */
return EncodingTable.GetEncoding(codepage);
}
public override Encoding GetEncoding(string name)
{
myDebugger.SendInternal($"Getting Encoding for codepage with name {name}");
int codepage = EncodingTable.GetCodePageFromDesc(name);
if (codepage == -1)
return null;
return GetEncoding(codepage);
}
}
}