using Decal.Interop.Core;

namespace Decal.Adapter;

public sealed class ServiceProxy : IDecalService, IDecalDirectory
{
	private ServiceBase wrapped;

	internal ServiceProxy(ServiceBase toWrap)
	{
		wrapped = toWrap;
	}

	void IDecalService.AfterPlugins()
	{
		wrapped.ServiceEvent(ServiceBase.ServiceEventType.AfterPluigins);
	}

	void IDecalService.BeforePlugins()
	{
		wrapped.ServiceEvent(ServiceBase.ServiceEventType.BeforePlugins);
	}

	void IDecalService.Initialize(DecalCore pDecal)
	{
		wrapped.standardEvent(ExtensionEvents.Startup);
	}

	void IDecalService.Terminate()
	{
		wrapped.standardEvent(ExtensionEvents.Shutdown);
	}

	object IDecalDirectory.Lookup(string strName)
	{
		return wrapped.ResolvePath(strName);
	}
}
