/* * Copyright 2003-2004 The Apache Software Foundation * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or * implied. * * See the License for the specific language governing permissions and * limitations under the License. */ namespace Apache.Avalon.Composition.Model { using System; using Apache.Avalon.Framework; using Apache.Avalon.Composition.Data; using Apache.Avalon.Meta; using Apache.Avalon.Repository; using Apache.Avalon.Composition.Logging; /// Defintion of a system context that exposes a system wide set of parameters. /// /// /// Avalon Development Team /// /// $Revision: 1.1 $ $Date: 2004/02/28 22:15:43 $ /// public interface ISystemContext : IContext { /// Return the model factory. /// /// /// the factory /// IModelFactory ModelFactory { get; } /// Return the base directory from which relative references /// should be resolved. /// /// /// the base directory /// System.IO.FileInfo BaseDirectory { get; } /// Return the home directory from which containers may establish /// persistent content. /// /// /// the working directory /// System.IO.FileInfo HomeDirectory { get; } /// Return the temp directory from which containers may establish /// non-persistent content. /// /// /// the temp directory /// System.IO.FileInfo TempDirectory { get; } /// Return the application repository from which resource /// directives can be resolved. /// /// /// the repository /// IRepository Repository { get; } /// Return the system trace flag. /// /// /// the trace flag /// bool IsTraceEnabled { get; } /// Return the logging manager. /// /// /// the logging manager. /// ILoggingManager LoggingManager { get; } /// Return the system logging channel. /// /// /// the system logging channel /// ILogger Logger { get; } /// Return the default deployment phase timeout value. /// the timeout value /// long DefaultDeploymentTimeout { get; } //------------------------------------------------------------------ // runtime operations //------------------------------------------------------------------ /// Request the commissioning of a runtime for a supplied deployment /// model. /// /// the deployment model /// /// Exception of a commissioning error occurs /// void Commission(IDeploymentModel model); /// Request the decommissioning of a runtime for a supplied deployment /// model. /// /// the deployment model /// /// Exception of a commissioning error occurs /// void Decommission(IDeploymentModel model); /// Request resolution of an object from the runtime. /// the deployment model /// /// Exception if a deployment error occurs /// System.Object Resolve(IDeploymentModel model); /// Request the release of an object from the runtime. /// the deployment model /// /// the object to release /// /// Exception if a deployment error occurs /// void Release(IDeploymentModel model, System.Object instance); } }