123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- // Copyright (c) Service Stack LLC. All Rights Reserved.
- // License: https://raw.github.com/ServiceStack/ServiceStack/master/license.txt
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Threading.Tasks;
- using MediaBrowser.Model.Logging;
- using MediaBrowser.Model.Services;
- using ServiceStack.Host;
- namespace ServiceStack
- {
- public abstract partial class ServiceStackHost : IDisposable
- {
- public static ServiceStackHost Instance { get; protected set; }
- protected ServiceStackHost(string serviceName)
- {
- ServiceName = serviceName;
- ServiceController = CreateServiceController();
- RestPaths = new List<RestPath>();
- Metadata = new ServiceMetadata();
- GlobalRequestFilters = new List<Action<IRequest, IResponse, object>>();
- GlobalResponseFilters = new List<Action<IRequest, IResponse, object>>();
- }
- public abstract void Configure();
- public abstract object CreateInstance(Type type);
- protected abstract ServiceController CreateServiceController();
- public virtual ServiceStackHost Init()
- {
- Instance = this;
- ServiceController.Init();
- Configure();
- ServiceController.AfterInit();
- return this;
- }
- public virtual ServiceStackHost Start(string urlBase)
- {
- throw new NotImplementedException("Start(listeningAtUrlBase) is not supported by this AppHost");
- }
- public string ServiceName { get; set; }
- public ServiceMetadata Metadata { get; set; }
- public ServiceController ServiceController { get; set; }
- public List<RestPath> RestPaths = new List<RestPath>();
- public List<Action<IRequest, IResponse, object>> GlobalRequestFilters { get; set; }
- public List<Action<IRequest, IResponse, object>> GlobalResponseFilters { get; set; }
- public abstract T TryResolve<T>();
- public abstract T Resolve<T>();
- public virtual MediaBrowser.Model.Services.RouteAttribute[] GetRouteAttributes(Type requestType)
- {
- return requestType.AllAttributes<MediaBrowser.Model.Services.RouteAttribute>();
- }
- public abstract object GetTaskResult(Task task, string requestName);
- public abstract Func<string, object> GetParseFn(Type propertyType);
- public abstract void SerializeToJson(object o, Stream stream);
- public abstract void SerializeToXml(object o, Stream stream);
- public abstract object DeserializeXml(Type type, Stream stream);
- public abstract object DeserializeJson(Type type, Stream stream);
- public virtual void Dispose()
- {
- //JsConfig.Reset(); //Clears Runtime Attributes
- Instance = null;
- }
- protected abstract ILogger Logger
- {
- get;
- }
- public void OnLogError(Type type, string message)
- {
- Logger.Error(message);
- }
- public void OnLogError(Type type, string message, Exception ex)
- {
- Logger.ErrorException(message, ex);
- }
- }
- }
|