From c1d73cbe17650c834faee5a0098a9499b39a2835 Mon Sep 17 00:00:00 2001 From: "Claudius \"keldu\" Holeksa" Date: Wed, 5 Nov 2025 09:44:04 +0100 Subject: Dangling changes from the weekend. Added io/ssh setup --- modules/io-ssh/c++/SConscript | 38 ++++++++++++++++++++++++++++++++++++++ modules/io-ssh/c++/ssh.hpp | 43 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 81 insertions(+) create mode 100644 modules/io-ssh/c++/SConscript create mode 100644 modules/io-ssh/c++/ssh.hpp (limited to 'modules/io-ssh/c++') diff --git a/modules/io-ssh/c++/SConscript b/modules/io-ssh/c++/SConscript new file mode 100644 index 0000000..4af4ea3 --- /dev/null +++ b/modules/io-ssh/c++/SConscript @@ -0,0 +1,38 @@ +#!/bin/false + +import os +import os.path +import glob + + +Import('env') + +dir_path = Dir('.').abspath + +# Environment for base library +io_ssh_env = env.Clone(); + +io_ssh_env.sources = sorted(glob.glob(dir_path + "/*.cpp")) +io_ssh_env.headers = sorted(glob.glob(dir_path + "/*.hpp")) + +env.sources += io_ssh_env.sources; +env.headers += io_ssh_env.headers; + +## Shared lib +objects_shared = [] +io_ssh_env.add_source_files(objects_shared, io_ssh_env.sources, shared=True); +env.library_shared = io_ssh_env.SharedLibrary('#build/forstio-io-ssh', [objects_shared]); + +## Static lib +objects_static = [] +io_ssh_env.add_source_files(objects_static, io_ssh_env.sources, shared=False); +env.library_static = io_ssh_env.StaticLibrary('#build/forstio-io-ssh', [objects_static]); + +# Set Alias +env.Alias('library_io_ssh', [env.library_shared, env.library_static]); + +env.targets += ['library_io_ssh']; + +# Install +env.Install('$prefix/lib/', [env.library_shared, env.library_static]); +env.Install('$prefix/include/forstio/io/ssh/', [io_ssh_env.headers]); diff --git a/modules/io-ssh/c++/ssh.hpp b/modules/io-ssh/c++/ssh.hpp new file mode 100644 index 0000000..93c4ac0 --- /dev/null +++ b/modules/io-ssh/c++/ssh.hpp @@ -0,0 +1,43 @@ +#pragma once + +#include + +namespace saw { +namespace net { +struct Ssh {}; +} + +template<> +class network_address final { +private: + std::string address_; +public: + network_address(const std::string& address__): + address_{address__} + {} +}; + +template<> +class network final { +private: +public: + conveyor>> resolve_address(const std::string& addr){ + return make_error("SSH resolve address not implemented"); + } + + error_or>> parse_address(const std::string& addr){ + return heap>(addr); + } +}; + +error_or>> setup_ssh_network(){ + own> ssh_net; + try{ + ssh_net = heap>(); + }catch(const std::exception& e){ + (void)e; + return make_error("Couldn't allocate ssh memory"); + } + return ssh_net; +} +} -- cgit v1.2.3