public IntPtr GetDefaultDataIntPtr(out int size)
        {
            size = _defaultBufSize - _memSegHeaderSize;
            IntPtr memSegPtr = GetDefaultIntPtrCore();

            return(MemorySegment.GetDataPtr(memSegPtr));
        }
示例#2
0
 public void GetReadable(out IntPtr dataPtr, out int length)
 {
     // Учитывая то, кто использует этот метод, тут никогда не будет других чтений и никогда не будет больше
     // одного сегмента.
     length  = _globalWrited;
     dataPtr = MemorySegment.GetDataPtr(_memSegPtr);
 }
示例#3
0
 public void Attach(IntPtr memSeg)
 {
     _memSegPtr     = memSeg;
     _lastMemSegPtr = memSeg;
     unsafe
     {
         _memSegDataPtr = (byte *)(void *)MemorySegment.GetDataPtr(memSeg);
     }
     _memSegSize       = MemorySegment.GetUsed(memSeg);
     _memSegReadIndex  = -1;
     _memSegWriteIndex = -1;
     _globalReaded     = 0;
     _globalWrited     = 0;
     _released         = false;
 }
示例#4
0
 unsafe private void SetCurrentMemSeg(IntPtr memSegPtr)
 {
     _memSegPtr     = memSegPtr;
     _memSegSize    = MemorySegment.GetUsed(_memSegPtr);
     _memSegDataPtr = (byte *)(void *)MemorySegment.GetDataPtr(_memSegPtr);
 }