summaryrefslogtreecommitdiffstats
path: root/crates/core/tedge_mapper/src/az/mapper.rs
diff options
context:
space:
mode:
authorLukasz Woznicki <lukasz.woznicki@softwareag.com>2022-02-09 13:55:02 +0000
committerLukasz Woznicki <lukasz.woznicki@softwareag.com>2022-02-18 09:41:55 +0000
commitad065ec206ad3b48f9e1cc48080f4d2ecfe85a2e (patch)
tree2042dc1a03440f61b112006d6f12b532f0610566 /crates/core/tedge_mapper/src/az/mapper.rs
parentb1907dc4780709bad572a7108314c563eb02b70a (diff)
Move module to subdirectories and adjust use
Signed-off-by: Lukasz Woznicki <lukasz.woznicki@softwareag.com>
Diffstat (limited to 'crates/core/tedge_mapper/src/az/mapper.rs')
-rw-r--r--crates/core/tedge_mapper/src/az/mapper.rs41
1 files changed, 41 insertions, 0 deletions
diff --git a/crates/core/tedge_mapper/src/az/mapper.rs b/crates/core/tedge_mapper/src/az/mapper.rs
new file mode 100644
index 00000000..5bf2b2f3
--- /dev/null
+++ b/crates/core/tedge_mapper/src/az/mapper.rs
@@ -0,0 +1,41 @@
+use crate::{
+ az::converter::AzureConverter,
+ mapping::{component::TEdgeComponent, mapper::create_mapper, size_threshold::SizeThreshold},
+};
+
+use async_trait::async_trait;
+use clock::WallClock;
+use tedge_config::{AzureMapperTimestamp, TEdgeConfig};
+use tedge_config::{ConfigSettingAccessor, MqttPortSetting};
+use tracing::{info_span, Instrument};
+
+const AZURE_MAPPER_NAME: &str = "tedge-mapper-az";
+
+pub struct AzureMapper {}
+
+impl AzureMapper {
+ pub fn new() -> AzureMapper {
+ AzureMapper {}
+ }
+}
+
+#[async_trait]
+impl TEdgeComponent for AzureMapper {
+ async fn start(&self, tedge_config: TEdgeConfig) -> Result<(), anyhow::Error> {
+ let add_timestamp = tedge_config.query(AzureMapperTimestamp)?.is_set();
+ let mqtt_port = tedge_config.query(MqttPortSetting)?.into();
+ let clock = Box::new(WallClock);
+ let size_threshold = SizeThreshold(255 * 1024);
+
+ let converter = Box::new(AzureConverter::new(add_timestamp, clock, size_threshold));
+
+ let mut mapper = create_mapper(AZURE_MAPPER_NAME, mqtt_port, converter).await?;
+
+ mapper
+ .run()
+ .instrument(info_span!(AZURE_MAPPER_NAME))
+ .await?;
+
+ Ok(())
+ }
+}