75 lines
2.3 KiB
C#
75 lines
2.3 KiB
C#
using System;
|
|
using Unity.Pipeline.Config;
|
|
using Unity.Pipeline.Models;
|
|
using UnityEngine;
|
|
|
|
namespace Unity.Pipeline
|
|
{
|
|
public class RuntimePipelineServer : BasePipelineServer
|
|
{
|
|
private RuntimePipelineConfig m_Config;
|
|
private RuntimeInstanceDescriptor m_InstanceDescriptor;
|
|
|
|
public override DateTime StartedAt => m_InstanceDescriptor == null ? new DateTime() : m_InstanceDescriptor.StartedAt;
|
|
|
|
public RuntimePipelineServer(RuntimePipelineConfig config)
|
|
{
|
|
m_Config = config;
|
|
}
|
|
|
|
protected override (int basePort, int maxPort) GetPortRange()
|
|
{
|
|
return (7900, 7949); // Runtime production (test runtime servers use 7950-7999)
|
|
}
|
|
|
|
protected override void CreateInstanceDescriptor()
|
|
{
|
|
// Create and write instance descriptor for CLI discovery
|
|
m_InstanceDescriptor = RuntimeInstanceDescriptor.CreateCurrent(Port, m_Config);
|
|
RuntimeInstanceDescriptor.WriteToWorkingDirectory(m_InstanceDescriptor);
|
|
}
|
|
|
|
protected override void DeleteInstanceDescriptor()
|
|
{
|
|
// Clean up instance descriptor file
|
|
if (m_InstanceDescriptor != null)
|
|
{
|
|
RuntimeInstanceDescriptor.RemoveFromWorkingDirectory();
|
|
}
|
|
m_InstanceDescriptor = null;
|
|
}
|
|
|
|
protected override void UpdateHeartBeat()
|
|
{
|
|
// Update heartbeat in instance descriptor
|
|
if (m_InstanceDescriptor != null)
|
|
{
|
|
m_InstanceDescriptor.LastHeartbeat = DateTime.UtcNow;
|
|
try
|
|
{
|
|
RuntimeInstanceDescriptor.WriteToWorkingDirectory(m_InstanceDescriptor);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Debug.LogWarning($"Failed to update instance descriptor: {ex.Message}");
|
|
}
|
|
}
|
|
}
|
|
|
|
protected override object GetServerStatus()
|
|
{
|
|
UpdateHeartBeat();
|
|
return new
|
|
{
|
|
status = m_InstanceDescriptor == null ? "error" : "ready",
|
|
lastHeartbeat = m_InstanceDescriptor?.LastHeartbeat
|
|
};
|
|
}
|
|
|
|
protected override string GetToken()
|
|
{
|
|
return m_InstanceDescriptor.EvalToken;
|
|
}
|
|
}
|
|
}
|