blob: aaabcf5eaa0f589c08ceae3a6031cd844c156ed7 [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
**********************************************************************/
package org.eclipse.tracecompass.internal.lttng2.control.core.relayd;
import java.io.IOException;
import java.util.List;
import org.eclipse.tracecompass.internal.lttng2.control.core.relayd.commands.AttachSessionResponse;
import org.eclipse.tracecompass.internal.lttng2.control.core.relayd.commands.CreateSessionResponse;
import org.eclipse.tracecompass.internal.lttng2.control.core.relayd.commands.IndexResponse;
import org.eclipse.tracecompass.internal.lttng2.control.core.relayd.commands.SessionResponse;
import org.eclipse.tracecompass.internal.lttng2.control.core.relayd.commands.StreamResponse;
import org.eclipse.tracecompass.internal.lttng2.control.core.relayd.commands.TracePacketResponse;
/**
* Connector for Lttng Relayd
*
* @author Matthew Khouzam
*/
public interface ILttngRelaydConnector extends AutoCloseable {
/**
* Gets a list of active Lttng sessions
*
* @return the session List (we need the get function)
* @throws IOException
* timeout and such
*/
List<SessionResponse> getSessions() throws IOException;
/**
* Create a session
*
* @return create session response
* @throws IOException
* timeout and such
*/
CreateSessionResponse createSession() throws IOException;
/**
* Attach the trace viewer to a Session
*
* @param lttngViewerSession
* viewer session
* @return An AttachSessionResponse
* @throws IOException
* timeout and such
*/
AttachSessionResponse attachToSession(SessionResponse lttngViewerSession) throws IOException;
/**
* Get the metadata from the relayd
*
* @param attachedSession
* the attached session
* @return a chunk of TSDL metadata
* @throws IOException
* timeout and such
*/
String getMetadata(AttachSessionResponse attachedSession) throws IOException;
/**
* Get the next index
*
* @param stream
* the stream
* @return the stream input packet entry
* @throws IOException
* timeout and such
*/
IndexResponse getNextIndex(StreamResponse stream) throws IOException;
/**
* Get the next packet in a stream
*
* @param stream
* the stream response
* @return the packet response
* @throws IOException
* timeout and such
*/
TracePacketResponse getNextPacket(StreamResponse stream) throws IOException;
/**
* Gets the packet from the stream
*
* @param index
* the index of the stream
* @param id
* the stream id
* @return the packet response
* @throws IOException
* timeout and such
*/
TracePacketResponse getPacketFromStream(IndexResponse index, long id) throws IOException;
/**
* Gets the new streams
*
* @return a list of stream responses
* @throws IOException
* timeout and such
*/
Iterable<StreamResponse> getNewStreams() throws IOException;
@Override
void close() throws IOException;
}