Herqq
|
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...
#include <HDeviceModelInfoProvider>
Public Member Functions | |
HDeviceModelInfoProvider () | |
virtual | ~HDeviceModelInfoProvider ()=0 |
virtual HServicesSetupData | servicesSetupData (const HDeviceInfo &info) const |
virtual HDevicesSetupData | embedddedDevicesSetupData (const HDeviceInfo &info) const |
virtual HActionsSetupData | actionsSetupData (const HServiceInfo &serviceInfo, const HDeviceInfo &parentDeviceInfo) const |
virtual HStateVariablesSetupData | stateVariablesSetupData (const HServiceInfo &serviceInfo, const HDeviceInfo &parentDeviceInfo) const |
virtual HDeviceModelInfoProvider * | clone () const |
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.
The main purpose of this class is to define an interface that enables the users to provide information that HUPnP can use for verification and validation purposes. Although optional, this information can be especially useful when provided to HDeviceHost via HDeviceHostConfiguration. This enables HUPnP to use the information to verify that device and service descriptions are setup according to the specified information.
The benefit of this is that your custom device model components can rest assured that all the required state variables, actions, services and embedded devices are properly defined and initialized before the instantiation of the HUPnP's device model (device tree) is published for control points to use.
The benefits of this may be somewhat difficult to realize at first, since most of the time it is you, the user, who provides the implementation and the description documents. Apart from inadvertent mistakes, you usually get those right. However, when someone else provides the implementation of the HUPnP's device model or the description documents, mismatches can easily occur and this is where the benefits of this additional information are truly useful. Remember, in UPnP architecture the description documents are used to marshal device model information from servers to clients. If the description documents do not accurately reflect the server-side implementation, the client-side may not be able to correctly invoke the server-side.
Creates a new instance.
~HDeviceModelInfoProvider | ( | ) | [pure virtual] |
Destroys the instance.
HServicesSetupData servicesSetupData | ( | const HDeviceInfo & | info | ) | const [virtual] |
Returns information of the services the specified device type may contain.
info | specifies the device type. |
HDevicesSetupData embedddedDevicesSetupData | ( | const HDeviceInfo & | info | ) | const [virtual] |
Returns information of the embedded devices the specified device type may contain.
info | specifies the device type. |
HActionsSetupData actionsSetupData | ( | const HServiceInfo & | serviceInfo, |
const HDeviceInfo & | parentDeviceInfo | ||
) | const [virtual] |
Returns information of the actions the specified service type may contain.
serviceInfo | specifies the service type. |
parentDeviceInfo | specifies information about the parent UPnP device that contains this service. |
HStateVariablesSetupData stateVariablesSetupData | ( | const HServiceInfo & | serviceInfo, |
const HDeviceInfo & | parentDeviceInfo | ||
) | const [virtual] |
Returns information of the state variables the specified service type may contain.
serviceInfo | specifies the service type. |
parentDeviceInfo | specifies information about the parent UPnP device that contains this service. |
HDeviceModelInfoProvider * clone | ( | ) | const [virtual] |
Returns a deep copy of the instance.
Reimplemented from HClonable.