Skip to content

Commit 385baad

Browse files
committed
use meta::make, mutexed::with(), clean examples premake
1 parent 3a3a300 commit 385baad

File tree

7 files changed

+82
-154
lines changed

7 files changed

+82
-154
lines changed

kit/async/mx.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ class Multiplexer:
226226
//std::shared_ptr<Channel<T>> channel(
227227
// std::function<void(std::shared_ptr<Channel<T>>)> worker
228228
//) {
229-
// auto chan = boost::make_local_shared<Channel<>>();
229+
// auto chan = boost::make_shared<Channel<>>();
230230
// // ... inside lambda if(chan->closed()) remove?
231231
//}
232232

kit/factory/factory.h

+4-4
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,10 @@ class Factory:
7676
}
7777
void config(typename TMeta::ptr cfg) {m_pConfig=cfg;}
7878
void config(std::string cfg) {m_pConfig=kit::make<typename TMeta::ptr>(cfg);}
79-
void with(std::function<void()> cb){
80-
auto l = this->lock();
81-
cb();
82-
}
79+
//void with(std::function<void()> cb){
80+
// auto l = this->lock();
81+
// cb();
82+
//}
8383

8484
virtual ~Factory() {}
8585

kit/kit.h

+5
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,11 @@ namespace kit
259259
Lock lock(Strategy strategy) const {
260260
return Lock(m_Mutex, strategy);
261261
}
262+
template<class Func>
263+
void with(Func cb){
264+
auto l = lock();
265+
cb();
266+
}
262267

263268
//template<class Lock=std::unique_lock<Mutex>, class DeferStrategy>
264269
//std::optional<Lock> try_lock() {

kit/meta/meta.h

+7
Original file line numberDiff line numberDiff line change
@@ -277,13 +277,20 @@ class Meta_:
277277
public:
278278

279279
using mutex_type = Mutex;
280+
//typedef Ptr<Meta_<Mutex,Ptr,This>> ptr;
281+
//typedef Ptr<const Meta_<Mutex,Ptr,This>> cptr;
280282
using ptr = Ptr<Meta_<Mutex,Ptr,This>>;
281283
using cptr = Ptr<const Meta_<Mutex,Ptr,This>>;
282284

285+
//template<class... Args>
286+
//static ptr make(Args&&... args){
287+
// return kit::make<ptr>(std::forward<Args>(args)...);
288+
//}
283289
template<class... Args>
284290
static ptr make(Args&&... args){
285291
return kit::make<ptr>(std::forward<Args>(args)...);
286292
}
293+
287294

288295
friend struct MetaElement;
289296

premake5.lua

-6
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ workspace("kit")
4747
}
4848
includedirs {
4949
"/usr/local/include/",
50-
"/usr/include/bullet/",
5150
"/usr/include/rapidxml/",
5251
"/usr/include/raknet/DependentExtensions"
5352
}
@@ -135,13 +134,8 @@ workspace("kit")
135134

136135
-- Exluding Files
137136
excludes {
138-
139137
}
140138

141139
includedirs {
142-
"lib/local_shared_ptr/",
143-
"/usr/local/include/",
144-
"/usr/include/bullet/",
145-
"/usr/include/raknet/DependentExtensions"
146140
}
147141

tests/meta.test.cpp

+26-26
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,15 @@ using kit::local_shared_ptr;
1010
TEST_CASE("Meta","[meta]") {
1111

1212
SECTION("empty") {
13-
auto m = make_local_shared<Meta>();
13+
auto m = Meta::make();
1414
REQUIRE(m);
1515
REQUIRE(!*m);
1616
REQUIRE(m->empty());
1717
REQUIRE(m->size() == 0);
1818
}
1919

2020
SECTION("set") {
21-
auto m = make_local_shared<Meta>();
21+
auto m = Meta::make();
2222
m->set<int>("one", 1);
2323

2424
REQUIRE(*m);
@@ -41,16 +41,16 @@ TEST_CASE("Meta","[meta]") {
4141
}
4242

4343
SECTION("add") {
44-
auto m = make_local_shared<Meta>();
44+
auto m = Meta::make();
4545

46-
REQUIRE(m->add(make_local_shared<Meta>()) == 0);
47-
REQUIRE(m->add(make_local_shared<Meta>()) == 1);
46+
REQUIRE(m->add(Meta::make()) == 0);
47+
REQUIRE(m->add(Meta::make()) == 1);
4848
REQUIRE(m->size() == 2);
4949
REQUIRE(m->key_count() == 0);
5050
}
5151

5252
SECTION("ensure") {
53-
auto m = make_local_shared<Meta>();
53+
auto m = Meta::make();
5454

5555
REQUIRE(m->ensure<int>("a", 1) == 1);
5656
REQUIRE(m->ensure<int>("b", 2) == 2);
@@ -65,7 +65,7 @@ TEST_CASE("Meta","[meta]") {
6565
SECTION("remove") {
6666

6767
SECTION("at index") {
68-
auto m = make_local_shared<Meta>();
68+
auto m = Meta::make();
6969
m->add(1);
7070
m->add(2); // index 1
7171
m->add(3);
@@ -85,7 +85,7 @@ TEST_CASE("Meta","[meta]") {
8585

8686
SECTION("pop") {
8787
SECTION("front") {
88-
auto m = make_local_shared<Meta>();
88+
auto m = Meta::make();
8989
m->add<int>(1);
9090
m->add<int>(2);
9191
m->pop_front();
@@ -96,7 +96,7 @@ TEST_CASE("Meta","[meta]") {
9696
REQUIRE_THROWS_AS(m->pop_front(), std::out_of_range);
9797
}
9898
SECTION("back") {
99-
auto m = make_local_shared<Meta>();
99+
auto m = Meta::make();
100100
m->add<int>(1);
101101
m->add<int>(2);
102102
m->pop_back();
@@ -109,7 +109,7 @@ TEST_CASE("Meta","[meta]") {
109109
}
110110

111111
SECTION("by key") {
112-
auto m = make_local_shared<Meta>();
112+
auto m = Meta::make();
113113
m->set("one" ,1);
114114
m->set("two", 2);
115115
m->set("three", 3);
@@ -131,7 +131,7 @@ TEST_CASE("Meta","[meta]") {
131131

132132
SECTION("types") {
133133
{
134-
auto m = make_local_shared<Meta>();
134+
auto m = Meta::make();
135135
m->set("nullptr", nullptr);
136136
m->set("nullmeta", local_shared_ptr<Meta>());
137137
//REQUIRE(not m->at<nullptr_t>("nullptr"));
@@ -144,7 +144,7 @@ TEST_CASE("Meta","[meta]") {
144144
//}
145145

146146
SECTION("clear") {
147-
auto m = make_local_shared<Meta>();
147+
auto m = Meta::make();
148148
m->set<int>("one",1);
149149
m->set<string>("two","2");
150150

@@ -156,10 +156,10 @@ TEST_CASE("Meta","[meta]") {
156156
}
157157

158158
SECTION("at") {
159-
auto m = make_local_shared<Meta>();
159+
auto m = Meta::make();
160160
m->set<int>("one", 1);
161161
m->set<string>("two", "2");
162-
m->add(make_local_shared<Meta>());
162+
m->add(Meta::make());
163163

164164
REQUIRE(m->at<int>("one") == 1);
165165
REQUIRE(m->at<int>(0) == 1);
@@ -169,18 +169,18 @@ TEST_CASE("Meta","[meta]") {
169169
}
170170

171171
SECTION("parent") {
172-
auto m = make_local_shared<Meta>();
172+
auto m = Meta::make();
173173
REQUIRE(!m->parent());
174174
REQUIRE(m->root() == m);
175-
auto c1 = make_local_shared<Meta>();
175+
auto c1 = Meta::make();
176176
m->add(c1);
177177
REQUIRE(c1->parent() == m);
178178
}
179179

180180
SECTION("iterate") {
181181
SECTION("map") {
182182
string json = "{\"one\":1,\"two\":2,\"three\": 3}";
183-
auto m = make_local_shared<Meta>(MetaFormat::JSON, json);
183+
auto m = Meta::make(MetaFormat::JSON, json);
184184
int i = 0;
185185
m->each_c([&](
186186
local_shared_ptr<const Meta> parent,
@@ -218,14 +218,14 @@ TEST_CASE("Meta","[meta]") {
218218
SECTION("serialization") {
219219

220220
SECTION("objects") {
221-
auto m = make_local_shared<Meta>(MetaFormat::JSON,"{\"one\":1}");
221+
auto m = Meta::make(MetaFormat::JSON,"{\"one\":1}");
222222
REQUIRE(!m->empty());
223223
REQUIRE(m->at<int>("one") == 1);
224224
REQUIRE(!m->empty());
225225
m->clear();
226226
REQUIRE(m->empty());
227227

228-
m = make_local_shared<Meta>();
228+
m = Meta::make();
229229
m->deserialize(MetaFormat::JSON,"{\"one\":1}");
230230
REQUIRE(m->at<int>("one") == 1);
231231

@@ -237,7 +237,7 @@ TEST_CASE("Meta","[meta]") {
237237
REQUIRE(not m->empty());
238238
REQUIRE(m->at<int>("one") == 1);
239239

240-
m->set("test", make_local_shared<Meta>());
240+
m->set("test", Meta::make());
241241
m->meta("test")->set("two", 2);
242242
data = m->serialize(MetaFormat::INI);
243243
m->clear();
@@ -256,7 +256,7 @@ TEST_CASE("Meta","[meta]") {
256256
}
257257

258258
SECTION("arrays") {
259-
auto m = make_local_shared<Meta>(MetaFormat::JSON,"{\"numbers\":[1,2,3]}");
259+
auto m = Meta::make(MetaFormat::JSON,"{\"numbers\":[1,2,3]}");
260260
auto a = m->at<local_shared_ptr<Meta>>(0);
261261
REQUIRE(a);
262262
REQUIRE(a->size() == 3);
@@ -265,15 +265,15 @@ TEST_CASE("Meta","[meta]") {
265265
REQUIRE(a->at<int>(2) == 3);
266266

267267
// strings
268-
m = make_local_shared<Meta>(MetaFormat::JSON,"{ \"a\": [\"b\",\"c\"] }");
268+
m = Meta::make(MetaFormat::JSON,"{ \"a\": [\"b\",\"c\"] }");
269269
a = m->at<local_shared_ptr<Meta>>(0);
270270
REQUIRE(a);
271271
REQUIRE(a->size() == 2);
272272
REQUIRE(a->at<string>(0) == "b");
273273
REQUIRE(a->at<string>(1) == "c");
274274

275275
// nested
276-
m = make_local_shared<Meta>(MetaFormat::JSON,"{\"numbers\":[[],[[]],[[],[]]]}");
276+
m = Meta::make(MetaFormat::JSON,"{\"numbers\":[[],[[]],[[],[]]]}");
277277
a = m->at<local_shared_ptr<Meta>>(0);
278278
REQUIRE(a);
279279
REQUIRE(a->size() == 3);
@@ -291,14 +291,14 @@ TEST_CASE("Meta","[meta]") {
291291

292292
{
293293
// no deserialize flags
294-
auto m = make_local_shared<Meta>(MetaFormat::JSON,"{\"one\":1}");
294+
auto m = Meta::make(MetaFormat::JSON,"{\"one\":1}");
295295
m->deserialize(MetaFormat::JSON,"{\"two\":2}");
296296
REQUIRE(m->size() == 1); // no flags should clear prior data
297297
}
298298

299299
{
300300
// same as above, but with F_MERGE flag
301-
auto m = make_local_shared<Meta>(MetaFormat::JSON,"{\"one\":1}");
301+
auto m = Meta::make(MetaFormat::JSON,"{\"one\":1}");
302302
m->deserialize(MetaFormat::JSON,"{\"two\":2}",
303303
Meta::F_MERGE // <-- new flag
304304
);
@@ -312,7 +312,7 @@ TEST_CASE("Meta","[meta]") {
312312

313313
SECTION("correct types") {
314314
// make sure doubles with trailing .0 don't serialize as ints
315-
auto m = make_local_shared<Meta>(MetaFormat::JSON,"{\"one\":1.0}");
315+
auto m = Meta::make(MetaFormat::JSON,"{\"one\":1.0}");
316316
REQUIRE_THROWS_AS(m->at<int>("one"), boost::bad_any_cast);
317317
REQUIRE(floatcmp(m->at<double>("one"), 1.0));
318318
}

0 commit comments

Comments
 (0)