Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
DeclSecurityTableReader.cs
Go to the documentation of this file.
2
4
5internal readonly struct DeclSecurityTableReader
6{
7 internal readonly int NumberOfRows;
8
9 private readonly bool _IsHasDeclSecurityRefSizeSmall;
10
11 private readonly bool _IsBlobHeapRefSizeSmall;
12
13 private readonly int _ActionOffset;
14
15 private readonly int _ParentOffset;
16
17 private readonly int _PermissionSetOffset;
18
19 internal readonly int RowSize;
20
21 internal readonly MemoryBlock Block;
22
23 internal DeclSecurityTableReader(int numberOfRows, bool declaredSorted, int hasDeclSecurityRefSize, int blobHeapRefSize, MemoryBlock containingBlock, int containingBlockOffset)
24 {
25 NumberOfRows = numberOfRows;
26 _IsHasDeclSecurityRefSizeSmall = hasDeclSecurityRefSize == 2;
27 _IsBlobHeapRefSizeSmall = blobHeapRefSize == 2;
28 _ActionOffset = 0;
30 _PermissionSetOffset = _ParentOffset + hasDeclSecurityRefSize;
31 RowSize = _PermissionSetOffset + blobHeapRefSize;
32 Block = containingBlock.GetMemoryBlockAt(containingBlockOffset, RowSize * numberOfRows);
33 if (!declaredSorted && !CheckSorted())
34 {
35 Throw.TableNotSorted(TableIndex.DeclSecurity);
36 }
37 }
38
40 {
41 int num = (rowId - 1) * RowSize;
43 }
44
45 internal EntityHandle GetParent(int rowId)
46 {
47 int num = (rowId - 1) * RowSize;
49 }
50
51 internal BlobHandle GetPermissionSet(int rowId)
52 {
53 int num = (rowId - 1) * RowSize;
55 }
56
57 internal void GetAttributeRange(EntityHandle parentToken, out int firstImplRowId, out int lastImplRowId)
58 {
60 if (startRowNumber == -1)
61 {
62 firstImplRowId = 1;
63 lastImplRowId = 0;
64 }
65 else
66 {
67 firstImplRowId = startRowNumber + 1;
68 lastImplRowId = endRowNumber + 1;
69 }
70 }
71
76}
static EntityHandle ConvertToHandle(uint hasDeclSecurity)
static void TableNotSorted(TableIndex tableIndex)
Definition Throw.cs:250
unsafe ushort PeekUInt16(int offset)
unsafe MemoryBlock GetMemoryBlockAt(int offset, int length)
bool IsOrderedByReferenceAscending(int rowSize, int referenceOffset, bool isReferenceSmall)
int PeekHeapReference(int offset, bool smallRefSize)
void BinarySearchReferenceRange(int rowCount, int rowSize, int referenceOffset, uint referenceValue, bool isReferenceSmall, out int startRowNumber, out int endRowNumber)
uint PeekTaggedReference(int offset, bool smallRefSize)
static BlobHandle FromOffset(int heapOffset)
Definition BlobHandle.cs:34
DeclSecurityTableReader(int numberOfRows, bool declaredSorted, int hasDeclSecurityRefSize, int blobHeapRefSize, MemoryBlock containingBlock, int containingBlockOffset)
void GetAttributeRange(EntityHandle parentToken, out int firstImplRowId, out int lastImplRowId)