/**************************************************************************** * Copyright 2019 Nreal Techonology Limited. All rights reserved. * * This file is part of NRSDK. * * https://www.nreal.ai/ * *****************************************************************************/ namespace NRKernal { public interface ILifecycle { /// /// Starts an instance of a object. /// void Start(); /// /// Pause an instance of a object. /// void Pause(); /// /// Resume an instance of a object. /// void Resume(); /// /// Stops this instance of a object. /// void Stop(); } public interface ISubsystem : ILifecycle { /// // Will be true if asking the subsystem to start was successful. False in the case // that the subsystem has stopped, was asked to stop or has not been started yet. /// bool running { get; } } public interface ISubsystemDescriptor { /// /// A unique string that identifies the subsystem that this Descriptor can create. /// string id { get; } /// /// Creates an ISubsystem from this descriptor. /// /// An instance of ISubsystem. ISubsystem Create(); } }