summaryrefslogtreecommitdiffstats
path: root/crates/core/tedge_mapper/src/c8y_mapper.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/core/tedge_mapper/src/c8y_mapper.rs')
-rw-r--r--crates/core/tedge_mapper/src/c8y_mapper.rs35
1 files changed, 35 insertions, 0 deletions
diff --git a/crates/core/tedge_mapper/src/c8y_mapper.rs b/crates/core/tedge_mapper/src/c8y_mapper.rs
new file mode 100644
index 00000000..c96645e2
--- /dev/null
+++ b/crates/core/tedge_mapper/src/c8y_mapper.rs
@@ -0,0 +1,35 @@
+use crate::c8y_converter::CumulocityConverter;
+use crate::component::TEdgeComponent;
+use crate::mapper::*;
+use crate::size_threshold::SizeThreshold;
+use async_trait::async_trait;
+use tedge_config::TEdgeConfig;
+use tracing::{info_span, Instrument};
+
+const CUMULOCITY_MAPPER_NAME: &str = "tedge-mapper-c8y";
+
+pub struct CumulocityMapper {}
+
+impl CumulocityMapper {
+ pub fn new() -> CumulocityMapper {
+ CumulocityMapper {}
+ }
+}
+
+#[async_trait]
+impl TEdgeComponent for CumulocityMapper {
+ async fn start(&self, tedge_config: TEdgeConfig) -> Result<(), anyhow::Error> {
+ let size_threshold = SizeThreshold(16 * 1024);
+
+ let converter = Box::new(CumulocityConverter::new(size_threshold));
+
+ let mut mapper = create_mapper(CUMULOCITY_MAPPER_NAME, &tedge_config, converter).await?;
+
+ mapper
+ .run()
+ .instrument(info_span!(CUMULOCITY_MAPPER_NAME))
+ .await?;
+
+ Ok(())
+ }
+}