Class UnsafeUtil.MemoryAccessor

java.lang.Object
com.google.protobuf.UnsafeUtil.MemoryAccessor
Direct Known Subclasses:
UnsafeUtil.Android32MemoryAccessor, UnsafeUtil.Android64MemoryAccessor, UnsafeUtil.JvmMemoryAccessor
Enclosing class:
UnsafeUtil

private abstract static class UnsafeUtil.MemoryAccessor extends Object
  • Field Details

    • unsafe

      sun.misc.Unsafe unsafe
  • Constructor Details

    • MemoryAccessor

      MemoryAccessor(sun.misc.Unsafe unsafe)
  • Method Details

    • objectFieldOffset

      public final long objectFieldOffset(Field field)
    • arrayBaseOffset

      public final int arrayBaseOffset(Class<?> clazz)
    • arrayIndexScale

      public final int arrayIndexScale(Class<?> clazz)
    • getStaticObject

      public abstract Object getStaticObject(Field field)
    • supportsUnsafeArrayOperations

      public boolean supportsUnsafeArrayOperations()
    • getByte

      public abstract byte getByte(Object target, long offset)
    • putByte

      public abstract void putByte(Object target, long offset, byte value)
    • getInt

      public final int getInt(Object target, long offset)
    • putInt

      public final void putInt(Object target, long offset, int value)
    • getLong

      public final long getLong(Object target, long offset)
    • putLong

      public final void putLong(Object target, long offset, long value)
    • getBoolean

      public abstract boolean getBoolean(Object target, long offset)
    • putBoolean

      public abstract void putBoolean(Object target, long offset, boolean value)
    • getFloat

      public abstract float getFloat(Object target, long offset)
    • putFloat

      public abstract void putFloat(Object target, long offset, float value)
    • getDouble

      public abstract double getDouble(Object target, long offset)
    • putDouble

      public abstract void putDouble(Object target, long offset, double value)
    • getObject

      public final Object getObject(Object target, long offset)
    • putObject

      public final void putObject(Object target, long offset, Object value)
    • supportsUnsafeByteBufferOperations

      public boolean supportsUnsafeByteBufferOperations()
    • getByte

      public abstract byte getByte(long address)
    • putByte

      public abstract void putByte(long address, byte value)
    • getInt

      public abstract int getInt(long address)
    • putInt

      public abstract void putInt(long address, int value)
    • getLong

      public abstract long getLong(long address)
    • putLong

      public abstract void putLong(long address, long value)
    • copyMemory

      public abstract void copyMemory(long srcOffset, byte[] target, long targetIndex, long length)
    • copyMemory

      public abstract void copyMemory(byte[] src, long srcIndex, long targetOffset, long length)