Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / AddIn / AddIn / System / Addin / Hosting / PipelineDeploymentState.cs / 1305376 / PipelineDeploymentState.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Class: PipelineDeploymentState ** ** Purpose: Represents all the add-in pipeline components ** in a directory structure. ** ===========================================================*/ using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Globalization; using System.IO; using System.Text; using System.Reflection; using System.AddIn.MiniReflection; using System.Diagnostics.Contracts; namespace System.AddIn.Hosting { [Serializable] internal sealed class PipelineDeploymentState : DeploymentState { private List_hostAdapters; private List _contracts; private List _addinAdapters; private List _addinBases; private List _partialTokens; private List _fileCounts; internal PipelineDeploymentState() { _hostAdapters = new List (); _contracts = new List (); _addinAdapters = new List (); _addinBases = new List (); _fileCounts = new List (new int[]{0,0,0,0}); } internal List HostAdapters { get { return _hostAdapters; } } internal List Contracts { get { return _contracts; } } internal List AddInAdapters { get { return _addinAdapters; } } internal List AddInBases { get { return _addinBases; } } internal List PartialTokens { get { return _partialTokens; } } internal List FileCounts { get { return _fileCounts; } } internal void ConnectPipeline(Collection warnings) { List result = new List (); // For ease of maintanence & debugging for users of the add-in // model, we must make it easy to report which parts are not // usable, due to missing connections with other parts of the // pipeline. // Real connect loop. foreach (HostAdapter hostAdapter in HostAdapters) { foreach (ContractComponent contract in Contracts) { if (!hostAdapter.Constructors.Contains(contract.TypeInfo)) continue; hostAdapter.ConnectedToNeighbors = true; foreach (AddInAdapter addinAdapter in AddInAdapters) { if (!addinAdapter.Contracts.Contains(contract.TypeInfo)) continue; contract.ConnectedToNeighbors = true; foreach (AddInBase addinBase in AddInBases) { if (!addinAdapter.CanConnectTo(addinBase)) continue; addinAdapter.ConnectedToNeighbors = true; addinBase.ConnectedToNeighbors = true; PartialToken partialToken = new PartialToken(hostAdapter, contract, addinAdapter, addinBase); result.Add(partialToken); } // foreach addinBase } // foreach addinAdapter } // foreach contract } // foreach hostAdapter // Look for unconnected parts. int unconnectedParts = 0; unconnectedParts += LookForUnconnectedParts(HostAdapters, warnings); unconnectedParts += LookForUnconnectedParts(Contracts, warnings); unconnectedParts += LookForUnconnectedParts(AddInAdapters, warnings); unconnectedParts += LookForUnconnectedParts(AddInBases, warnings); #if ADDIN_VERBOSE_WARNINGS warnings.Add(String.Format(CultureInfo.CurrentCulture, "PipelineDeploymentState::Connect: Found {0} valid pipelines.", result.Count)); #endif if (unconnectedParts > 0) warnings.Add(String.Format(CultureInfo.CurrentCulture, Res.CouldntConnectNInvalidParts, unconnectedParts)); _partialTokens = result; } private static int LookForUnconnectedParts (IEnumerable parts, Collection warnings) where T : PipelineComponent { int numUnconnected = 0; foreach (PipelineComponent part in parts) { if (!part.ConnectedToNeighbors) { warnings.Add(String.Format(CultureInfo.CurrentCulture, Res.CouldntConnectOnePart, part.ToString())); numUnconnected++; } } return numUnconnected; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- AddInAdapter.cs
- TickBar.cs
- HttpCookie.cs
- CollaborationHelperFunctions.cs
- GreenMethods.cs
- LockCookie.cs
- QilSortKey.cs
- SpecularMaterial.cs
- CollectionsUtil.cs
- WhereQueryOperator.cs
- Timeline.cs
- ConfigXmlComment.cs
- GeneralTransform2DTo3D.cs
- StringBuilder.cs
- Vector3DConverter.cs
- EmbeddedObject.cs
- ScriptingScriptResourceHandlerSection.cs
- DataGridLengthConverter.cs
- TypeResolver.cs
- XmlNullResolver.cs
- StorageTypeMapping.cs
- TaiwanCalendar.cs
- DataPagerField.cs
- MetadataExchangeBindings.cs
- CodeAttributeArgumentCollection.cs
- GeometryCombineModeValidation.cs
- DetailsViewModeEventArgs.cs
- CFStream.cs
- PartialArray.cs
- TextTreeRootTextBlock.cs
- Base64Encoding.cs
- PropertyValue.cs
- SmtpFailedRecipientException.cs
- ArraySortHelper.cs
- PreProcessInputEventArgs.cs
- XmlSerializableWriter.cs
- LogArchiveSnapshot.cs
- SelfIssuedAuthProofToken.cs
- TemplateContentLoader.cs
- ContextMenuAutomationPeer.cs
- RemoteArgument.cs
- FormsAuthentication.cs
- CollectionConverter.cs
- EntityCommandDefinition.cs
- DataTableCollection.cs
- GridProviderWrapper.cs
- BinaryUtilClasses.cs
- WorkflowInstanceExtensionManager.cs
- CheckBoxField.cs
- ResourceAttributes.cs
- ShutDownListener.cs
- EmptyReadOnlyDictionaryInternal.cs
- DPTypeDescriptorContext.cs
- StatusBarItemAutomationPeer.cs
- MaterialGroup.cs
- LogPolicy.cs
- CodeDomConfigurationHandler.cs
- ResXResourceWriter.cs
- MailMessageEventArgs.cs
- TextureBrush.cs
- XslTransform.cs
- CleanUpVirtualizedItemEventArgs.cs
- TypeUtil.cs
- ComponentResourceManager.cs
- AsyncWaitHandle.cs
- XmlMemberMapping.cs
- SqlFunctionAttribute.cs
- Help.cs
- TypeListConverter.cs
- RawStylusActions.cs
- DataSourceUtil.cs
- KnownTypes.cs
- StaticFileHandler.cs
- OperationParameterInfoCollection.cs
- RemotingService.cs
- objectquery_tresulttype.cs
- assemblycache.cs
- PeerResolverBindingElement.cs
- ThreadLocal.cs
- ConfigurationStrings.cs
- SafeCryptContextHandle.cs
- ToolStripItem.cs
- SqlErrorCollection.cs
- BaseTreeIterator.cs
- UpnEndpointIdentity.cs
- XmlAttributes.cs
- AsyncDataRequest.cs
- DeadCharTextComposition.cs
- DataPagerCommandEventArgs.cs
- LostFocusEventManager.cs
- XmlQueryContext.cs
- TypeConverter.cs
- LambdaExpression.cs
- HandlerWithFactory.cs
- Publisher.cs
- WindowsPrincipal.cs
- WebConfigurationHost.cs
- WebSysDisplayNameAttribute.cs
- IndicCharClassifier.cs
- ChangeDirector.cs