Package org.apache.sysds.runtime.controlprogram.caching

## Class ByteBuffer

- java.lang.Object
- - org.apache.sysds.runtime.controlprogram.caching.ByteBuffer

    public class ByteBuffer
    extends Object

Wrapper for WriteBuffer byte array per matrix/frame in order to support matrix/frame serialization outside global lock.

### Constructor Summary

Constructors
`ByteBuffer​(long size)`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`void` `checkSerialized()`
`CacheBlock` `deserializeBlock()`
`void` `evictBuffer​(String fname)`
`void` `freeMemory()`
`long` `getSize()` Returns the buffer size in bytes.
`boolean` `isShallow()`
`static boolean` `isValidCapacity​(long size, CacheBlock cb)` Determines if byte buffer can hold the given size given this specific cache block.
`void` `serializeBlock​(CacheBlock cb)`

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### ByteBuffer

    public ByteBuffer​(long size)

### Method Detail

#### serializeBlock

    public void serializeBlock​(CacheBlock cb)
                        throws IOException

Throws:
  `IOException`

#### deserializeBlock

    public CacheBlock deserializeBlock()
                                throws IOException

Throws:
  `IOException`

#### evictBuffer

    public void evictBuffer​(String fname)
                     throws IOException

Throws:
  `IOException`

#### getSize

    public long getSize()

Returns the buffer size in bytes.

Returns:
  buffer size in bytes

#### isShallow

    public boolean isShallow()

#### freeMemory

    public void freeMemory()

#### checkSerialized

    public void checkSerialized()

#### isValidCapacity

    public static boolean isValidCapacity​(long size,
                                          CacheBlock cb)

Determines if byte buffer can hold the given size given this specific cache block. This call is consistent with 'serializeBlock' and allows for internal optimization according to dense/sparse representation.

Parameters:
  `size` - the size
  `cb` - cache block
Returns:
  true if valid capacity