poco/DNSSD/src/DNSSDResponder.cpp
Aleksandar Fabijanic b41f211ece
2208 merge dnssd (#4479)
* Initial commit

* initial commit

* added README.md

* Update README.md

* Add top level CMakeLists like another project in POCO framework. see #1

* Add CMakeLists to Avahi and Bonjour. (see #1)

* Missing changing in top level CMakeLists correct. (see #1)

* Add samples CMakeLists. (see #1)

* Add temporary cmake find module for Avahi and Bonjour in cmake directory. (see #1)

* Add mandatory requirement diff for POCO framework to DNSSD cmake can be work correctly. (see #1)

* Update README.md

Add cmake build way.

* Update README.md

Minor change.

* Update README.md

Removed ambiguous sentence.

* Moved files

* Add cmake modules

* Add cmake modules

* Remove modules

* Correct linux cmake ci.

* Exclude DNSSD from macos, windows.

* Update CMakeLists.txt

* Remove unused gitignore

* Remove deprecated vs versions

* Add vs160 and vs170 for DNSSD

* Remove deprecated sln

* Revert bad changes

* Revert bad changes

* chore: remove vs90 sln files

* chore: remove vs90 x64 files

* Revert "chore: remove vs90 sln files"

This reverts commit 51d78f82f11d387506c016c9aab3b31e3c32ad23.

* chore: add DNSSD to components

* chore(DNSSD): disable in CI, update copyright and doc

* fix(DNSSD): CMake on Apple platforms: fix finding library providing DNSSD.

* fix(DNSSD): Handle kDNSServiceFlagsNonBrowsable that was removed in 1096.0.2

* chore: naming and code modernize review comments

* enh(DNSSD): Define DNSSD_*_API for non-MSVC compilers.

---------

Co-authored-by: Günter Obiltschnig <guenter.obiltschnig@appinf.com>
Co-authored-by:  <soroosh@soroosh-pc.localdomain>
Co-authored-by: Seyyed Soroosh Hosseinalipour <soorosh_abi@hotmail.com>
Co-authored-by: Matej Kenda <matejken@gmail.com>
2024-04-03 22:38:56 +02:00

110 lines
1.9 KiB
C++

//
// DNSSDResponder.cpp
//
// $Id: //poco/1.7/DNSSD/src/DNSSDResponder.cpp#1 $
//
// Library: DNSSD
// Package: Core
// Module: DNSSDResponder
//
// Copyright (c) 2006-2024, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#include "Poco/DNSSD/DNSSDResponder.h"
#include "Poco/DNSSD/DNSSDResponderImpl.h"
#include "Poco/Exception.h"
namespace Poco {
namespace DNSSD {
DNSSDResponderImplFactory* DNSSDResponder::_pImplFactory(0);
DNSSDResponder::DNSSDResponder():
_pImpl(0)
{
if (_pImplFactory)
{
_pImpl = _pImplFactory->createResponderImpl(*this);
}
else
{
throw Poco::IllegalStateException("No DNSResponderImplFactory available.");
}
}
DNSSDResponder::~DNSSDResponder()
{
delete _pImpl;
}
DNSSDBrowser& DNSSDResponder::browser()
{
return _pImpl->browser();
}
ServiceHandle DNSSDResponder::registerService(const Service& service, int options)
{
return _pImpl->registerService(service, options);
}
void DNSSDResponder::unregisterService(ServiceHandle& serviceHandle)
{
_pImpl->unregisterService(serviceHandle);
}
RecordHandle DNSSDResponder::addRecord(ServiceHandle serviceHandle, const Record& record)
{
return _pImpl->addRecord(serviceHandle, record);
}
void DNSSDResponder::updateRecord(ServiceHandle serviceHandle, RecordHandle recordHandle, const Record& record)
{
_pImpl->updateRecord(serviceHandle, recordHandle, record);
}
void DNSSDResponder::removeRecord(ServiceHandle serviceHandle, RecordHandle& recordHandle)
{
_pImpl->removeRecord(serviceHandle, recordHandle);
}
void DNSSDResponder::start()
{
_pImpl->start();
}
void DNSSDResponder::stop()
{
_pImpl->stop();
}
void DNSSDResponder::registerImplFactory(DNSSDResponderImplFactory& factory)
{
_pImplFactory = &factory;
}
void DNSSDResponder::unregisterImplFactory()
{
_pImplFactory = 0;
}
} } // namespace Poco::DNSSD