net.openhft.chronicle.hash.serialization.package-info Maven / Gradle / Ivy
/*
* Copyright (C) 2015 higherfrequencytrading.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see .
*/
/**
* The package contains interfaces for serializing objects and values between Java heap and {@link
* net.openhft.chronicle.bytes.Bytes} or {@link net.openhft.chronicle.bytes.BytesStore}.
*
* Reading methods in the interfaces in this package could use {@link
* net.openhft.chronicle.bytes.StreamingDataInput} as the "input" parameter type and {@link
* net.openhft.chronicle.bytes.StreamingDataOutput} as the "output" parameter type, but always use
* just {@link net.openhft.chronicle.bytes.Bytes} and {@link net.openhft.chronicle.bytes.BytesStore
* }, though this is "unsafe" because somebody could make a mistake and write into bytes supposed to
* be read-only or read some garbage bytes. This is done because of the poor support of
* StreamingDataInput/StreamingDataOutput in Chronicle Bytes and other projects. {@link
* net.openhft.chronicle.bytes.Byteable}, {@link net.openhft.chronicle.bytes.BytesMarshallable},
* Chronicle Wire and others support only BytesStore or Bytes, but not read/write separated
* interfaces.
*/
package net.openhft.chronicle.hash.serialization;