// 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); }
// 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); }
//[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) { }