92 lines
1.9 KiB
C#
92 lines
1.9 KiB
C#
|
using System;
|
|||
|
using ln.logging;
|
|||
|
using ln.http;
|
|||
|
using System.Net;
|
|||
|
using ln.skyscanner.http;
|
|||
|
using System.IO;
|
|||
|
namespace ln.skyscanner
|
|||
|
{
|
|||
|
public enum ComponentState { STOPPED, INITIALIZED, STARTED, FAILED }
|
|||
|
|
|||
|
public class SkyScanner
|
|||
|
{
|
|||
|
public String[] Arguments { get; }
|
|||
|
public String BasePath { get; private set; }
|
|||
|
|
|||
|
|
|||
|
public HTTPServer HTTPServer { get; private set; }
|
|||
|
|
|||
|
public SkyScanner(String[] args)
|
|||
|
{
|
|||
|
Logging.Log(LogLevel.INFO, "SkyScanner: Constructor");
|
|||
|
|
|||
|
BasePath = Path.GetFullPath(".");
|
|||
|
|
|||
|
Logging.Log(LogLevel.INFO, "SkyScanner: BasePath={0}", BasePath);
|
|||
|
|
|||
|
|
|||
|
Arguments = args;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
public void Start()
|
|||
|
{
|
|||
|
Logging.Log(LogLevel.INFO, "SkyScanner: Start()");
|
|||
|
|
|||
|
StartHttpServer();
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
public void Stop()
|
|||
|
{
|
|||
|
Logging.Log(LogLevel.INFO, "SkyScanner: Stop()");
|
|||
|
|
|||
|
|
|||
|
StopHttpServer();
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/** HTTP Server **/
|
|||
|
|
|||
|
public ComponentState HttpStatus
|
|||
|
{
|
|||
|
get
|
|||
|
{
|
|||
|
if (HTTPServer != null)
|
|||
|
{
|
|||
|
if (HTTPServer.IsRunning)
|
|||
|
return ComponentState.STARTED;
|
|||
|
|
|||
|
return ComponentState.INITIALIZED;
|
|||
|
}
|
|||
|
return ComponentState.STOPPED;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public void StartHttpServer()
|
|||
|
{
|
|||
|
HTTPServer = new HTTPServer();
|
|||
|
HTTPServer.AddEndpoint(new System.Net.IPEndPoint(IPAddress.Any,8080));
|
|||
|
|
|||
|
HTTPServer.DefaultApplication = new SkyScannerHttpApplication(this);
|
|||
|
|
|||
|
HTTPServer.Start();
|
|||
|
}
|
|||
|
|
|||
|
public void StopHttpServer()
|
|||
|
{
|
|||
|
if (HTTPServer != null)
|
|||
|
{
|
|||
|
if (HTTPServer.IsRunning)
|
|||
|
{
|
|||
|
HTTPServer.Stop();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
}
|