List of commits:
Subject Hash Author Date (UTC)
using queue policy 7494ae3537373691ad12c5c8295dcbbbfe7f05f0 mucbuc 2020-02-17 00:34:31
dummy policy 65fae3bca8ed23be81bd75e271e85030a48d1ccb mucbuc 2020-02-16 17:29:07
cleanup 2e46ef599e15758ba6c5f071be163cb870cb6547 mucbuc 2020-02-16 16:32:19
rename elemements to impl_ref 7bf7fbda736a73f86fa460194873cceadca51009 mucbuc 2020-02-16 13:49:38
example doc a65ae924d3426c7de7cb4f3c8e29c8180acf6fde mucbuc 2020-02-13 14:40:59
format source 0288bc49240445da1dd0013feb6e2d157d8a5cea mucbuc 2020-02-13 14:35:16
example builds 701303d8c13b423195f3f0e43c8e5d26af5360c8 mucbuc 2020-02-13 14:33:01
circuit update 6b334746c8f61dbeb8707a9045b83d01ce7259de mucbuc 2020-02-12 13:36:57
interface 8aaad13bc18270477139d6144771cebdba2928d6 mucbuc 2020-01-23 05:38:16
hook_once e800fa98f37b99f456e0f474d2a95eac87dbe020 mucbuc 2020-01-20 17:22:05
twice_size => circuit 07e34c75c67aa4ccaed56d26357bb29f75914005 mucbuc 2020-01-20 12:09:43
reset agent and check before callback 9ce516c3b921eb0e853b17119a4960fdf3936dcf mucbuc 2020-01-19 06:57:31
include statement 2c33dfbb947f7aafd05413b78dea3a0c036cf91b mucbuc 2020-01-17 10:29:01
formating 99ddddbf993037c4bdc573c149b28db242ac0862 mucbuc 2020-01-17 05:30:56
invoke_once b6ee37d690063e31b0300fdef0319d26293f0532 mucbuc 2020-01-17 05:29:52
remove agent 31359a9da855067033433f4310d172dadc813f28 mucbuc 2020-01-16 12:55:13
formati 13721c73e8d359eab3f32a030a35a42b83a341f0 mucbuc 2020-01-16 12:40:00
fix tests 343e081bf929c31592f835b279e5e4cd2c149539 mucbuc 2020-01-16 12:37:58
strip interface 991fc85aa55fc6f1d08fe94673840c14f2087ea8 mucbuc 2020-01-16 05:44:55
*break* circuit poc 26840f5e3ecca09bc113cb42fff5275c9213e0ae mucbuc 2020-01-14 11:32:23
Commit 7494ae3537373691ad12c5c8295dcbbbfe7f05f0 - using queue policy
Author: mucbuc
Author date (UTC): 2020-02-17 00:34
Committer name: mucbuc
Committer date (UTC): 2020-02-17 00:34
Parent(s): 65fae3bca8ed23be81bd75e271e85030a48d1ccb
Signing key:
Tree: bd638b855b712970730713e67c07bab633ab8f60
File Lines added Lines deleted
src/factory.h 5 2
src/impl/batch.h 2 7
test/src/batch.h 11 8
File src/factory.h changed (mode: 100644) (index a1a090b..893c5f4)
2 2
3 3 #include "impl/batch.h" #include "impl/batch.h"
4 4
5 #include <lib/circuit/src/impl/queue.h>
6 #include <lib/circuit/src/impl/stack.h>
7
5 8 namespace om636 { namespace om636 {
6 9
7 10 namespace control { namespace control {
8 11 template <typename... T> template <typename... T>
9 std::shared_ptr<BatchImpl<dummy, T...>> make_batch()
12 std::shared_ptr<BatchImpl<QueuePolicy, T...>> make_batch()
10 13 { {
11 return std::make_shared<BatchImpl<dummy, T...>>();
14 return std::make_shared<BatchImpl<QueuePolicy, T...>>();
12 15 } }
13 16
14 17 } }
File src/impl/batch.h changed (mode: 100644) (index 887da68..ffc78e6)
4 4 #include <memory> #include <memory>
5 5 #include <vector> #include <vector>
6 6
7 #include <lib/circuit/src/index.h>
7 #include <lib/circuit/src/impl/circuit_host.h>
8 8
9 9 #include "../interface.h" #include "../interface.h"
10 10
11 11 namespace om636 { namespace om636 {
12 12 namespace control { namespace control {
13 13
14 template<class T>
15 class dummy
16 {};
17
18
19 14 template <template<typename> typename P, typename... T> template <template<typename> typename P, typename... T>
20 15 class BatchImpl : public Batch<T...> { class BatchImpl : public Batch<T...> {
21 16 public: public:
 
... ... namespace control {
30 25
31 26 typedef std::weak_ptr<typename agent_type::element_type> pointer_type; typedef std::weak_ptr<typename agent_type::element_type> pointer_type;
32 27 typedef std::tuple<pointer_type, bool> tuple_type; typedef std::tuple<pointer_type, bool> tuple_type;
33 typedef circuit::CircuitQueue<tuple_type> batch_type;
28 typedef circuit::CircuitHost<tuple_type, P> batch_type;
34 29 batch_type& impl_ref(); batch_type& impl_ref();
35 30 const batch_type& impl_ref() const; const batch_type& impl_ref() const;
36 31
File test/src/batch.h changed (mode: 100644) (index f5ac19c..47cff77)
1 using namespace om636;
1 #include <lib/circuit/src/impl/queue.h>
2
2 3 using namespace om636::control; using namespace om636::control;
4 using namespace om636;
3 5 using namespace std; using namespace std;
6 using namespace om636::circuit;
4 7
5 8 void check_unhook_while_traverse() void check_unhook_while_traverse()
6 9 { {
7 BatchImpl<dummy> batch;
10 BatchImpl<QueuePolicy> batch;
8 11 unsigned passed(0); unsigned passed(0);
9 12
10 typename BatchImpl<dummy>::listener_type temp(batch.hook([&]() {
13 typename BatchImpl<QueuePolicy>::listener_type temp(batch.hook([&]() {
11 14 ++passed; ++passed;
12 15 temp.reset(); temp.reset();
13 16 })); }));
 
... ... void check_unhook_while_traverse()
21 24
22 25 void dead_agent_removal() void dead_agent_removal()
23 26 { {
24 typedef BatchImpl<dummy, int> batch_type;
27 typedef BatchImpl<QueuePolicy, int> batch_type;
25 28 batch_type batch; batch_type batch;
26 29 batch.hook([](int) {}); batch.hook([](int) {});
27 30 batch.invoke(9); batch.invoke(9);
 
... ... void dead_agent_removal()
31 34
32 35 void check_traverse_with_arg() void check_traverse_with_arg()
33 36 { {
34 BatchImpl<dummy, int> batch;
37 BatchImpl<QueuePolicy, int> batch;
35 38 int v = 0; int v = 0;
36 39 auto p(batch.hook([&](int i) { auto p(batch.hook([&](int i) {
37 40 v = i; v = i;
 
... ... void check_traverse_with_arg()
44 47
45 48 void check_traverse_with_args() void check_traverse_with_args()
46 49 { {
47 typedef BatchImpl<dummy, int, int> batch_type;
50 typedef BatchImpl<QueuePolicy, int, int> batch_type;
48 51
49 52 unsigned test_passed(0); unsigned test_passed(0);
50 53 batch_type batch; batch_type batch;
 
... ... void check_traverse_with_args()
62 65
63 66 void check_traverse_while_traverse() void check_traverse_while_traverse()
64 67 { {
65 BatchImpl<dummy> batch;
68 BatchImpl<QueuePolicy> batch;
66 69 unsigned passed(0); unsigned passed(0);
67 70
68 71 auto p(batch.hook([&]() { auto p(batch.hook([&]() {
 
... ... void check_traverse_while_traverse()
77 80
78 81 void check_traverse() void check_traverse()
79 82 { {
80 BatchImpl<dummy> batch;
83 BatchImpl<QueuePolicy> batch;
81 84 unsigned passed(0); unsigned passed(0);
82 85
83 86 auto temp(batch.hook([&]() { auto temp(batch.hook([&]() {
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/mucbuc/dynamo

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/mucbuc/dynamo

Clone this repository using git:
git clone git://git.rocketgit.com/user/mucbuc/dynamo

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main