Herqq
Classes | Typedefs | Enumerations | Functions

Herqq::Upnp Namespace Reference

The namespace that contains all of the Herqq UPnP core functionality. More...

Classes

class  HActionInfo
 This class is used to contain information of a UPnP action found in a UPnP service description document. More...
class  HDeviceInfo
 This class is used to contain information of a UPnP device found in a UPnP device description document. More...
class  HDiscoveryType
 This is a class that depicts the different discovery types used in UPnP networking. More...
class  HProductToken
 This class represents a product token as defined in the RFC 2616, section 3.8. More...
class  HProductTokens
 This class is used to parse the product tokens defined by HTTP/1.1. More...
class  HResourceType
 This is a class used to depict a UPnP resource, which is either a UPnP device or a UPnP service. More...
class  HServiceId
 Class that represents the service identifier of a UPnP service. More...
class  HServiceInfo
 This class is used to contain information of a UPnP service found in a UPnP device description document. More...
class  HStateVariableInfo
 This class is used to contain information of a UPnP state variable found in a UPnP service description document. More...
class  HUdn
 This is a class used to depict a Unique Device Name (UDN), which is a unique device identifier that has to remain the same over time for a specific device instance. More...
class  HControlPoint
 This is a class for discovering and interacting with UPnP devices in the network. More...
class  HControlPointConfiguration
 Class for specifying initialization information to HControlPoint instances. More...
class  HDeviceHost
 This is a class for creating and hosting HServerDevice instances on the network. More...
class  HDeviceHostRuntimeStatus
 This is a class for detailing information of the runtime status of an HDeviceHost instance. More...
class  HDeviceConfiguration
 This is a class for specifying a configuration to an HServerDevice that is to be created and hosted by an HDeviceHost. More...
class  HDeviceHostConfiguration
 This class is used to specify one or more device configurations to an HDeviceHost instance and to configure the functionality of the HDeviceHost that affect every hosted HServerDevice. More...
class  HClientAction
 A client-side class that represents a server-side UPnP action. More...
class  HClientActionOp
 This class is used to identify a client-side action invocation and detail information of it. More...
class  HClientDevice
 This is a client-side class that represents a server-side UPnP device. More...
class  HClientService
 A client-side class that represents a server-side UPnP service. More...
class  HClientStateVariable
 A client-side class that represents a server-side UPnP state variable. More...
class  HActionArgument
 This is a class that represents an argument used in a UPnP action invocation. More...
class  HActionArguments
 A storage class for HActionArgument instances. More...
class  HActionSetup
 This class is used to specify information that can be used to setup an HServerAction or validate a UPnP action. More...
class  HActionsSetupData
 This class is used to specify information that can be used to setup HServerAction instances or generally validate the actions of a UPnP service. More...
class  HAsyncOp
 This abstract class is used as a base for identifying an asynchronous operation and detail information of it. More...
class  HDeviceModelInfoProvider
 A protocol class for providing information that is used to validate components of UPnP's device architecture and to setup components of HUPnP's device model. More...
class  HDeviceSetup
 This class is used to specify information that can be used to validate a UPnP device. More...
class  HDevicesSetupData
 This class is used to specify information that can be used to validate UPnP devices. More...
class  HExecArgs
 This class is used to specify information used to control the execution of an asynchronous operation and the notification of its completion. More...
class  HServiceSetup
 This class is used to specify information that can be used to validate a UPnP service. More...
class  HServicesSetupData
 This class is used to specify information that can be used to validate UPnP services. More...
class  HStateVariableEvent
 This is a class used to transfer state variable event information. More...
class  HStateVariablesSetupData
 This class is used to specify information that can be used to validate UPnP state variables. More...
class  HDeviceModelCreator
 A protocol class for creating HServerDevice and HServerService instances. More...
class  HServerAction
 A class that represents a server-side UPnP action. More...
class  HServerDevice
 This is an abstract base class for server-side UPnP devices hosted by HDeviceHost. More...
class  HServerService
 This is an abstract base class for server-side UPnP services. More...
class  HServerStateVariable
 This is a class that represents a server-side UPnP state variable. More...
class  HClonable
 This class defines an interface for cloning instances of polymorphic classes. More...
class  HUpnpDataTypes
 An utility class for working with UPnP data types. More...
class  HEndpoint
 Class that represents a network endpoint, which is a combination of a host address and a port number. More...
class  HMulticastSocket
 This is a class for multicast communication. More...
class  HResourceAvailable
 This is a class that represents the resource available (ssdp:alive) message. More...
class  HResourceUnavailable
 Class that represents the device unavailable (ssdp:byebye) message. More...
class  HResourceUpdate
 Class representing the device update (ssdp:update) message. More...
class  HDiscoveryRequest
 Class representing an M-SEARCH (ssdp:discover) message. More...
class  HDiscoveryResponse
 This is a class that represents a response to a HDiscoveryRequest. More...
class  HSsdp
 This class is used for sending and receiving SSDP messages defined by the UPnP Device Architecture specification. More...

Typedefs

typedef Functor< int,
H_TYPELIST_2(const
Herqq::Upnp::HActionArguments
&, Herqq::Upnp::HActionArguments *) 
HActionInvoke )
typedef Functor< bool,
H_TYPELIST_2(HClientAction
*, const HClientActionOp &) 
HActionInvokeCallback )
typedef QList< HEndpointHEndpoints
typedef QList< HClientService * > HClientServices
typedef QList< HServerService * > HServerServices
typedef QList< HClientDevice * > HClientDevices
typedef QList< HServerDevice * > HServerDevices
typedef QHash< QString, const
HClientStateVariable * > 
HClientStateVariables
typedef QHash< QString,
HServerStateVariable * > 
HServerStateVariables
typedef QHash< QString,
HStateVariableInfo
HStateVariableInfos
typedef QHash< QString,
HClientAction * > 
HClientActions
typedef QHash< QString,
HServerAction * > 
HServerActions

Enumerations

enum  UpnpErrorCode {
  UpnpSuccess = 200, UpnpInvalidAction = 401, UpnpInvalidArgs = 402, UpnpActionFailed = 501,
  UpnpArgumentValueInvalid = 600, UpnpArgumentValueOutOfRange = 601, UpnpOptionalActionNotImplemented = 602, UpnpOutOfMemory = 603,
  UpnpHumanInterventionRequired = 604, UpnpStringArgumentTooLong = 605, UpnpInvocationInProgress = 0x00f00000, UpnpUndefinedFailure = 0x0ff00000
}
enum  DeviceVisitType { VisitThisOnly = 0, VisitThisAndDirectChildren, VisitThisRecursively }
enum  TargetDeviceType { AllDevices, EmbeddedDevices, RootDevices }
enum  LocationUrlType { AbsoluteUrl, BaseUrl }
enum  HValidityCheckLevel { StrictChecks, LooseChecks }
enum  HInclusionRequirement { InclusionRequirementUnknown = 0, InclusionMandatory, InclusionOptional }
enum  HLogLevel {
  None = 0, Fatal = 1, Critical = 2, Warning = 3,
  Information = 4, Debug = 5, All = 6
}

Functions

QString upnpErrorCodeToString (qint32 errCode)
void SetLoggingLevel (HLogLevel level)
void EnableNonStdBehaviourWarnings (bool arg)
const char * hupnpCoreVersion ()

Detailed Description

The namespace that contains all of the Herqq UPnP core functionality.


Enumeration Type Documentation

This enumeration specifies the generic error codes that UPnP action invocation may return.

These values correspond to the values defined in the UDA, excluding NotImplemented and UndefinedFailure, which are defined for the purposes of HUPnP.

Note:
These are only the generic error codes. Many UPnP devices define and use domain specific error codes that cannot be specified here.
Enumerator:
UpnpSuccess 

Action invocation succeeded.

UpnpInvalidAction 

Invalid action.

The specified action was not found.

UpnpInvalidArgs 

Action invocation failed due to:

  • not enough arguments,
  • arguments in wrong order,
  • one or more arguments have wrong data type
UpnpActionFailed 

The current state of the service prevents the action invocation.

UpnpArgumentValueInvalid 

Action invocation failed due to an invalid argument value.

UpnpArgumentValueOutOfRange 

Action invocation failed due to:

  • an argument value is less than the minimum of the allowed value range,
  • an argument value is more than the maximum of the allowed value range,
  • an argument value is not in the allowed value list
UpnpOptionalActionNotImplemented 

Action invocation failed due to the requested action being optional and not implemented by the device.

UpnpOutOfMemory 

Action invocation failed due to insufficient memory.

The device does not have sufficient memory available to complete the action. This MAY be a temporary condition; the control point MAY choose to retry the unmodified request again later and it MAY succeed if memory is available.

UpnpHumanInterventionRequired 

The device has encountered an error condition which it cannot resolve itself and required human intervention such as a reset or power cycle.

See the device display or documentation for further guidance.

UpnpStringArgumentTooLong 

Action invocation failed due to a string argument being too long for the device to handle properly.

UpnpInvocationInProgress 

The action invocation is in progress.

Remarks:
This value is defined and used by HUPnP in-process only.
UpnpUndefinedFailure 

Action invocation failed, but the exact cause could not be determined.

Action invocation failed, but the exact cause could not be determined.

Remarks:
This value is defined and used by HUPnP in-process only.

This enumeration specifies how a device tree should be traversed given a starting node.

HUPnP Device Model is organized into a tree that has a root device, which may contain embedded devices as its children and they may contain embedded devices as their children recursively.

This enumeration is used to specify how a device and its children are traversed.

Enumerator:
VisitThisOnly 

This value is used to indicate that only the device in question is visited.

VisitThisAndDirectChildren 

This value is used to indicate that this device and its embedded devices are visited.

VisitThisRecursively 

This value is used to indicate that this device and all of its child devices are visited recursively.

This enumeration specifies the device types that are considered as targets of an operation.

Enumerator:
AllDevices 

This value is used to indicate that all devices, both root and embedded are the targets of an operation.

EmbeddedDevices 

This value is used to indicate that only embedded devices are the targets of an operation.

RootDevices 

This value is used to indicate that only root devices are the targets of an operation.

This enumeration specifies the type of a device location URL.

Enumerator:
AbsoluteUrl 

The absolute URL for the device description.

BaseUrl 

The base URL of the device.

This is the URL with which the various other URLs found in a device description are resolved.


Function Documentation

QString H_UPNP_CORE_EXPORT upnpErrorCodeToString ( qint32  errCode)

Returns a string representation of the specified error code.

Parameters:
errCodespecififes the error code.
Returns:
a string representation of the specified error code.
H_UPNP_CORE_EXPORT const char * hupnpCoreVersion ( )

Returns the runtime version of the HUPnP Core library as a string.

You can use this function to query the version of the HUPnP core library at runtime.

For compile time checks you may use the macros:

  • HUPNP_CORE_MAJOR_VERSION,
  • HUPNP_CORE_MINOR_VERSION,
  • HUPNP_CORE_PATCH_VERSION and
  • HUPNP_CORE_VERSION.
Returns:
The runtime version of the HUPnP Core library as a string. The format is major.minor.patch.
Remarks:
The returned string is statically allocated. You should never delete or free it manually.