1 // ==++==
2 //
3 //   Copyright (c) Microsoft Corporation.  All rights reserved.
4 //
5 // ==--==
6 /*============================================================
7 **
8 ** Class:  ParseNumbers
9 **
10 **
11 ** Purpose: Methods for Parsing numbers and Strings.
12 ** All methods are implemented in native.
13 **
14 **
15 ===========================================================*/
16 namespace System {
17 
18     //This class contains only static members and does not need to be serializable.
19     using System;
20     using System.Runtime.CompilerServices;
21     using System.Runtime.Versioning;
22 
23     internal static class ParseNumbers {
24         internal const int PrintAsI1=0x40;
25         internal const int PrintAsI2=0x80;
26         internal const int PrintAsI4=0x100;
27         internal const int TreatAsUnsigned=0x200;
28         internal const int TreatAsI1=0x400;
29         internal const int TreatAsI2=0x800;
30         internal const int IsTight=0x1000;
31         internal const int NoSpace=0x2000;
32 
33         //
34         //
35         // NATIVE METHODS
36         // For comments on these methods please see $\src\vm\COMUtilNative.cpp
37         //
38         [System.Security.SecuritySafeCritical]  // auto-generated
StringToLong(System.String s, int radix, int flags)39         public unsafe static long StringToLong(System.String s, int radix, int flags) {
40             return StringToLong(s,radix,flags, null);
41         }
42         [System.Security.SecurityCritical]  // auto-generated
43         [ResourceExposure(ResourceScope.None)]
44         [MethodImplAttribute(MethodImplOptions.InternalCall)]
StringToLong(System.String s, int radix, int flags, int* currPos)45         public unsafe extern static long StringToLong(System.String s, int radix, int flags, int* currPos);
46 
47         [System.Security.SecuritySafeCritical]  // auto-generated
StringToLong(System.String s, int radix, int flags, ref int currPos)48         public unsafe static long StringToLong(System.String s, int radix, int flags, ref int currPos) {
49             fixed(int * ppos = &currPos) {
50                 return StringToLong( s, radix, flags, ppos);
51             }
52         }
53 
54         [System.Security.SecuritySafeCritical]  // auto-generated
StringToInt(System.String s, int radix, int flags)55         public unsafe static int StringToInt(System.String s, int radix, int flags) {
56             return StringToInt(s,radix,flags, null);
57         }
58         [System.Security.SecurityCritical]  // auto-generated
59         [ResourceExposure(ResourceScope.None)]
60         [MethodImplAttribute(MethodImplOptions.InternalCall)]
StringToInt(System.String s, int radix, int flags, int* currPos)61         public unsafe extern static int StringToInt(System.String s, int radix, int flags, int* currPos);
62 
63         [System.Security.SecuritySafeCritical]  // auto-generated
StringToInt(System.String s, int radix, int flags, ref int currPos)64         public unsafe static int StringToInt(System.String s, int radix, int flags, ref int currPos) {
65             fixed(int * ppos = &currPos) {
66                 return StringToInt( s, radix, flags, ppos);
67             }
68         }
69 
70         [System.Security.SecurityCritical]  // auto-generated
71         [ResourceExposure(ResourceScope.None)]
72         [MethodImplAttribute(MethodImplOptions.InternalCall)]
IntToString(int l, int radix, int width, char paddingChar, int flags)73         public extern static String IntToString(int l, int radix, int width, char paddingChar, int flags);
74 
75         [System.Security.SecurityCritical]  // auto-generated
76         [ResourceExposure(ResourceScope.None)]
77         [MethodImplAttribute(MethodImplOptions.InternalCall)]
LongToString(long l, int radix, int width, char paddingChar, int flags)78         public extern static String LongToString(long l, int radix, int width, char paddingChar, int flags);
79     }
80 }
81