Ejemplo n.º 1
0
        // This plug basically forwards all calls to the $$InnerStream$$ stream, which is supplied by the file system.

        //  public static unsafe void Ctor(String aThis, [FieldAccess(Name = "$$Storage$$")]ref Char[] aStorage, Char[] aChars, int aStartIndex, int aLength,

        public static void Ctor(IO::FileStream aThis, string aPathname, IO::FileMode aMode,
                                [FieldAccess(Name = "$$InnerStream$$")] ref IO::Stream innerStream)
        {
            FatHelpers.Debug("In FileStream.Ctor");
            innerStream = InitializeStream(aPathname, aMode);
        }
Ejemplo n.º 2
0
        // This plug basically forwards all calls to the $$InnerStream$$ stream, which is supplied by the file system.

        //  public static unsafe void Ctor(String aThis, [FieldAccess(Name = "$$Storage$$")]ref Char[] aStorage, Char[] aChars, int aStartIndex, int aLength,

        public static void Ctor(IO::FileStream aThis, string aPathname, IO::FileMode aMode,
                                [FieldAccess(Name = "$$InnerStream$$")] ref IO::Stream innerStream)
        {
            innerStream = VFSManager.GetFileStream(aPathname);
        }
Ejemplo n.º 3
0
        //[PlugField(FieldId = "$$Storage$$", FieldType = typeof(char[]))]
        //[PlugField(FieldId = "System.Char System.String.m_firstChar", IsExternalValue = true)]
        //public static class StringImpl {
        //  //[PlugMethod(Signature = "System_Void__System_String__ctor_System_Char____System_Int32__System_Int32_")]
        //  public static unsafe void Ctor(String aThis, [FieldAccess(Name = "$$Storage$$")]ref Char[] aStorage, Char[] aChars, int aStartIndex, int aLength,
        //    [FieldAccess(Name = "System.Int32 System.String.m_stringLength")] ref int aStringLength,
        //    [FieldAccess(Name = "System.Char System.String.m_firstChar")] ref char* aFirstChar) {
        //    Char[] newChars = new Char[aLength];
        //    Array.Copy(aChars, aStartIndex, newChars, 0, aLength);
        //    aStorage = newChars;
        //    aStringLength = newChars.Length;
        //    fixed (char* xFirstChar = &aStorage[0]) {
        //      aFirstChar = xFirstChar;
        //    }
        //  }

        static public void Ctor(IO::FileStream aThis, string aPathname, IO::FileMode aMode)
        {
        }