view LightClone/Source/ServiceProvider.h @ 64:3507bd831c7f

Hook up ServiceProvider
author koryspansel <koryspansel@bendbroadband.com>
date Tue, 04 Oct 2011 13:02:45 -0700
parents 44dcff5abf12
children
line wrap: on
line source

/*
 * ServiceProvider
 */

#ifndef __SERVICEPROVIDER_H__
#define __SERVICEPROVIDER_H__

#include "Types.h"
#include "Service.h"

/*
 * ServiceProvider
 */
class ServiceProvider
{
public:

	/*
	 * AddService
	 */
	ErrorCode AddService(const char* pName, Service* pService);

	/*
	 * GetService
	 */
	Service* GetService(const char* pName);

	/*
	 * GetService
	 */
	template<typename ServiceType>
	ErrorCode GetService(const char* pName, ServiceType** pService)
	{
		ErrorCode eCode = Error_Fail;

		if(pService)
		{
			*pService = (ServiceType*)GetService(pName);
			if(*pService)
			{
				eCode = Error_Success;
			}
		}

		return eCode;
	}
};

#endif //__SERVICEPROVIDER_H__