From d8d8fc7a0d139e7b864eee3b573bd208f823ad4f Mon Sep 17 00:00:00 2001 From: Javier Date: Sun, 19 Oct 2014 18:45:03 +0200 Subject: initial import, no crypto --- hostmanageragent.cc | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 hostmanageragent.cc (limited to 'hostmanageragent.cc') diff --git a/hostmanageragent.cc b/hostmanageragent.cc new file mode 100644 index 0000000..7ed890d --- /dev/null +++ b/hostmanageragent.cc @@ -0,0 +1,57 @@ +#include "sapsocket.h" +#include "sapconnectionrequest.h" +#include "sapserviceinfo.h" +#include "sapchannelinfo.h" +#include "hostmanagerconn.h" +#include "hostmanageragent.h" + +static HostManagerAgent *agent = 0; +static const QLatin1String hostmanager_profile("/system/hostmanager"); + +HostManagerAgent::HostManagerAgent(QObject *parent) + : QObject(parent), _peer(0), _socket(0) +{ +} + +HostManagerAgent* HostManagerAgent::instance() +{ + if (!agent) { + agent = new HostManagerAgent; + } + return agent; +} + +void HostManagerAgent::peerFound(SAPPeer *peer) +{ + qDebug() << "Host manager peer found" << peer->peerName(); +} + +void HostManagerAgent::requestConnection(SAPConnectionRequest *request) +{ + qDebug() << "Host manager request connection from" << request->peer()->peerName(); + SAPConnection *conn = request->connection(); + new HostManagerConn(conn, this); + + request->accept(); +} + +void HostManagerAgent::registerServices(SAPManager *manager) +{ + SAPServiceInfo service; + SAPChannelInfo channel; + + service.setProfile(hostmanager_profile); + service.setFriendlyName("HostManager"); + service.setRole(SAPServiceInfo::RoleProvider); + service.setVersion(1, 0); + service.setConnectionTimeout(0); + + channel.setChannelId(103); + channel.setPayloadType(SAPChannelInfo::PayloadJson); + channel.setQoSType(SAPChannelInfo::QoSRestricted); + channel.setQoSDataRate(SAPChannelInfo::QoSDataRateHigh); + channel.setQoSPriority(SAPChannelInfo::QoSPriorityHigh); + service.addChannel(channel); + + manager->registerServiceAgent(service, instance()); +} -- cgit v1.2.3