Subject | Hash | Author | Date (UTC) |
---|---|---|---|
gen docs | c9de816e21d2953c7ac4e73f0be3ccd440c84381 | mucbuc | 2020-02-12 14:13:08 |
rm twice-size | dc7df761559ee90e089ff274290da3628f429a30 | mucbuc | 2020-02-12 13:43:34 |
update libs | 177bc958e60841f894a4c9c4d5758db38e07a5c3 | mucbuc | 2020-02-12 13:22:59 |
once tests | 9aae5bf8c8a46439e7b350c4166c1be22c6028bf | mucbuc | 2020-01-20 20:08:50 |
once | a72a9ea4d78e082b0e4e6a8545af92e116bd7536 | mucbuc | 2020-01-20 17:32:34 |
dynamo | 25b14b6965bb24b21516dde3f4a2a1922d518ae5 | mucbuc | 2020-01-20 17:27:35 |
concurrent test passes | 2bd62976d536c8c81659453e899a2e9c588f4aa6 | mucbuc | 2020-01-20 12:54:46 |
update dynamo | 3315ba6e643d56478aaf05761368d76e9025de79 | mucbuc | 2020-01-20 12:13:05 |
circular update | 7545023e77dcb92f28612a62b6405cb488adddc8 | mucbuc | 2020-01-19 12:09:22 |
cleanup remove stuff | abe9e96601cdfc558823e6d856d16dac8ad15929 | mucbuc | 2020-01-19 11:52:54 |
circut update | 4d75370846cd93032a684b5193494273a9ba9da9 | mucbuc | 2020-01-19 11:50:21 |
dynamoe update | 814d85ebb0c03dddfd2d804d404286cc01209687 | mucbuc | 2020-01-19 06:59:11 |
simplify interfiace | f69d4f7a7c2c02125ac51ffb9d4ba41ed08f8646 | mucbuc | 2020-01-19 06:41:36 |
fix another test | fd8e7fa14a4daa281e7fbcec875bfe56ce39e400 | mucbuc | 2020-01-18 22:42:40 |
working on tests | 1b57cbb4e806eda21565dc8bd7e7fe7ff1cb5fff | mucbuc | 2020-01-18 22:36:15 |
fix test | 8b364e739d1e12cd77b9f63efb0a245a75e695df | mucbuc | 2020-01-18 21:49:21 |
fix emit once | 71aba1ef472aa23c9c9a8529b5258599a6289c16 | mucbuc | 2020-01-18 21:41:03 |
remove agentlifetime test | ce0fba661c6110fc050203a1a8f9fedf39258615 | mucbuc | 2020-01-18 11:25:44 |
emit with arg passes | 1b2288e8472b749c513120c441397a77298ab0b7 | mucbuc | 2020-01-17 10:58:28 |
dynamo update | 7082792be9aa3ccb56b0afbddf58bdf468d56030 | mucbuc | 2020-01-17 05:32:03 |
File | Lines added | Lines deleted |
---|---|---|
README.md | 47 | 8 |
package.json | 2 | 0 |
File README.md changed (mode: 100644) (index 430ebb3..bac0e98) | |||
1 | ohm | ||
2 | ============= | ||
1 | # ohm | ||
3 | 2 | ||
4 | C++ event dispatcher inspired by NodeJS EventEmitter | ||
3 | Local message broker | ||
5 | 4 | ||
6 | ##### Run Tests | ||
5 | ## Interface | ||
7 | 6 | ``` | ``` |
8 | cd ohm | ||
9 | npm install | ||
10 | npm run-script fetch | ||
11 | npm test | ||
7 | #ifndef EMITTER_H__iFZqmDoIwhGaYO3df4xe5LCQXrbBvj | ||
8 | #define EMITTER_H__iFZqmDoIwhGaYO3df4xe5LCQXrbBvj | ||
9 | |||
10 | #include <functional> | ||
11 | #include <map> | ||
12 | #include <memory> | ||
13 | #include <set> | ||
14 | |||
15 | #include <lib/dynamo/src/interface.h> | ||
16 | |||
17 | namespace om636 { | ||
18 | namespace control { | ||
19 | |||
20 | template <typename T, typename... U> | ||
21 | class Emitter { | ||
22 | public: | ||
23 | typedef T event_type; | ||
24 | typedef std::function<void(U...)> callback_type; | ||
25 | typedef std::shared_ptr<callback_type> listener_type; | ||
26 | |||
27 | virtual ~Emitter() = default; | ||
28 | virtual listener_type on(event_type, callback_type) = 0; | ||
29 | virtual listener_type once(event_type, callback_type) = 0; | ||
30 | virtual void interupt(event_type, U...) = 0; | ||
31 | }; | ||
32 | |||
33 | template <typename T, typename... U> | ||
34 | class Quemitter : public Emitter<T, U...> { | ||
35 | |||
36 | public: | ||
37 | typedef Emitter<T, U...> base_type; | ||
38 | using typename base_type::callback_type; | ||
39 | using typename base_type::event_type; | ||
40 | using typename base_type::listener_type; | ||
41 | |||
42 | virtual ~Quemitter() = default; | ||
43 | virtual void emit(event_type, U...) = 0; | ||
44 | }; | ||
45 | |||
46 | } //control | ||
47 | } // om636 | ||
48 | |||
49 | #endif | ||
50 | |||
12 | 51 | ``` | ``` |
13 | 52 |
File package.json changed (mode: 100644) (index 3933296..b170239) | |||
1 | 1 | { | { |
2 | 2 | "name": "ohm", | "name": "ohm", |
3 | 3 | "version": "0.0.0", | "version": "0.0.0", |
4 | "description":"Local message broker", | ||
4 | 5 | "scripts": { | "scripts": { |
5 | 6 | "test": "crimp test/tests.json -g", | "test": "crimp test/tests.json -g", |
7 | "generateDocs":"doc-tool package_header src_interface > README.md", | ||
6 | 8 | "fetch": "npx plusi install" | "fetch": "npx plusi install" |
7 | 9 | }, | }, |
8 | 10 | "devDependencies": { | "devDependencies": { |