diff options
author | Claudius 'keldu' Holeksa <mail@keldu.de> | 2024-07-26 21:44:23 +0200 |
---|---|---|
committer | Claudius 'keldu' Holeksa <mail@keldu.de> | 2024-07-26 21:44:23 +0200 |
commit | 773fffb0c3596c93ae1522f6ef5eaaed4ad54e14 (patch) | |
tree | 5862d2e2f92100223384acde06a46fcc6c9614ca | |
parent | a5718298865976f3b977b2e7a18254d19e288152 (diff) |
wip
-rw-r--r-- | modules/remote/c++/remote_loopback.hpp | 9 | ||||
-rw-r--r-- | modules/remote/c++/transfer_loopback.hpp | 11 | ||||
-rw-r--r-- | modules/window/SConstruct | 11 | ||||
-rw-r--r-- | modules/window/examples/window_create.cpp | 4 |
4 files changed, 33 insertions, 2 deletions
diff --git a/modules/remote/c++/remote_loopback.hpp b/modules/remote/c++/remote_loopback.hpp index 10ac79c..ea4eb8e 100644 --- a/modules/remote/c++/remote_loopback.hpp +++ b/modules/remote/c++/remote_loopback.hpp @@ -86,6 +86,7 @@ public: template<> class remote<rmt::Loopback> { private: + std::map<uint64_t, i_data_server<>> registered_data_servers_; public: /** * Resolves an address for the remote @@ -107,5 +108,13 @@ public: rpc_server<Iface, Encode, Storage, rmt::Loopback> listen(const remote_address<rmt::Loopback>& addr, typename rpc_server<Iface,Encode,Storage,rmt::Loopback>::InterfaceT iface){ return {addr, std::move(iface)}; } + + /** + * Start data server + */ + template<typename Encode> + data_server<Encode> data_listen(const remote_address<rmt::Loopback>& addr){ + return {addr,*this}; + } }; } diff --git a/modules/remote/c++/transfer_loopback.hpp b/modules/remote/c++/transfer_loopback.hpp index 9d026f2..2e01509 100644 --- a/modules/remote/c++/transfer_loopback.hpp +++ b/modules/remote/c++/transfer_loopback.hpp @@ -16,7 +16,16 @@ private: ptr<remote<rmt::Loopback>> remote_; public: - data_server(remote_address<rmt::Loopback>& addr) + data_server(remote_address<rmt::Loopback>& addr){ + remote->register_server(addr); + } + + ~data_server(){ + remote->deregister_server(addr); + } + + SAW_FORBID_COPY(data_server); + SAW_FORBID_MOVE(data_server); /** * Get data from client diff --git a/modules/window/SConstruct b/modules/window/SConstruct index cc66f21..3017baf 100644 --- a/modules/window/SConstruct +++ b/modules/window/SConstruct @@ -43,6 +43,14 @@ env_vars.Add('prefix', validator=isAbsolutePath ) +env_vars.Add( + BoolVariable('build_examples', + help='Build examples', + default=False + ) +); + + env=Environment(ENV=os.environ, variables=env_vars, CPPPATH=[], CPPDEFINES=['SAW_UNIX', 'SAW_UNIX_XCB'], CXXFLAGS=['-std=c++20','-g','-Wall','-Wextra'], @@ -64,7 +72,8 @@ env.headers = []; env.targets = []; Export('env') -SConscript('SConscript') +SConscript('c++/SConscript') +SConscript('examples/SConscript') env.Alias('cdb', env.cdb); env.Alias('all', [env.targets]); diff --git a/modules/window/examples/window_create.cpp b/modules/window/examples/window_create.cpp new file mode 100644 index 0000000..dde8295 --- /dev/null +++ b/modules/window/examples/window_create.cpp @@ -0,0 +1,4 @@ +int main(){ + + return 0; +} |