Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(935)

Unified Diff: experimental/visual_studio_plugin/third_party/Microsoft.VisualStudio.Project/OleServiceProvider.cs

Issue 10928195: First round of dead file removal (Closed) Base URL: https://github.com/samclegg/nativeclient-sdk.git@master
Patch Set: Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: experimental/visual_studio_plugin/third_party/Microsoft.VisualStudio.Project/OleServiceProvider.cs
diff --git a/experimental/visual_studio_plugin/third_party/Microsoft.VisualStudio.Project/OleServiceProvider.cs b/experimental/visual_studio_plugin/third_party/Microsoft.VisualStudio.Project/OleServiceProvider.cs
deleted file mode 100644
index 0cd71d8a106130dd27c945ae8c3374bb90e8e766..0000000000000000000000000000000000000000
--- a/experimental/visual_studio_plugin/third_party/Microsoft.VisualStudio.Project/OleServiceProvider.cs
+++ /dev/null
@@ -1,247 +0,0 @@
-/// Copyright (c) Microsoft Corporation. All rights reserved.
-
-using System;
-using System.Collections.Generic;
-using System.Runtime.InteropServices;
-using Microsoft.VisualStudio;
-using IOleServiceProvider = Microsoft.VisualStudio.OLE.Interop.IServiceProvider;
-
-namespace Microsoft.VisualStudio.Project
-{
- public class OleServiceProvider : IOleServiceProvider, IDisposable
- {
- #region Public Types
- [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1034:NestedTypesShouldNotBeVisible")]
- public delegate object ServiceCreatorCallback(Type serviceType);
- #endregion
-
- #region Private Types
- private class ServiceData : IDisposable
- {
- private Type serviceType;
- private object instance;
- private ServiceCreatorCallback creator;
- private bool shouldDispose;
- public ServiceData(Type serviceType, object instance, ServiceCreatorCallback callback, bool shouldDispose)
- {
- if(null == serviceType)
- {
- throw new ArgumentNullException("serviceType");
- }
-
- if((null == instance) && (null == callback))
- {
- throw new ArgumentNullException("instance");
- }
-
- this.serviceType = serviceType;
- this.instance = instance;
- this.creator = callback;
- this.shouldDispose = shouldDispose;
- }
-
- public object ServiceInstance
- {
- get
- {
- if(null == instance)
- {
- instance = creator(serviceType);
- }
- return instance;
- }
- }
-
- public Guid Guid
- {
- get { return serviceType.GUID; }
- }
-
- public void Dispose()
- {
- if((shouldDispose) && (null != instance))
- {
- IDisposable disp = instance as IDisposable;
- if(null != disp)
- {
- disp.Dispose();
- }
- instance = null;
- }
- creator = null;
- GC.SuppressFinalize(this);
- }
- }
- #endregion
-
- #region fields
-
- private Dictionary<Guid, ServiceData> services = new Dictionary<Guid, ServiceData>();
- private bool isDisposed;
- /// <summary>
- /// Defines an object that will be a mutex for this object for synchronizing thread calls.
- /// </summary>
- private static volatile object Mutex = new object();
- #endregion
-
- #region ctors
- public OleServiceProvider()
- {
- }
- #endregion
-
- #region IOleServiceProvider Members
-
- public int QueryService(ref Guid guidService, ref Guid riid, out IntPtr ppvObject)
- {
- ppvObject = (IntPtr)0;
- int hr = VSConstants.S_OK;
-
- ServiceData serviceInstance = null;
-
- if(services != null && services.ContainsKey(guidService))
- {
- serviceInstance = services[guidService];
- }
-
- if(serviceInstance == null)
- {
- return VSConstants.E_NOINTERFACE;
- }
-
- // Now check to see if the user asked for an IID other than
- // IUnknown. If so, we must do another QI.
- //
- if(riid.Equals(NativeMethods.IID_IUnknown))
- {
- ppvObject = Marshal.GetIUnknownForObject(serviceInstance.ServiceInstance);
- }
- else
- {
- IntPtr pUnk = IntPtr.Zero;
- try
- {
- pUnk = Marshal.GetIUnknownForObject(serviceInstance.ServiceInstance);
- hr = Marshal.QueryInterface(pUnk, ref riid, out ppvObject);
- }
- finally
- {
- if(pUnk != IntPtr.Zero)
- {
- Marshal.Release(pUnk);
- }
- }
- }
-
- return hr;
- }
-
- #endregion
-
- #region Dispose
-
- /// <summary>
- /// The IDispose interface Dispose method for disposing the object determinastically.
- /// </summary>
- public void Dispose()
- {
- Dispose(true);
- GC.SuppressFinalize(this);
- }
-
- #endregion
-
- /// <summary>
- /// Adds the given service to the service container.
- /// </summary>
- /// <param name="serviceType">The type of the service to add.</param>
- /// <param name="serviceInstance">An instance of the service.</param>
- /// <param name="shouldDisposeServiceInstance">true if the Dipose of the service provider is allowed to dispose the sevice instance.</param>
- public void AddService(Type serviceType, object serviceInstance, bool shouldDisposeServiceInstance)
- {
- // Create the description of this service. Note that we don't do any validation
- // of the parameter here because the constructor of ServiceData will do it for us.
- ServiceData service = new ServiceData(serviceType, serviceInstance, null, shouldDisposeServiceInstance);
-
- // Now add the service desctription to the dictionary.
- AddService(service);
- }
-
- public void AddService(Type serviceType, ServiceCreatorCallback callback, bool shouldDisposeServiceInstance)
- {
- // Create the description of this service. Note that we don't do any validation
- // of the parameter here because the constructor of ServiceData will do it for us.
- ServiceData service = new ServiceData(serviceType, null, callback, shouldDisposeServiceInstance);
-
- // Now add the service desctription to the dictionary.
- AddService(service);
- }
-
- private void AddService(ServiceData data)
- {
- // Make sure that the collection of services is created.
- if(null == services)
- {
- services = new Dictionary<Guid, ServiceData>();
- }
-
- // Disallow the addition of duplicate services.
- if(services.ContainsKey(data.Guid))
- {
- throw new InvalidOperationException();
- }
-
- services.Add(data.Guid, data);
- }
-
- /// <devdoc>
- /// Removes the given service type from the service container.
- /// </devdoc>
- public void RemoveService(Type serviceType)
- {
- if(serviceType == null)
- {
- throw new ArgumentNullException("serviceType");
- }
-
- if(services.ContainsKey(serviceType.GUID))
- {
- services.Remove(serviceType.GUID);
- }
- }
-
- #region helper methods
- /// <summary>
- /// The method that does the cleanup.
- /// </summary>
- /// <param name="disposing"></param>
- protected virtual void Dispose(bool disposing)
- {
- // Everybody can go here.
- if(!this.isDisposed)
- {
- // Synchronize calls to the Dispose simulteniously.
- lock(Mutex)
- {
- if(disposing)
- {
- // Remove all our services
- if(services != null)
- {
- foreach(ServiceData data in services.Values)
- {
- data.Dispose();
- }
- services.Clear();
- services = null;
- }
- }
-
- this.isDisposed = true;
- }
- }
- }
- #endregion
-
- }
-}

Powered by Google App Engine
This is Rietveld 408576698