first
This commit is contained in:
commit
d49728d842
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
/target
|
||||||
|
**/*.rs.bk
|
46
Cargo.lock
generated
Normal file
46
Cargo.lock
generated
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
[[package]]
|
||||||
|
name = "cc"
|
||||||
|
version = "1.0.28"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "libloading"
|
||||||
|
version = "0.5.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
dependencies = [
|
||||||
|
"cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rnetmon"
|
||||||
|
version = "0.1.0"
|
||||||
|
dependencies = [
|
||||||
|
"libloading 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "winapi"
|
||||||
|
version = "0.3.6"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
dependencies = [
|
||||||
|
"winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "winapi-i686-pc-windows-gnu"
|
||||||
|
version = "0.4.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "winapi-x86_64-pc-windows-gnu"
|
||||||
|
version = "0.4.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
|
||||||
|
[metadata]
|
||||||
|
"checksum cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4a8b715cb4597106ea87c7c84b2f1d452c7492033765df7f32651e66fcf749"
|
||||||
|
"checksum libloading 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9c3ad660d7cb8c5822cd83d10897b0f1f1526792737a179e73896152f85b88c2"
|
||||||
|
"checksum winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "92c1eb33641e276cfa214a0522acad57be5c56b10cb348b3c5117db75f3ac4b0"
|
||||||
|
"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
|
||||||
|
"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
|
8
Cargo.toml
Normal file
8
Cargo.toml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[package]
|
||||||
|
name = "rnetmon"
|
||||||
|
version = "0.1.0"
|
||||||
|
authors = ["Thibaut CHARLES"]
|
||||||
|
edition = "2018"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
libloading = "0.5.0"
|
33
src/main.rs
Normal file
33
src/main.rs
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
extern crate libloading;
|
||||||
|
mod message;
|
||||||
|
mod monitor;
|
||||||
|
mod output;
|
||||||
|
mod plugins;
|
||||||
|
|
||||||
|
// use libloading::{Library, Symbol};
|
||||||
|
|
||||||
|
use crate::monitor::Monitor;
|
||||||
|
use crate::output::Output;
|
||||||
|
use crate::message::Message;
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
// let lib = Library::new("/home/crom/.gitprojects/rnetmon/plugins/output/stdout/target/debug/deps/libstdout.so").unwrap();
|
||||||
|
|
||||||
|
// unsafe {
|
||||||
|
// let handle_message: Symbol<unsafe fn()> = lib.get(b"handle_message").unwrap();
|
||||||
|
// handle_message();
|
||||||
|
// }
|
||||||
|
|
||||||
|
let msg = Message{
|
||||||
|
emitter: "me".to_string(),
|
||||||
|
level: 10,
|
||||||
|
msg_type: "string".to_string(),
|
||||||
|
text: "Consectetur duis do dolor deserunt est minim dolore tempor et non duis.".to_string(),
|
||||||
|
};
|
||||||
|
|
||||||
|
let input = plugins::monitor::tester::Tester::new();
|
||||||
|
|
||||||
|
let out = plugins::output::stdout::Stdout::new();
|
||||||
|
out.on_message(&msg);
|
||||||
|
|
||||||
|
}
|
9
src/message.rs
Normal file
9
src/message.rs
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
|
||||||
|
|
||||||
|
#[derive(Debug)]
|
||||||
|
pub struct Message {
|
||||||
|
pub emitter: String,
|
||||||
|
pub level: i32,
|
||||||
|
pub msg_type: String,
|
||||||
|
pub text: String,
|
||||||
|
}
|
7
src/monitor.rs
Normal file
7
src/monitor.rs
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
|
||||||
|
use crate::message::Message;
|
||||||
|
|
||||||
|
pub trait Monitor {
|
||||||
|
fn new() -> Self;
|
||||||
|
fn run(&self);
|
||||||
|
}
|
7
src/output.rs
Normal file
7
src/output.rs
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
|
||||||
|
use crate::message::Message;
|
||||||
|
|
||||||
|
pub trait Output {
|
||||||
|
fn new() -> Self;
|
||||||
|
fn on_message(&self, message: &Message);
|
||||||
|
}
|
2
src/plugins/mod.rs
Normal file
2
src/plugins/mod.rs
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
pub mod output;
|
||||||
|
pub mod monitor;
|
1
src/plugins/monitor/mod.rs
Normal file
1
src/plugins/monitor/mod.rs
Normal file
@ -0,0 +1 @@
|
|||||||
|
pub mod tester;
|
17
src/plugins/monitor/tester.rs
Normal file
17
src/plugins/monitor/tester.rs
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
|
||||||
|
use crate::message::Message;
|
||||||
|
pub use crate::monitor::Monitor;
|
||||||
|
|
||||||
|
#[derive(Debug)]
|
||||||
|
pub struct Tester {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Monitor for Tester {
|
||||||
|
fn new() -> Self {
|
||||||
|
Tester{}
|
||||||
|
}
|
||||||
|
fn run(&self) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
1
src/plugins/output/mod.rs
Normal file
1
src/plugins/output/mod.rs
Normal file
@ -0,0 +1 @@
|
|||||||
|
pub mod stdout;
|
18
src/plugins/output/stdout.rs
Normal file
18
src/plugins/output/stdout.rs
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
|
||||||
|
use crate::message::Message;
|
||||||
|
pub use crate::output::Output;
|
||||||
|
|
||||||
|
#[derive(Debug)]
|
||||||
|
pub struct Stdout {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Output for Stdout {
|
||||||
|
fn new() -> Self {
|
||||||
|
Stdout{}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn on_message(&self, message: &Message){
|
||||||
|
println!("{:?}", message);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user