summaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)Author
2021-12-29Remove the GossipHandler, handle in code directlyMatthias Beyer
Use the iced idea of how to act on events rather than having a type for handling gossip messages. Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-21Dates and times can be orderedMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-21Wrap Profile in RwLockMatthias Beyer
We need mutable access to the profile if we want to write to it, so this commit changes the Profile to wrapped in a tokio::sync::RwLock Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-20Add functionality to add listening addressesMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-20Add Client::own_addresses() to get addresses of ipfs instanceMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-19Add Profile::gossip_own_state()Matthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-19Make GossipMessage::into_bytes() pub in moduleMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-19Implement gossip reactor loading via oneshot channels for subscription ↵Matthias Beyer
initialization Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-18Shrink idea of "Reactors"Matthias Beyer
A Reactor can be waaay less complex if we simply use it as "map"-helper for mapping over `Stream`s. If we map over a stream of Vec<u8> and deserialize them to GossipMessages in one step, and handle them appropriately in the next step, it is way less complex to implement these things and we do not have to care about this whole "how do I shut down the thing" because we can simply drop() everything and let the destructors do their job. This patch removes the Reactor nonsense. Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-18Ignore unused variablesMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-18Fix: Remove config::Config usageMatthias Beyer
as this type was removed. Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-18Merge branch 'multi-device-support'Matthias Beyer
2021-12-18Implement TimelineMatthias Beyer
for that, we remove the distrox_lib::config::Config type which was unused anyways, because it makes the whole implementation a bit less complex. Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-18Move strategy for handling of gossip message to own typesMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-18Fix test: Reactor should be running during test, not only during communcationMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-18Add some log outputMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-18Implement Debug for GossipReactor instead of deriving itMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-18Fix impl of gossipping testMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-18Let Payload impl CloneMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-18Move Client object into NodeStreamBuilder::into_stream() for less complex ↵Matthias Beyer
calling Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-18Allow getting client mutably from ProfileMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-18Make Client impl Clone, which should be cheapMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-17Rewrite Reactor abstraction to be a traitMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-17Add test for gossippingMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-11Add GossipReactor::is_connected_to() helper fn for checking whether a client ↵Matthias Beyer
is connected to another client Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-11Add impl for handling connect requestMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-11Add message types for requesting connection to other peerMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-10Add simple reactor testMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-10Add simple reactor-stopping mechanismMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-10Refactor: Move handling of pubsub message to own fnMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-10Refactor: Move ReplyMe request handling into helper fnMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-10Refactor: Add helper fn for sending gossip reply objectMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-10Refactor: Split gossip module into submodulesMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-10Add implementation for first GossipMessageMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-10Add Client::own_id() for getting own PeerIdMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-10Implement connecting to other peerMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-10Move ReactorRequest/ReactorReply to Reactor moduleMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-10Add basis for gossip reactor implementationMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-10Add abstract reactor implementationMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-10Add types for controlling a reactor implementationMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-10Remove example new() implsMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-10Add submodules for behaviour-specific reactorsMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-10Add Reactor typeMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-10Add interfaces for adding devicesMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-10Add support for storing other known devices in ProfileMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-09Add getter for chrono::DateTime object insideMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-09Add type to stream Nodes starting from a CIDMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-09Add function to post text to profileMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-09Add fn to update profile headMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-12-08Merge branch 'iced-gui'Matthias Beyer