All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.netty.handler.codec.memcache.binary.BinaryMemcacheMessage Maven / Gradle / Ivy

/*
 * Copyright 2013 The Netty Project
 *
 * The Netty Project licenses this file to you under the Apache License,
 * version 2.0 (the "License"); you may not use this file except in compliance
 * with the License. You may obtain a copy of the License at:
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations
 * under the License.
 */
package io.netty.handler.codec.memcache.binary;

import io.netty.buffer.ByteBuf;
import io.netty.handler.codec.memcache.MemcacheMessage;
import io.netty.util.internal.UnstableApi;

/**
 * An interface that defines a binary Memcache message, providing common properties for
 * {@link BinaryMemcacheRequest} and {@link BinaryMemcacheResponse}.
 * 

* A {@link BinaryMemcacheMessage} always consists of a header and optional extras or/and * a key. * * @see BinaryMemcacheRequest * @see BinaryMemcacheResponse */ @UnstableApi public interface BinaryMemcacheMessage extends MemcacheMessage { /** * Returns the magic byte for the message. * * @return the magic byte. */ byte magic(); /** * Sets the magic byte. * * @param magic the magic byte to use. * @see BinaryMemcacheOpcodes for typesafe opcodes. */ BinaryMemcacheMessage setMagic(byte magic); /** * Returns the opcode for the message. * * @return the opcode. */ byte opcode(); /** * Sets the opcode for the message. * * @param code the opcode to use. */ BinaryMemcacheMessage setOpcode(byte code); /** * Returns the key length of the message. *

* This may return 0, since the key is optional. * * @return the key length. */ short keyLength(); /** * Return the extras length of the message. *

* This may be 0, since the extras content is optional. * * @return the extras length. */ byte extrasLength(); /** * Returns the data type of the message. * * @return the data type of the message. */ byte dataType(); /** * Sets the data type of the message. * * @param dataType the data type of the message. */ BinaryMemcacheMessage setDataType(byte dataType); /** * Returns the total body length. *

* Note that this may be 0, since the body is optional. * * @return the total body length. */ int totalBodyLength(); /** * Sets the total body length. *

* Note that this may be 0, since the body length is optional. * * @param totalBodyLength the total body length. */ BinaryMemcacheMessage setTotalBodyLength(int totalBodyLength); /** * Returns the opaque value. * * @return the opaque value. */ int opaque(); /** * Sets the opaque value. * * @param opaque the opaque value to use. */ BinaryMemcacheMessage setOpaque(int opaque); /** * Returns the CAS identifier. * * @return the CAS identifier. */ long cas(); /** * Sets the CAS identifier. * * @param cas the CAS identifier to use. */ BinaryMemcacheMessage setCas(long cas); /** * Returns the optional key of the document. * * @return the key of the document. */ ByteBuf key(); /** * Sets the key of the document. {@link ByteBuf#release()} ownership of {@code key} * is transferred to this {@link BinaryMemcacheMessage}. * * @param key the key of the message. {@link ByteBuf#release()} ownership is transferred * to this {@link BinaryMemcacheMessage}. */ BinaryMemcacheMessage setKey(ByteBuf key); /** * Returns a {@link ByteBuf} representation of the optional extras. * * @return the optional extras. */ ByteBuf extras(); /** * Sets the extras buffer on the message. {@link ByteBuf#release()} ownership of {@code extras} * is transferred to this {@link BinaryMemcacheMessage}. * * @param extras the extras buffer of the document. {@link ByteBuf#release()} ownership is transferred * to this {@link BinaryMemcacheMessage}. */ BinaryMemcacheMessage setExtras(ByteBuf extras); /** * Increases the reference count by {@code 1}. */ @Override BinaryMemcacheMessage retain(); /** * Increases the reference count by the specified {@code increment}. */ @Override BinaryMemcacheMessage retain(int increment); @Override BinaryMemcacheMessage touch(); @Override BinaryMemcacheMessage touch(Object hint); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy