update
This commit is contained in:
parent
10e30c32b7
commit
8d1184212e
|
|
@ -18,11 +18,11 @@ concept CompenentType = requires(T t, T other, const QJsonObject & in, QJsonObje
|
||||||
/// 组件引用符号
|
/// 组件引用符号
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <typeparam name="T"></typeparam>
|
/// <typeparam name="T"></typeparam>
|
||||||
template<typename T> class ComponentRefer : protected MemoryChunk {
|
template<typename T> class ChunkRefer : protected MemoryChunk {
|
||||||
public:
|
public:
|
||||||
ComponentRefer(ElementControlBlock* data) : MemoryChunk(data) { referAdd(); }
|
ChunkRefer(ElementControlBlock* data) : MemoryChunk(data) { referAdd(); }
|
||||||
ComponentRefer(const ComponentRefer<T> &other) :MemoryChunk(other.data_ptr) { referAdd(); }
|
ChunkRefer(const ChunkRefer<T> &other) :MemoryChunk(other.data_ptr) { referAdd(); }
|
||||||
virtual ~ComponentRefer() { referSub(); }
|
virtual ~ChunkRefer() { referSub(); }
|
||||||
|
|
||||||
T* dataLock() {
|
T* dataLock() {
|
||||||
return (T*)(MemoryChunk::dataLock());
|
return (T*)(MemoryChunk::dataLock());
|
||||||
|
|
@ -72,7 +72,7 @@ public:
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <typeparam name="T"></typeparam>
|
/// <typeparam name="T"></typeparam>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
template<CompenentType T> ComponentRefer<T> generate() {
|
template<CompenentType T> ChunkRefer<T> generate() {
|
||||||
std::lock_guard<std::mutex> lockx(_pool_protected_);
|
std::lock_guard<std::mutex> lockx(_pool_protected_);
|
||||||
|
|
||||||
auto type_code = T::typeCode();
|
auto type_code = T::typeCode();
|
||||||
|
|
@ -117,7 +117,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
exists_reuse:
|
exists_reuse:
|
||||||
ComponentRefer<T> temp_inst(refer_ptr);
|
ChunkRefer<T> temp_inst(refer_ptr);
|
||||||
auto data_pointer = temp_inst.dataLock();
|
auto data_pointer = temp_inst.dataLock();
|
||||||
refer_ptr->refer_count--;
|
refer_ptr->refer_count--;
|
||||||
auto dpair = _basic_component_memory_example[T::typeCode()];
|
auto dpair = _basic_component_memory_example[T::typeCode()];
|
||||||
|
|
|
||||||
|
|
@ -147,16 +147,13 @@ public:
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="time_usec"></param>
|
/// <param name="time_usec"></param>
|
||||||
void accessUpdate(uint64_t time_usec);
|
void accessUpdate(uint64_t time_usec);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 设置数据活跃状态
|
/// 设置数据活跃状态
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="ste"></param>
|
|
||||||
void referAdd();
|
void referAdd();
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 设置数据活跃状态
|
/// 设置数据活跃状态
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="ste"></param>
|
|
||||||
void referSub();
|
void referSub();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue