File indexing completed on 2024-04-21 04:44:13

0001 /*
0002    SPDX-FileCopyrightText: 2015 (c) Matthieu Gallien <matthieu_gallien@yahoo.fr>
0003 
0004    SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0005  */
0006 
0007 #include "upnpservereventobject.h"
0008 
0009 #include "upnpcontrolabstractservice.h"
0010 
0011 #include <QDebug>
0012 
0013 class UpnpServerEventObjectPrivate
0014 {
0015 public:
0016     UpnpControlAbstractService *mService;
0017 };
0018 
0019 UpnpServerEventObject::UpnpServerEventObject(QObject *parent)
0020     : QObject(parent)
0021     , KDSoapServerCustomVerbRequestInterface()
0022     , d(std::make_unique<UpnpServerEventObjectPrivate>())
0023 {
0024     d->mService = nullptr;
0025 }
0026 
0027 UpnpServerEventObject::~UpnpServerEventObject() = default;
0028 
0029 bool UpnpServerEventObject::processCustomVerbRequest(const QByteArray &requestType, const QByteArray &requestData,
0030     const QMap<QByteArray, QByteArray> &httpHeaders, QByteArray &customAnswer)
0031 {
0032     Q_UNUSED(requestType)
0033 
0034     if (!d->mService) {
0035         return false;
0036     }
0037 
0038     d->mService->handleEventNotification(requestData, httpHeaders);
0039 
0040     customAnswer = "HTTP/1.1 200 OK\r\nContent-Length: 0\r\nContent-Type: text/html\r\n\r\n";
0041 
0042     return true;
0043 }
0044 
0045 void UpnpServerEventObject::setService(UpnpControlAbstractService *service)
0046 {
0047     d->mService = service;
0048 }
0049 
0050 #include "moc_upnpservereventobject.cpp"