Updated to .NET 7.0 and added Jenkinsfile.

This commit is contained in:
2022-12-01 17:51:54 +00:00
parent 0073efc9ac
commit a1401c63e9
58 changed files with 79 additions and 7 deletions

View File

@@ -0,0 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
</PropertyGroup>
</Project>

View File

@@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.IO;
namespace GameServiceWarden.ModuleFramework
{
public interface IService
{
event EventHandler<ServiceState> StateChangeEvent;
event EventHandler<string> UpdateLogEvent;
IReadOnlyCollection<IServiceConfigurable> Configurables{ get; }
void InitializeService();
void ElegantShutdown();
byte[] GetLogBuffer();
void ExecuteCommand(string command);
}
}

View File

@@ -0,0 +1,9 @@
namespace GameServiceWarden.ModuleFramework
{
public interface IServiceConfigurable
{
string OptionName { get; }
string GetValue();
bool SetValue(string value);
}
}

View File

@@ -0,0 +1,29 @@
using System.Collections.Generic;
namespace GameServiceWarden.ModuleFramework
{
public interface IServiceModule
{
/// <summary>
/// The name of the game service this module handles.
/// </summary>
string Name { get; }
/// <summary>
/// Description of the game service this module handles.
/// </summary>
string Description { get; }
/// <summary>
/// The authors responsible for creating this module.
/// </summary>
IEnumerable<string> Authors { get; }
/// <summary>
/// Creates an instance of a the service to be used.
/// </summary>
/// <param name="workspace">The workspace directory. All service required files should be stored here. Expect the directory to be created.</param>
/// <returns>The <see cref="IService"/> responsible for the instance of the game service.</returns>
IService InstantiateService(string workspace);
}
}

View File

@@ -0,0 +1,9 @@
namespace GameServiceWarden.ModuleFramework
{
public enum ServiceState
{
Stopped,
Running,
RestartPending
}
}