/**
* Copyright 2014 Comcast Cable Communications Management, LLC
*
* This file is part of CATS.
*
* CATS is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* CATS 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with CATS. If not, see <http://www.gnu.org/licenses/>.
*/
package com.comcast.cats.info;
import java.net.Inet4Address;
import java.net.Inet6Address;
import java.net.InetAddress;
import java.net.URI;
import java.util.Map;
import com.comcast.cats.domain.Controller;
import com.comcast.cats.domain.HardwareInterface;
import com.comcast.cats.domain.HardwarePurpose;
import com.comcast.cats.domain.RFPlant;
/**
* Settop information interface.
*
* @author cfrede001
*/
public interface SettopInfo
{
public String getId();
public String getName();
public String getHostIpAddress();
public String getHostIp4Address();
public String getHostIp6Address();
public InetAddress getHostIpInetAddress();
public Inet4Address getHostIp4InetAddress();
public Inet6Address getHostIp6InetAddress();
public String getHostMacAddress();
public String getMcardMacAddress();
public String getManufacturer();
public String getModel();
public String getMake();
public String getFirmwareVersion();
public String getSerialNumber();
public String getMCardSerialNumber();
public String getUnitAddress();
public String getHardwareRevision();
public String getRemoteType();
public String getContent();
/**
* Example: wti1600://<ip>:<port>/?outlet=x
*
* @return
*/
public URI getPowerPath();
/**
*
* Examples: gc100-12://<ip>:<port>/?port=x gc100-6://<ip>:<port>/?port=x
* gc100://<ip>:<port>/?port=x itach://<ip>:<port>/?port=x
*
* @return
*/
public URI getRemotePath();
/**
*
* Example: For the chromamxx device we're using the left and right RCA
* connectors independently, so that must be specified. In this case if no
* connector was specified both would be used.
* chromamxx://<ip>:<port>/?port=3&connector=L
* chromamxx://<ip>:<port>/?port=3&connector=R
*
* @return
*/
public URI getAudioPath();
/**
* Place holder for clickstream.
*
* @return
*/
public URI getClickstreamPath();
/**
* Example: When utilizing the existing TraceServer.
* traceserver://<ip>:<port>/ General trace information about serial
* information.
* trace://<ip>:<port>/?port=COM1&rate=115200&data=8&parity=none
* &stop=1&flow=none
*
* @return
*/
public URI getTracePath();
/**
* Example: axis://<ip>:<port>/?camera=1&version=
*
* @return
*/
public URI getVideoPath();
/**
* Example: This is currently being implemented using a GC100 device.
* gc100://<ip>:<port>/?port=x
*
* @return
*/
public URI getVideoSelectionPath();
/**
* Place holder for specifying which Admin server this settop is
* communicating with.
*
* @return
*/
public URI getClusterPath();
/**
* @return All properties we failed to consider when defining this class. It
* is used for properties that people in test want to associate with
* a settop, but that we have not accounted for in advance.
*/
public Map< String, String > getExtraProperties();
/**
* Find the extra property value for the given key. The find routine should
* ignore whitespace and be case insensitive when searching against the list
* of extra properties.
*
* @param key
* @return - Value corresponding to key or null otherwise.
*/
public String findExtraProperty( String key );
public String getRackId();
public String getEnvironmentId();
public RFPlant getRFPlant();
public Controller getController();
/**
* Get the hardware device for a type that is connected to this settop.
*
* @param hardwarePurpose
* @return the HardwareInterface that is connected to this settop.
*/
public HardwareInterface getHardwareInterfaceByType( HardwarePurpose hardwarePurpose );
}