// ****************************************************************************************** // ** ** // ** RAYTHEON PROPRIETARY: THIS DOCUMENT CONTAINS DATA OR INFORMATION ** // ** PROPRIETARY TO RAYTHEON COMPANY AND IS RESTRICTED TO USE ONLY BY PERSONS ** // ** AUTHORIZED BY RAYTHEON COMPANY IN WRITING TO USE IT.DISCLOSURE TO ** // ** UNAUTHORIZED PERSONS WOULD LIKELY CAUSE SUBSTANTIAL COMPETITIVE HARM TO ** // ** RAYTHEON COMPANY'S BUSINESS POSITION. NEITHER SAID DOCUMENT NOR ITS ** // ** CONTENTS SHALL BE FURNISHED OR DISCLOSED TO OR COPIED OR USED BY PERSONS ** // ** OUTSIDE RAYTHEON COMPANY WITHOUT THE EXPRESS WRITTEN APPROVAL OF RAYTHEON ** // ** COMPANY. ** // ** ** // ** THIS PROPRIETARY NOTICE IS NOT APPLICABLE IF DELIVERED TO THE U.S. ** // ** GOVERNMENT. ** // ** ** // ** UNPUBLISHED WORK - COPYRIGHT RAYTHEON COMPANY. ** // ** ** // ** WARNING: THIS DOCUMENT CONTAINS TECHNICAL DATA AND / OR TECHNOLOGY WHOSE ** // ** EXPORT OR DISCLOSURE TO NON-U.S.PERSONS, WHEREVER LOCATED, IS RESTRICTED ** // ** BY THE INTERNATIONAL TRAFFIC IN ARMS REGULATIONS (ITAR) (22 C.F.R.SECTION ** // ** 120-130) OR THE EXPORT ADMINISTRATION REGULATIONS(EAR) (15 C.F.R.SECTION ** // ** 730-774). THIS DOCUMENT CANNOT BE EXPORTED(E.G., PROVIDED TO A SUPPLIER ** // ** OUTSIDE OF THE UNITED STATES) OR DISCLOSED TO A NON-U.S.PERSON, WHEREVER ** // ** LOCATED, UNTIL A FINAL JURISDICTION AND CLASSIFICATION DETERMINATION HAS ** // ** BEEN COMPLETED AND APPROVED BY RAYTHEON, AND ANY REQUIRED U.S.GOVERNMENT ** // ** APPROVALS HAVE BEEN OBTAINED. VIOLATIONS ARE SUBJECT TO SEVERE CRIMINAL ** // ** PENALTIES. ** // ** ** // ** CAPITAL EQUIPMENT/SOFTWARE: THIS TECHNICAL DATA WAS DEVELOPED OR ACQUIRED ** // ** EXCLUSIVELY AT CONTRACTOR EXPENSE AND IS INTENDED FOR USE ON MULTIPLE ** // ** PROJECTS/PROGRAMS. ** // ** ** // ******************************************************************************************* using System; using System.Collections.Generic; using System.Linq; using System.Text; using Raytheon.Communication; using System.Diagnostics.CodeAnalysis; namespace Raytheon.Instruments { /// /// Instrument manager interface. /// /// /// An instrument manager is responsible for loading all of the instrument plugins and providing an interface for retrieving those instruments. /// [UmsContract] public interface IInstrumentManager { /// /// Gets an instrument by name. /// /// The name. /// The instrument /// This function cannot be named the same as the Generic method GetInstrument/ /// because certain test executives do not support generics, and will throw an AmbiguousMatchException. IInstrument GetGenericInstrument(string name); /// /// Gets an instrument by name. /// /// The name. /// The instrument T GetInstrument(string name) where T : class; /// /// Gets all instruments currently loaded. /// /// collection of all known instruments ICollection GetInstruments(); /// /// Gets all instruments currently loaded. /// /// array of all known instruments [UmsCommand("IInstrumentManager.GetInstrumentsArray")] object[] GetInstrumentsArray(); /// /// Gets the instruments of the given type. /// /// The type. /// all known instruments of a certain type ICollection GetInstruments(Type type); /// /// Gets the instruments of the given type. /// /// The type. /// array of instruments of the specified type object[] GetInstrumentsArray(Type type); /// /// Initializes the instrument manager /// [UmsCommand("IInstrumentManager.Initialize")] void Initialize(); /// /// Sets/Gets the part location /// Added Dec 2013 to better clarify where the part locations are loading from /// and to be able to set it before initialization /// string _partsLocation { get; set; } /// /// Closes the instrument manager /// void Shutdown(); /// /// Returns a collection of instrument names loaded. /// /// all the known instrument's unique name [SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate")] [UmsCommand("IInstrumentManager.GetInstrumentNames")] ICollection GetInstrumentNames(); /// /// Returns a collection of instrument names loaded. /// /// all the known instrument names in array form [UmsCommand("IInstrumentManager.GetInstrumentNamesArray")] string[] GetInstrumentNamesArray(); /// /// Initializes all of the instruments. /// [UmsCommand("IInstrumentManager.InitializeInstruments")] void InitializeInstruments(); /// /// Initializes the instrument. /// /// Name of the inst. [UmsCommand("IInstrumentManager.InitializeInstrument")] void InitializeInstrument(string instName); /// /// Shuts down all of the instruments. /// [UmsCommand("IInstrumentManager.ShutdownInstruments")] void ShutdownInstruments(); /// /// Shutdowns the instrument. /// /// Name of the inst. [UmsCommand("IInstrumentManager.ShutdownInstrument")] void ShutdownInstrument(string instName); } }