using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Installables.All
{
///
/// Used by the Binary and Setup Component Manager,
/// could possible be reused later for a new Component Manager
///
public interface IManageComponents
{
///
/// Quick Check to see if newer Components are available
///
/// true, if newer components are available, false otherwise
bool AreNewerComponentsAvailable();
///
/// Retrieves the list of newer components that need to be installed
///
/// Setup Event Object is passed, for component manager to pass down to it's components
/// a list of newer components to install, null otherwise
IInstallComponent[] GetNewerComponents(ref SetupEvents setupEventObj);
///
/// Retrieves the list of all installed components, in order to uninstall
///
/// Specify Component Filter
/// Setup Event Object is passed, for component manager to pass down to it's components
/// a list of all installed components, null otherwise
IInstallComponent[] GetAllInstalledComponents(string ComponentsSeperatedbySemiColonOrBlankForAll, ref SetupEvents setupEventObj);
///
/// Retrieves the list of all installed components
///
/// a list of all installed components, null otherwise
ComponentConfig.Component[] GetAllInstalledComponents();
///
/// Retrieves the list of all installed componentsW
///
/// a list of all installed componentsW, null otherwise
ComponentConfig.ComponentW GetAllInstalledComponentsW();
///
/// Retrieves the list of all Embedded components
///
/// a list of all embedded components, null otherwise
ComponentConfig.Component[] GetAllEmbeddedComponents();
}
}