blob: 2f54c36cb5770c04ec87871edf94eb076bec75b3 [file] [log] [blame]
/**********************************************************************
* Copyright (c) 2012, 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:
* Bernd Hufmann - Initial API and implementation
* Bernd Hufmann - Updated for support of LTTng Tools 2.1
* Marc-Andre Laperle - Support for creating a live session
**********************************************************************/
package org.eclipse.tracecompass.internal.lttng2.control.core.model;
import java.util.List;
/**
* <p>
* Interface for retrieval of trace session information.
* </p>
*
* @author Bernd Hufmann
*/
public interface ISessionInfo extends ITraceInfo {
/**
* @return the session state state (active or inactive).
*/
TraceSessionState getSessionState();
/**
* Sets the session state to the given value.
* @param state - state to set.
*/
void setSessionState(TraceSessionState state);
/**
* Sets the event state to the value specified by the given name.
* @param stateName - state to set.
*/
void setSessionState(String stateName);
/**
* @return path string where session is located.
*/
String getSessionPath();
/**
* Sets the path string (where session is located) to the given value.
* @param path - session path to set.
*/
void setSessionPath(String path);
/**
* @return all domain information as array.
*/
IDomainInfo[] getDomains();
/**
* Sets all domain information specified by given list.
* @param domains - all domain information to set.
*/
void setDomains(List<IDomainInfo> domains);
/**
* Adds a single domain information.
* @param domainInfo domain information to add.
*/
void addDomain(IDomainInfo domainInfo);
/**
* Returns if session is streamed over network
* @return <code>true</code> if streamed over network else <code>false</code>
*/
boolean isStreamedTrace();
/**
* Sets whether the trace is streamed or not
* @param isStreamedTrace <code>true</code> if streamed over network else <code>false</code>
*/
void setStreamedTrace(boolean isStreamedTrace);
/**
* Returns whether the session is snapshot session or not
* @return <code>true</code> if it is snapshot session else <code>false</code>
*/
boolean isSnapshotSession();
/**
* Set whether or not the session should be in snapshot mode
*
* @param isSnapshot
* true for snapshot mode, false otherwise
*/
void setSnapshot(boolean isSnapshot);
/**
* Gets the snapshot information the session or null if it is not a
* snapshot session.
* @return snapshot information
*/
ISnapshotInfo getSnapshotInfo();
/**
* Sets the snapshot information of the session
* @param setSnapshotInfo - the snapshot data to set.
*/
void setSnapshotInfo(ISnapshotInfo setSnapshotInfo);
/**
* Get whether or not the session should be in Live mode
*
* @return <code>true</code> if is a live session else <code>false</code>
*/
public boolean isLive();
/**
* Set whether or not the session should be in Live mode
*
* @param isLive
* true for Live mode, false otherwise
*/
public void setLive(boolean isLive);
/**
* Get the live delay which is the delay in micro seconds before the data is
* flushed and streamed.
*
* @return the live delay or -1 if the default value should be used
*/
public long getLiveDelay();
/**
* Set the live delay which is the delay in micro seconds before the data is
* flushed and streamed.
*
* @param liveDelay
* the live delay
*/
public void setLiveDelay(long liveDelay);
/**
* Get the network URL in case control and data is configured together
* otherwise null If it returns a non-null value, getControlUrl() and
* getDataUrl() have to return null.
*
* @return The network URL or null.
*/
String getNetworkUrl();
/**
* Set the network URL
*
* @param networkUrl
* the network URL
*/
void setNetworkUrl(String networkUrl);
/**
* Get the control URL in case control and data is configured separately. If
* it returns a non-null value, getDataUrl() has to return a valid value too
* and getNetworkUrl() has to return null.
*
* @return The control URL or null.
*/
String getControlUrl();
/**
* Set the control URL
*
* @param controlUrl
* the control URL
*/
void setControlUrl(String controlUrl);
/**
* Get the data URL in case control and data is configured separately. If it
* returns a non-null value, getControlUrl() has to return a valid value too
* and getNetworkUrl() has to return null.
*
* @return The data URL or null.
*/
String getDataUrl();
/**
* Set the data URL
*
* @param datalUrl
* the data URL
*/
void setDataUrl(String datalUrl);
/**
* Get the live URL.
*
* @return the live URL
*/
String getLiveUrl();
/**
* Set the live URL.
*
* @param liveUrl
* the live URL
*/
void setLiveUrl(String liveUrl);
/**
* Get the live port.
*
* @return the live port
*/
Integer getLivePort();
/**
* Set the live port.
*
* @param livePort
* the live port
*/
void setLivePort(Integer livePort);
}