using System;
using System.Runtime.InteropServices;
namespace TEngine
{
///
/// 对象信息。
///
[StructLayout(LayoutKind.Auto)]
public struct ObjectInfo
{
private readonly string _name;
private readonly bool _locked;
private readonly bool _customCanReleaseFlag;
private readonly int _priority;
private readonly DateTime _lastUseTime;
private readonly int _spawnCount;
///
/// 初始化对象信息的新实例。
///
/// 对象名称。
/// 对象是否被加锁。
/// 对象自定义释放检查标记。
/// 对象的优先级。
/// 对象上次使用时间。
/// 对象的获取计数。
public ObjectInfo(string name, bool locked, bool customCanReleaseFlag, int priority, DateTime lastUseTime, int spawnCount)
{
_name = name;
_locked = locked;
_customCanReleaseFlag = customCanReleaseFlag;
_priority = priority;
_lastUseTime = lastUseTime;
_spawnCount = spawnCount;
}
///
/// 获取对象名称。
///
public string Name => _name;
///
/// 获取对象是否被加锁。
///
public bool Locked => _locked;
///
/// 获取对象自定义释放检查标记。
///
public bool CustomCanReleaseFlag => _customCanReleaseFlag;
///
/// 获取对象的优先级。
///
public int Priority => _priority;
///
/// 获取对象上次使用时间。
///
public DateTime LastUseTime => _lastUseTime;
///
/// 获取对象是否正在使用。
///
public bool IsInUse => _spawnCount > 0;
///
/// 获取对象的获取计数。
///
public int SpawnCount => _spawnCount;
}
}