aboutsummaryrefslogtreecommitdiff
path: root/src/main.cpp
blob: 8e38e18ab41d126a726f2deb44a05bdaacccecc5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <opendht.h>
#include <vector>
#include "../include/Database.hpp"

using namespace odhtdb;

int main()
{
    Database database("bootstrap.ring.cx", 4222);
    Key channelChatKey("galax.channel.CAGERIJF232dKADS528392fawdkf3fas.chat");
    const char *data = "hello, world!";
    database.add(channelChatKey, DataView{ (void*)data, strlen(data) });
    database.commit();

    /*
    Database database("bootstrap.ring.cx", 4222);
    Key channelChatKey("galax.channel.CAGERIJF232dKADS528392fawdkf3fas.chat");
    database.add(channelChatKey, { localUser, date, "hello, world!" });
    */

#if 0
    dht::DhtRunner node;

    // Launch a dht node on a new thread, using a
    // generated RSA key pair, and listen on port 4222.
    node.run(4222, dht::crypto::generateIdentity(), true);

    // Join the network through any running node,
    // here using a known bootstrap node.
    node.bootstrap("bootstrap.ring.cx", "4222");

    // put some data on the dht
    std::vector<uint8_t> some_data(5, 10);
    node.put("unique_key", some_data);

    // put some data on the dht, signed with our generated private key
    node.putSigned("unique_key_42", some_data);

    // get data from the dht
    node.get("other_unique_key", [](const std::vector<std::shared_ptr<dht::Value>>& values) {
        // Callback called when values are found
        for (const auto& value : values)
            std::cout << "Found value: " << *value << std::endl;
        return true; // return false to stop the search
    });

    // wait for dht threads to end
    node.join();
    #endif
    return 0;
}