//------------------------------------------------------------
// Game Framework
// Copyright © 2013-2021 loyalsoft. All rights reserved.
// Homepage: http://www.game7000.com/
// Feedback: http://www.game7000.com/
//------------------------------------------------------------
using System;
using System.Runtime.InteropServices;
namespace GameFramework.ObjectPool
{
///
/// 对象信息。
///
[StructLayout(LayoutKind.Auto)]
public struct ObjectInfo
{
private readonly string m_Name;
private readonly bool m_Locked;
private readonly bool m_CustomCanReleaseFlag;
private readonly int m_Priority;
private readonly DateTime m_LastUseTime;
private readonly int m_SpawnCount;
///
/// 初始化对象信息的新实例。
///
/// 对象名称。
/// 对象是否被加锁。
/// 对象自定义释放检查标记。
/// 对象的优先级。
/// 对象上次使用时间。
/// 对象的获取计数。
public ObjectInfo(string name, bool locked, bool customCanReleaseFlag, int priority, DateTime lastUseTime, int spawnCount)
{
m_Name = name;
m_Locked = locked;
m_CustomCanReleaseFlag = customCanReleaseFlag;
m_Priority = priority;
m_LastUseTime = lastUseTime;
m_SpawnCount = spawnCount;
}
///
/// 获取对象名称。
///
public string Name
{
get
{
return m_Name;
}
}
///
/// 获取对象是否被加锁。
///
public bool Locked
{
get
{
return m_Locked;
}
}
///
/// 获取对象自定义释放检查标记。
///
public bool CustomCanReleaseFlag
{
get
{
return m_CustomCanReleaseFlag;
}
}
///
/// 获取对象的优先级。
///
public int Priority
{
get
{
return m_Priority;
}
}
///
/// 获取对象上次使用时间。
///
public DateTime LastUseTime
{
get
{
return m_LastUseTime;
}
}
///
/// 获取对象是否正在使用。
///
public bool IsInUse
{
get
{
return m_SpawnCount > 0;
}
}
///
/// 获取对象的获取计数。
///
public int SpawnCount
{
get
{
return m_SpawnCount;
}
}
}
}