blob: 43e5c39238616590566dbcd7e0cc29a5d9425295 [file] [log] [blame]
/**********************************************************************
* Copyright (c) 2014 Ericsson
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License 2.0 which
* accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Matthew Khouzam - Initial implementation and API
* Marc-Andre Laperle - Initial implementation and API
**********************************************************************/
package org.eclipse.tracecompass.internal.lttng2.control.core.relayd.commands;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
/**
* VIEWER_GET_PACKET payload.
*
* @author Matthew Khouzam
*/
public class GetPacket implements IRelayCommand {
/**
* Command size
*
* fStreamId + fOffset + fLength
*/
public static final int SIZE = (Long.SIZE + Long.SIZE + Integer.SIZE) / 8;
/** the stream Id */
private final long fStreamId;
/** the offset */
private final long fOffset;
/** the length of the packet */
private final int fLength;
/**
* Get packet constructor
*
* @param streamId
* the stream id
* @param offset
* the offset
* @param length
* the packet length
*/
public GetPacket(long streamId, long offset, int length) {
fStreamId = streamId;
fOffset = offset;
fLength = length;
}
/**
* Get the length of the packet
*
* @return the length of the packet in bytes
*/
public int getLength() {
return fLength;
}
/**
* Gets the offset of the packet
*
* @return the offset
*/
public long getOffset() {
return fOffset;
}
/**
* Gets the stream id
*
* @return the stream id
*/
public long getStreamId() {
return fStreamId;
}
@Override
public byte[] serialize() {
byte data[] = new byte[SIZE];
ByteBuffer bb = ByteBuffer.wrap(data);
bb.order(ByteOrder.BIG_ENDIAN);
bb.putLong(getStreamId());
bb.putLong(getOffset());
bb.putInt(getLength());
return data;
}
}