UPnP::Service Class Referenceabstract

Represents any kind of device, including a root device. More...

#include <Service.h>

Inheritance diagram for UPnP::Service:
Collaboration diagram for UPnP::Service:

Public Types

enum class  Field { XX , customStart = domain , MAX }
 
using List = ObjectList< Service >
 
using OwnedList = OwnedObjectList< Service >
 
- Public Types inherited from UPnP::Object
using Version = ObjectClass::Version
 

Public Member Functions

 Service (Device &device)
 
Deviceroot ()
 
String caption () const
 
void search (const SearchFilter &filter) override
 Called during SSDP search operation. More...
 
bool formatMessage (Message &msg, MessageSpec &ms) override
 Standard fields have been completed. More...
 
bool onHttpRequest (HttpServerConnection &connection) override
 Called by framework to handle an incoming HTTP request. More...
 
virtual String getField (Field desc) const
 
Urn objectType () const override
 
String serviceId () const
 
XML::NodegetDescription (XML::Document &doc, DescType descType) const override
 
IDataSourceStreamcreateDescription () override
 Called by framework to construct a device description response stream. More...
 
Devicedevice () const
 
virtual bool sendRequest (HttpRequest *request) const
 Implemented in ServiceControl. More...
 
virtual Error handleAction (ActionRequest &req)=0
 An action request has been received. More...
 
- Public Member Functions inherited from UPnP::ObjectTemplate< Service, Object >
ServicegetNext () const
 
Iterator begin () const
 
Iterator end () const
 
- Public Member Functions inherited from UPnP::Object
virtual const ObjectClassgetClass () const =0
 
ObjectgetNext () const
 
bool typeIs (const Urn &objectType) const
 
bool typeIs (const String &objectType) const
 
bool typeIs (const ObjectClass &objectClass) const
 
virtual Version version () const
 
- Public Member Functions inherited from UPnP::BaseObject
virtual void sendMessage (Message &msg, MessageSpec &ms)
 Called by framework to construct then send a message. More...
 
- Public Member Functions inherited from UPnP::LinkedItem
Itemnext () const override
 
LinkedItemgetNext () const
 
- Public Member Functions inherited from UPnP::Item
virtual ~Item ()
 
virtual ItemEnumeratorgetList (unsigned index, String &name)
 
bool operator== (const Item &other) const
 

Detailed Description

Represents any kind of device, including a root device.

Member Typedef Documentation

◆ List

◆ OwnedList

Member Enumeration Documentation

◆ Field

enum UPnP::Service::Field
strong
Enumerator
XX 
customStart 
MAX 

Constructor & Destructor Documentation

◆ Service()

UPnP::Service::Service ( Device device)
inline

Member Function Documentation

◆ caption()

String UPnP::Service::caption ( ) const
inline

◆ createDescription()

IDataSourceStream* UPnP::Service::createDescription ( )
overridevirtual

Called by framework to construct a device description response stream.

Return values
IDataSourceStream*The XML description content

By default, the framework generates a stream constructed from the device information fields, but this method may be overridden if, for example, a fixed description is stored in an .xml file.

Reimplemented from UPnP::Object.

◆ device()

Device& UPnP::Service::device ( ) const
inline

◆ formatMessage()

bool UPnP::Service::formatMessage ( Message msg,
MessageSpec ms 
)
overridevirtual

Standard fields have been completed.

Note
Fields can be modified typically by adding any custom fields before sending response.
Parameters
msgThe message being constructed
msTemplate spec. for message
Return values
boolReturn true to send message, false to cancel

Implements UPnP::BaseObject.

◆ getDescription()

XML::Node* UPnP::Service::getDescription ( XML::Document doc,
DescType  descType 
) const
overridevirtual

Reimplemented from UPnP::Item.

◆ getField()

virtual String UPnP::Service::getField ( Field  desc) const
virtual

Reimplemented in UPnP::ServiceControl.

◆ handleAction()

virtual Error UPnP::Service::handleAction ( ActionRequest req)
pure virtual

An action request has been received.

Parameters
envContains the action request
Return values
ErrorCodeImplementation should place response into env after reading parameters, e.g.:
if(env.actionName() == "MyAction") {
        String arg1;
        int arg2;
        env.getArg("arg1", arg1);
        env.getArg("arg2", arg2);
        auto& response = env.createResponse();
        // Process command here
        int arg3 = processMyAction(arg1, arg2);
        response.setArg("arg3", arg3);
        return ErrorCode::Success;
    }

    return ErrorCode::InvalidAction;
This is usually handled by generated wrapper class templates.

Implemented in UPnP::ServiceControl.

◆ objectType()

Urn UPnP::Service::objectType ( ) const
inlineoverridevirtual

Reimplemented from UPnP::Object.

◆ onHttpRequest()

bool UPnP::Service::onHttpRequest ( HttpServerConnection connection)
overridevirtual

Called by framework to handle an incoming HTTP request.

Parameters
connection
request
response
Return values
booltrue if request was handled

Reimplemented from UPnP::Object.

◆ root()

Device& UPnP::Service::root ( )

◆ search()

void UPnP::Service::search ( const SearchFilter filter)
overridevirtual

Called during SSDP search operation.

Implements UPnP::Object.

◆ sendRequest()

virtual bool UPnP::Service::sendRequest ( HttpRequest request) const
inlinevirtual

Implemented in ServiceControl.

Reimplemented in UPnP::ServiceControl.

◆ serviceId()

String UPnP::Service::serviceId ( ) const
inline

The documentation for this class was generated from the following file: