Skip to content

Commit 00b92cd

Browse files
committed
AI: trim DataStore & ObjAny
1 parent 23a61bd commit 00b92cd

File tree

3 files changed

+10
-21
lines changed

3 files changed

+10
-21
lines changed

src/obj_anywhere/DataStore.hpp

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,11 @@
44
* SPDX-License-Identifier: BSD-3-Clause
55
*/
66
// ***********************************************************************************************
7-
// - REQ: this class is to enhance safety of shared_ptr:
8-
// . store any type data: eg for ObjAnywhere
9-
// * store same type data: eg for DataDomino
10-
// . mem safe by SafePtr
11-
// - Unique Value:
12-
// . store
7+
// - REQ: this class is to
8+
// . store data of any type: eg for ObjAnywhere
9+
// * store multi-copy of data of the same type: eg for DataDomino
10+
// . fetch data by unique key(eg string)
11+
// . ensure mem safe of stored data by SafePtr
1312
//
1413
// - MT safe: NO
1514
// - mem safe: yes
@@ -46,7 +45,7 @@ class DataStore
4645
template<typename aDataKey>
4746
void DataStore<aDataKey>::emplace(const aDataKey& aKey, SafePtr<void> aData)
4847
{
49-
if (aData.get() == nullptr)
48+
if (! aData)
5049
{
5150
HID("(DataStore) erase key=" << aKey);
5251
key_data_S_.erase(aKey);
@@ -76,7 +75,7 @@ SafePtr<aDataT> DataStore<aDataKey>::get(const aDataKey& aKey) const
7675
template<typename aDataKey>
7776
void DataStore<aDataKey>::replace(const aDataKey& aKey, SafePtr<void> aData)
7877
{
79-
if (aData.get() == nullptr)
78+
if (! aData)
8079
{
8180
HID("(DataStore) erase key=" << aKey);
8281
key_data_S_.erase(aKey);

src/obj_anywhere/ObjAnywhere.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ void ObjAnywhere::init(UniLog& oneLog)
2323
WRN("(ObjAnywhere) !!! Refuse dup init.")
2424
else
2525
{
26-
HID("(ObjAnywhere) Succeed.");
2726
name_obj_S_ = make_shared<DataStore<ObjName>>();
27+
HID("(ObjAnywhere) Succeed.");
2828
}
2929
}
3030
} // namespace

src/obj_anywhere/ObjAnywhere.hpp

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,22 +13,12 @@
1313
//
1414
// - more value:
1515
// . ObjAnywhere not include any Obj.hpp so no cross-include conflict
16-
// * ObjAnywhere stores shared_ptr<Obj> - real store, correct destruct, lifespan mgr
16+
// * ObjAnywhere stores SafePtr<Obj> - real store, correct destruct, lifespan management
1717
//
1818
// - core: name_obj_S_
1919
//
2020
// - mem-safe: true (when use SafePtr instead of shared_ptr)
21-
//
22-
// - note:
23-
// . Obj can be destructed by its own destructor when shared_ptr<Obj>.use_count()==0
24-
// . it's possible after deinit() that Obj still exists since its use_count()>0
25-
// . if req to store same Obj multiply, use DataDomino
26-
//
27-
// - can DataDomino replace ObjAnywhere?
28-
// . somewhat yes
29-
// . but ObjAnywhere will be more complex since ObjIndex is replaced by EvName
30-
// . and DataDomino will be more complex to manage sharing/static store_
31-
// . = merge DataDomino & ObjAnywhere, so now giveup
21+
// - MT safe: false (only use in main-thread)
3222
// ***********************************************************************************************
3323
#pragma once
3424

0 commit comments

Comments
 (0)