aboutsummaryrefslogtreecommitdiff
path: root/src/message/signalproxy/objects/bufferviewmanager.rs
diff options
context:
space:
mode:
authorMax Audron <audron@cocaine.farm>2021-12-01 16:30:21 +0100
committerMax Audron <audron@cocaine.farm>2021-12-01 16:30:21 +0100
commite70d4e7e7b457306d4580fd8530851867e819b63 (patch)
tree1c690a99ef3c792c05e4f82d93b418b016cbc58d /src/message/signalproxy/objects/bufferviewmanager.rs
parentadd more bufferview details and fix logging (diff)
split bufferview into sepperate files
Diffstat (limited to 'src/message/signalproxy/objects/bufferviewmanager.rs')
-rw-r--r--src/message/signalproxy/objects/bufferviewmanager.rs61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/message/signalproxy/objects/bufferviewmanager.rs b/src/message/signalproxy/objects/bufferviewmanager.rs
new file mode 100644
index 0000000..1877c70
--- /dev/null
+++ b/src/message/signalproxy/objects/bufferviewmanager.rs
@@ -0,0 +1,61 @@
+use std::{collections::HashMap, convert::TryFrom, convert::TryInto};
+
+use libquassel_derive::sync;
+use libquassel_derive::{NetworkList, NetworkMap};
+
+use crate::message::signalproxy::translation::Network;
+
+#[allow(unused_imports)]
+use crate::message::StatefulSyncableClient;
+#[allow(unused_imports)]
+use crate::message::StatefulSyncableServer;
+use crate::message::Syncable;
+
+use crate::primitive::{Variant, VariantList};
+
+#[derive(Debug, Clone, PartialEq)]
+// #[network(repr = "list")]
+pub struct BufferViewManager {
+ // #[network(rename = "bufferViewConfigs", network, variant = "VariantMap")]
+ pub buffer_view_configs: HashMap<i32, super::BufferViewConfig>,
+ // // C->S calls
+
+ // requestCreateBufferView(properties: QVariantMap)
+ // requestCreateBufferViews(properties: QVariantList)
+ // requestDeleteBufferView(bufferViewId: Int)
+ // requestDeleteBufferViews(bufferViews: QVariantList)
+
+ // // S->C calls
+
+ // addBufferViewConfig(bufferViewConfigId: Int)
+ // deleteBufferViewConfig(bufferViewConfigId: Int)
+ // newBufferViewConfig(bufferViewConfigId: Int)
+ // /**
+ // * Replaces all properties of the object with the content of the
+ // * "properties" parameter. This parameter is in network representation.
+ // */
+ // update(properties: QVariantMap)
+}
+
+impl super::NetworkList for BufferViewManager {
+ fn to_network_list(&self) -> VariantList {
+ let mut res = Vec::with_capacity(2);
+
+ res.push(Variant::ByteArray(s!("bufferViewIds")));
+ res.push(Variant::VariantList(
+ self.buffer_view_configs
+ .iter()
+ .map(|(k, _)| i32::try_into(*k).unwrap())
+ .collect(),
+ ));
+
+ return res;
+ }
+
+ fn from_network_list(_input: &mut VariantList) -> Self {
+ // TODO Somehow do the initrequests for all the IDs we get here
+ Self {
+ buffer_view_configs: HashMap::new(),
+ }
+ }
+}