diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/main.cpp | 26 | 
1 files changed, 26 insertions, 0 deletions
| diff --git a/src/main.cpp b/src/main.cpp index edf68d7..aa70c48 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,6 +1,7 @@  #include <erebos/attach.h>  #include <erebos/contact.h>  #include <erebos/identity.h> +#include <erebos/message.h>  #include <erebos/network.h>  #include <erebos/set.h>  #include <erebos/storage.h> @@ -270,6 +271,22 @@ void startServer(const vector<string> &)  	conts->onResponse(bind(confirmPairing, "contact-response", _1, _2, _3));  	services.push_back(move(conts)); +	auto dms = make_unique<DirectMessageService>(); +	dms->onUpdate([](const DirectMessageThread & thread, ssize_t, ssize_t) { +		ostringstream ss; + +		string name = "<unnamed>"; +		if (auto opt = thread.peer().name()) +			name = *opt; + +		ss << "dm-received" +			<< " from " << name +			<< " text " << thread.at(0).text() +			; +		printLine(ss.str()); +	}); +	services.push_back(move(dms)); +  	services.push_back(make_unique<SyncService>());  	server.emplace(*h, move(services)); @@ -498,6 +515,14 @@ void contactSetName(const vector<string> & args)  	printLine("contact-set-name-done");  } +void dmSendPeer(const vector<string> & args) +{ +	server->svc<DirectMessageService>().send( +			server->identity().finalOwner(), +			getPeer(args.at(0)).peer, +			args.at(1)); +} +  vector<Command> commands = {  	{ "store", store },  	{ "stored-generation", storedGeneration }, @@ -521,6 +546,7 @@ vector<Command> commands = {  	{ "contact-reject", contactReject },  	{ "contact-list", contactList },  	{ "contact-set-name", contactSetName }, +	{ "dm-send-peer", dmSendPeer },  };  } |