using System;
using Il2CppInterop.Common.Attributes;
using Il2CppInterop.Runtime;
using Il2CppInterop.Runtime.InteropTypes.Arrays;
using Il2CppSystem;
using Il2CppSystem.Collections.Generic;

namespace MarsSDK
{
	// Token: 0x0200065B RID: 1627
	public class StandaloneFileSystem : Object
	{
		// Token: 0x0600A743 RID: 42819 RVA: 0x002ADB00 File Offset: 0x002ABD00
		[CallerCount(3)]
		[CachedScanResults(RefRangeStart = 655201, RefRangeEnd = 655204, XrefRangeStart = 655177, XrefRangeEnd = 655201, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe StandaloneFileSystem(IReadOnlyList<string> dataPathGroups, string dataExtension = ".dat")
			: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<StandaloneFileSystem>.NativeClassPtr))
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(dataPathGroups);
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.ManagedStringToIl2Cpp(dataExtension);
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(StandaloneFileSystem.NativeMethodInfoPtr__ctor_Public_Void_IReadOnlyList_1_String_String_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600A744 RID: 42820 RVA: 0x002ADB7C File Offset: 0x002ABD7C
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 655204, XrefRangeEnd = 655206, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe virtual bool HasFile(int fileGroup, string dataName)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref fileGroup;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.ManagedStringToIl2Cpp(dataName);
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(StandaloneFileSystem.NativeMethodInfoPtr_HasFile_Public_Virtual_Final_New_Boolean_Int32_String_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x0600A745 RID: 42821 RVA: 0x002ADBF8 File Offset: 0x002ABDF8
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 655206, XrefRangeEnd = 655214, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe virtual WriteFileResult WriteFile(int fileGroup, string dataName, Il2CppStructArray<byte> data)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref fileGroup;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.ManagedStringToIl2Cpp(dataName);
			ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(data);
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(StandaloneFileSystem.NativeMethodInfoPtr_WriteFile_Public_Virtual_Final_New_WriteFileResult_Int32_String_Il2CppStructArray_1_Byte_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x0600A746 RID: 42822 RVA: 0x002ADC8C File Offset: 0x002ABE8C
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 655214, XrefRangeEnd = 655217, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe virtual ReadFileResult ReadFile(int fileGroup, string dataName, out Il2CppStructArray<byte> data)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref fileGroup;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.ManagedStringToIl2Cpp(dataName);
			ref IntPtr ptr2 = ref ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)];
			IntPtr intPtr = 0;
			ptr2 = &intPtr;
			IntPtr intPtr3;
			IntPtr intPtr2 = IL2CPP.il2cpp_runtime_invoke(StandaloneFileSystem.NativeMethodInfoPtr_ReadFile_Public_Virtual_Final_New_ReadFileResult_Int32_String_byref_Il2CppStructArray_1_Byte_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr3);
			Il2CppException.RaiseExceptionIfNecessary(intPtr3);
			IntPtr intPtr4 = intPtr;
			data = ((intPtr4 == 0) ? null : new Il2CppStructArray(intPtr4));
			return *IL2CPP.il2cpp_object_unbox(intPtr2);
		}

		// Token: 0x0600A747 RID: 42823 RVA: 0x002ADD38 File Offset: 0x002ABF38
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 655217, XrefRangeEnd = 655227, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe virtual void DeleteFile(int fileGroup, string dataName)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref fileGroup;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.ManagedStringToIl2Cpp(dataName);
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(StandaloneFileSystem.NativeMethodInfoPtr_DeleteFile_Public_Virtual_Final_New_Void_Int32_String_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600A748 RID: 42824 RVA: 0x002ADDA4 File Offset: 0x002ABFA4
		[CallerCount(4)]
		[CachedScanResults(RefRangeStart = 655235, RefRangeEnd = 655239, XrefRangeStart = 655227, XrefRangeEnd = 655235, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe string GetFilePath(int fileGroup, string fileName)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref fileGroup;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.ManagedStringToIl2Cpp(fileName);
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(StandaloneFileSystem.NativeMethodInfoPtr_GetFilePath_Private_String_Int32_String_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return IL2CPP.Il2CppStringToManaged(intPtr);
		}

		// Token: 0x0600A749 RID: 42825 RVA: 0x002ADE1C File Offset: 0x002AC01C
		// Note: this type is marked as 'beforefieldinit'.
		static StandaloneFileSystem()
		{
			Il2CppClassPointerStore<StandaloneFileSystem>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "MarsSDK", "StandaloneFileSystem");
			IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<StandaloneFileSystem>.NativeClassPtr);
			StandaloneFileSystem.NativeFieldInfoPtr_dataExtension = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<StandaloneFileSystem>.NativeClassPtr, "dataExtension");
			StandaloneFileSystem.NativeFieldInfoPtr_pathGroups = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<StandaloneFileSystem>.NativeClassPtr, "pathGroups");
			StandaloneFileSystem.NativeMethodInfoPtr__ctor_Public_Void_IReadOnlyList_1_String_String_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<StandaloneFileSystem>.NativeClassPtr, 100676231);
			StandaloneFileSystem.NativeMethodInfoPtr_HasFile_Public_Virtual_Final_New_Boolean_Int32_String_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<StandaloneFileSystem>.NativeClassPtr, 100676232);
			StandaloneFileSystem.NativeMethodInfoPtr_WriteFile_Public_Virtual_Final_New_WriteFileResult_Int32_String_Il2CppStructArray_1_Byte_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<StandaloneFileSystem>.NativeClassPtr, 100676233);
			StandaloneFileSystem.NativeMethodInfoPtr_ReadFile_Public_Virtual_Final_New_ReadFileResult_Int32_String_byref_Il2CppStructArray_1_Byte_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<StandaloneFileSystem>.NativeClassPtr, 100676234);
			StandaloneFileSystem.NativeMethodInfoPtr_DeleteFile_Public_Virtual_Final_New_Void_Int32_String_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<StandaloneFileSystem>.NativeClassPtr, 100676235);
			StandaloneFileSystem.NativeMethodInfoPtr_GetFilePath_Private_String_Int32_String_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<StandaloneFileSystem>.NativeClassPtr, 100676236);
		}

		// Token: 0x0600A74A RID: 42826 RVA: 0x0000A74C File Offset: 0x0000894C
		public StandaloneFileSystem(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x17003892 RID: 14482
		// (get) Token: 0x0600A74B RID: 42827 RVA: 0x002ADEEC File Offset: 0x002AC0EC
		// (set) Token: 0x0600A74C RID: 42828 RVA: 0x002ADF15 File Offset: 0x002AC115
		public unsafe string dataExtension
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(StandaloneFileSystem.NativeFieldInfoPtr_dataExtension);
				return IL2CPP.Il2CppStringToManaged(*intPtr);
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(StandaloneFileSystem.NativeFieldInfoPtr_dataExtension), IL2CPP.ManagedStringToIl2Cpp(value));
			}
		}

		// Token: 0x17003893 RID: 14483
		// (get) Token: 0x0600A74D RID: 42829 RVA: 0x002ADF3C File Offset: 0x002AC13C
		// (set) Token: 0x0600A74E RID: 42830 RVA: 0x002ADF70 File Offset: 0x002AC170
		public unsafe Il2CppStringArray pathGroups
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(StandaloneFileSystem.NativeFieldInfoPtr_pathGroups);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new Il2CppStringArray(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(StandaloneFileSystem.NativeFieldInfoPtr_pathGroups), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x0400701A RID: 28698
		private static readonly IntPtr NativeFieldInfoPtr_dataExtension;

		// Token: 0x0400701B RID: 28699
		private static readonly IntPtr NativeFieldInfoPtr_pathGroups;

		// Token: 0x0400701C RID: 28700
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_IReadOnlyList_1_String_String_0;

		// Token: 0x0400701D RID: 28701
		private static readonly IntPtr NativeMethodInfoPtr_HasFile_Public_Virtual_Final_New_Boolean_Int32_String_0;

		// Token: 0x0400701E RID: 28702
		private static readonly IntPtr NativeMethodInfoPtr_WriteFile_Public_Virtual_Final_New_WriteFileResult_Int32_String_Il2CppStructArray_1_Byte_0;

		// Token: 0x0400701F RID: 28703
		private static readonly IntPtr NativeMethodInfoPtr_ReadFile_Public_Virtual_Final_New_ReadFileResult_Int32_String_byref_Il2CppStructArray_1_Byte_0;

		// Token: 0x04007020 RID: 28704
		private static readonly IntPtr NativeMethodInfoPtr_DeleteFile_Public_Virtual_Final_New_Void_Int32_String_0;

		// Token: 0x04007021 RID: 28705
		private static readonly IntPtr NativeMethodInfoPtr_GetFilePath_Private_String_Int32_String_0;
	}
}
