summaryrefslogtreecommitdiffstats
blob: f0b6d22dad6ba44dd3bdd8d79c41d5d4b2bf6c81 (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
/*
 * Copyright (c) 2012 Mateusz Piękos
 * Licensed under the simplified BSD license.
 * See Documentation/Licenses/BSD-simplified.txt for more information.
 */

#include <Swiften/Whiteboard/OutgoingWhiteboardSession.h>

#include <boost/smart_ptr/make_shared.hpp>
#include <boost/bind.hpp>
#include <Swiften/Elements/WhiteboardPayload.h>

namespace Swift {
	OutgoingWhiteboardSession::OutgoingWhiteboardSession(const JID& jid, IQRouter* router) : WhiteboardSession(jid, router) {
	}

	OutgoingWhiteboardSession::~OutgoingWhiteboardSession() {
	}

	void OutgoingWhiteboardSession::startSession() {
		boost::shared_ptr<WhiteboardPayload> payload = boost::make_shared<WhiteboardPayload>(WhiteboardPayload::SessionRequest);
		boost::shared_ptr<GenericRequest<WhiteboardPayload> > request = boost::make_shared<GenericRequest<WhiteboardPayload> >(IQ::Set, toJID_, payload, router_);
		request->onResponse.connect(boost::bind(&OutgoingWhiteboardSession::handleRequestResponse, this, _1, _2));
		request->send();
	}

	std::string OutgoingWhiteboardSession::getClientID() const {
		return "a";
	}

	void OutgoingWhiteboardSession::handleRequestResponse(boost::shared_ptr<WhiteboardPayload> payload, ErrorPayload::ref error) {
		if (error) {
			onRequestRejected(toJID_);
		}
	}
}