Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Speech / Src / Internal / ResourceLoader.cs / 1 / ResourceLoader.cs
//------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------- using System; using System.IO; using System.Net; using System.Speech.Synthesis; #if SPEECHSERVER || PROMPT_ENGINE using System.Speech.Synthesis.TtsEngine; #endif namespace System.Speech.Internal { //******************************************************************* // // Public Types // //******************************************************************* internal class ResourceLoader { //******************************************************************** // // Internal Methods // //******************************************************************* #region Internal Methods ////// Load a file either from a local network or from the Internet. /// /// /// /// /// internal Stream LoadFile (Uri uri, out string mimeType, out Uri baseUri, out string localPath) { localPath = null; #if SPEECHSERVER || PROMPT_ENGINE if (_resourceLoader != null) { localPath = _resourceLoader.GetLocalCopy (uri, out mimeType, out baseUri); return new FileStream (localPath, FileMode.Open, FileAccess.Read, FileShare.Read); } else #endif { Stream stream = null; // Check for a local file if (!uri.IsAbsoluteUri || uri.IsFile) { // Local file string file = uri.IsAbsoluteUri ? uri.LocalPath : uri.OriginalString; try { stream = new FileStream (file, FileMode.Open, FileAccess.Read, FileShare.Read); } catch { if (Directory.Exists (file)) { throw new InvalidOperationException (SR.Get (SRID.CannotReadFromDirectory, file)); } throw; } baseUri = null; } else { try { // `http:// Load the data from the web stream = DownloadData (uri, out baseUri); } catch (WebException e) { throw new IOException (e.Message, e); } } mimeType = null; return stream; } } ////// Release a file from a cache if any /// /// internal void UnloadFile (string localPath) { #if SPEECHSERVER || PROMPT_ENGINE if (_resourceLoader != null) { _resourceLoader.ReleaseLocalCopy (localPath); } #endif } internal Stream LoadFile (Uri uri, out string localPath, out Uri redirectedUri) { string mediaTypeUnused; return LoadFile (uri, out mediaTypeUnused, out redirectedUri, out localPath); } #if SPEECHSERVER || PROMPT_ENGINE ////// Only one instance of the resource loader /// /// internal void SetResourceLoader (ISpeechResourceLoader resourceLoader) { // Changing the ResourceLoader if (_resourceLoader != null && resourceLoader != _resourceLoader) { throw new InvalidOperationException (); } _resourceLoader = resourceLoader; } #endif #endregion //******************************************************************** // // Private Methods // //******************************************************************** #region Private Methods ////// Dowload data from the web. /// Set the redirectUri as the location of the file could be redirected in ASP pages. /// /// /// ///private static Stream DownloadData (Uri uri, out Uri redirectedUri) { // Create a request for the URL. WebRequest request = WebRequest.Create (uri); // If required by the server, set the credentials. request.Credentials = CredentialCache.DefaultCredentials; // Get the response. using (HttpWebResponse response = (HttpWebResponse) request.GetResponse ()) { // Get the stream containing content returned by the server. using (Stream dataStream = response.GetResponseStream ()) { redirectedUri = response.ResponseUri; // `http:// Load the data from the web using (WebClient client = new WebClient ()) { client.UseDefaultCredentials = true; return new MemoryStream (client.DownloadData (redirectedUri)); } } } } #endregion //******************************************************************* // // Private Fields // //******************************************************************** #region Private Fields #if SPEECHSERVER || PROMPT_ENGINE ISpeechResourceLoader _resourceLoader; #endif #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- _OverlappedAsyncResult.cs
- DistributedTransactionPermission.cs
- basecomparevalidator.cs
- VisualTreeUtils.cs
- DetailsViewInsertEventArgs.cs
- FormViewRow.cs
- BindingBase.cs
- CTreeGenerator.cs
- TaskExceptionHolder.cs
- ProjectionPlanCompiler.cs
- XmlNamespaceManager.cs
- ReferencedAssembly.cs
- ImageCollectionEditor.cs
- XmlSchemaCollection.cs
- ListViewTableRow.cs
- ToolTipAutomationPeer.cs
- DBSqlParser.cs
- WrappedKeySecurityToken.cs
- RegexCapture.cs
- ImageAnimator.cs
- TextBox.cs
- SoapHeaders.cs
- DateTimeConverter.cs
- ExitEventArgs.cs
- CellIdBoolean.cs
- MessageAction.cs
- _SSPISessionCache.cs
- PerformanceCounterPermissionEntry.cs
- updateconfighost.cs
- SynchronizationValidator.cs
- SchemaElementDecl.cs
- X509UI.cs
- ObjectStateEntryDbUpdatableDataRecord.cs
- WebScriptMetadataMessageEncoderFactory.cs
- Codec.cs
- SessionStateContainer.cs
- CodeIdentifier.cs
- unitconverter.cs
- XamlReaderHelper.cs
- WeakReadOnlyCollection.cs
- SliderAutomationPeer.cs
- SystemFonts.cs
- dbdatarecord.cs
- StructuralCache.cs
- NameSpaceEvent.cs
- Vector3dCollection.cs
- RuntimeArgumentHandle.cs
- WebServiceData.cs
- NameValuePair.cs
- PermissionRequestEvidence.cs
- SafeRightsManagementSessionHandle.cs
- assertwrapper.cs
- SerialPinChanges.cs
- BaseCodePageEncoding.cs
- SerializableTypeCodeDomSerializer.cs
- LayoutSettings.cs
- RectAnimationUsingKeyFrames.cs
- ClientWindowsAuthenticationMembershipProvider.cs
- TimerElapsedEvenArgs.cs
- LoadGrammarCompletedEventArgs.cs
- XmlDomTextWriter.cs
- MemberPath.cs
- FontConverter.cs
- UserControl.cs
- Token.cs
- IsolationInterop.cs
- SelfIssuedAuthRSAPKCS1SignatureDeformatter.cs
- ReadOnlyState.cs
- ApplicationHost.cs
- RawMouseInputReport.cs
- CollectionType.cs
- DelegatedStream.cs
- DictionaryContent.cs
- ConfigurationSectionGroup.cs
- ACE.cs
- FunctionImportMapping.ReturnTypeRenameMapping.cs
- DisableDpiAwarenessAttribute.cs
- SqlEnums.cs
- sqlnorm.cs
- QueryContinueDragEventArgs.cs
- AsyncContentLoadedEventArgs.cs
- ControlDesignerState.cs
- PathTooLongException.cs
- PriorityQueue.cs
- UnaryNode.cs
- MsmqIntegrationAppDomainProtocolHandler.cs
- XmlAttribute.cs
- Rijndael.cs
- DataSourceSelectArguments.cs
- SHA1Managed.cs
- AutomationEventArgs.cs
- TemplatedWizardStep.cs
- DataGridPagerStyle.cs
- _emptywebproxy.cs
- IPipelineRuntime.cs
- KerberosSecurityTokenProvider.cs
- OpacityConverter.cs
- SerialPort.cs
- WebSysDisplayNameAttribute.cs
- HtmlControl.cs