Click here to Skip to main content
15,896,201 members
Articles / Programming Languages / C#

Thread-safe Silverlight Cairngorm

Rate me:
Please Sign up or sign in to vote.
4.75/5 (9 votes)
20 Oct 2008CDDL6 min read 49.3K   320   21  
Some code changes and improvements that make the Silverlight Cairngorm thread-safe
using System;
using System.Collections.Generic;
using System.Net;

using SilverlightCairngorm;

namespace SilverlightCairngorm.Business
{
	/// <summary>
	/// The ServiceLocator allows service to be located and security credentials to be managed.
	/// </summary>
	public abstract class ServiceLocator : IServiceLocator
	{
		private Dictionary<string, WebClient> _httpServices = new Dictionary<string, WebClient>();

		/// <summary>
		/// register a service
		/// </summary>
		/// <param name="serviceName"></param>
		/// <param name="serviceClient"></param>
		public void addHTTPService(string serviceName, WebClient serviceClient)
		{
			_httpServices.Add(serviceName, serviceClient);
		}

		/// <summary>
		/// Un-register a service
		/// </summary>
		/// <param name="serviceName"></param>
		public void removeHTTPService(string serviceName)
		{
			if (_httpServices.ContainsKey(serviceName))
				_httpServices.Remove(serviceName);
		}

		/// <summary>
		/// Return the HTTPService for the given name.
		/// </summary>
		/// <param name="name"></param>
		/// <returns></returns>
		public WebClient getHTTPService(String name)
		{
			if (_httpServices.ContainsKey(name))
				return _httpServices[name];
			return null;
		}

		/// <summary>
		/// Set the credentials for all registered services.
		/// </summary>
		/// <param name="username"></param>
		/// <param name="password"></param>
		public void setCredentials(String username, String password)
		{
			throw new NotImplementedException("Please contact modestyZ@hotmail.com to implement setCredentials method");
		}

		/// <summary>
		/// Set the remote credentials for all registered services.
		/// </summary>
		/// <param name="username"></param>
		/// <param name="password"></param>
		public void setRemoteCredentials(String username, String password)
		{
			throw new NotImplementedException("Please contact modestyZ@hotmail.com to implement setRemoteCredentials method");
		}

		/// <summary>
		/// Logs the user out of all registered services.
		/// </summary>
		public void logout()
		{
			throw new NotImplementedException("Please contact modestyZ@hotmail.com to implement setRemoteCredentials method");
		}

	}
   
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Common Development and Distribution License (CDDL)


Written By
Technical Lead
United States United States
https://github.com/modesty

https://www.linkedin.com/in/modesty-zhang-9a43771

https://twitter.com/modestyqz

Comments and Discussions