nl:: Weave:: WeaveServerDelegateBase
#include <src/lib/core/WeaveServerBase.h>
A common base class for implementing Weave server delegate objects.
Summary
Inheritance
Direct Known Subclasses:nl::Weave::Profiles::DeviceControl::DeviceControlDelegate
nl::Weave::Profiles::FabricProvisioning::FabricProvisioningDelegate
nl::Weave::Profiles::NetworkProvisioning::NetworkProvisioningDelegate
nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningDelegate
nl::Weave::Profiles::TokenPairing::TokenPairingDelegate
nl::Weave::Profiles::Vendor::Nestlabs::DropcamLegacyPairing::DropcamLegacyPairingDelegate
Protected types |
|
---|---|
@69{
|
enum |
AccessControlResult
|
typedefuint8_t
|
Protected functions |
|
---|---|
EnforceAccessControl(ExchangeContext *ec, uint32_t msgProfileId, uint8_t msgType, const WeaveMessageInfo *msgInfo, AccessControlResult & result)
|
virtual void
Virtual method for determining message-level access control policy for incoming server request messages.
|
WeaveServerDelegateBase(void)
|
|
Protected types
@69
@69
AccessControlResult
uint8_t AccessControlResult
Protected functions
EnforceAccessControl
virtual void EnforceAccessControl( ExchangeContext *ec, uint32_t msgProfileId, uint8_t msgType, const WeaveMessageInfo *msgInfo, AccessControlResult & result )
Virtual method for determining message-level access control policy for incoming server request messages.
This method is called by the Weave server infrastructure to determine whether an incoming request message should be accepted and processed normally, or rejected. Delegate classes associated with Weave server implementations must override this method to implement an appropriate access control policies for their protocols. Applications may further override this method to support custom policies beyond those provide by the standard server implementations.
Implementations of this method are expected to return a result value of Accepted or Rejected based on the outcome of access control policy evaluation. Returning a result of Rejected causes a StatusReport to be sent to the requester containing the status Common/AccessDenied. Alternatively, method implementations can choose to send their own responses, which can be a StatusReport or any other type of message. In this case, the method should return a result of Reject_RespSent to signal that a response has already been sent. Finally, implementations can return Reject_Silent to indicate that the request should be rejected without sending a response to the requester.
Classes that override the EnforceAccessControl() method are required in call cases to call the like-named method on their immediate parent class, be that the WeaveServerDelegateBase class, or a class derived from that class. Overriding methods should first update the result value with their determination of the access control policy, and then call on their base class to make its determination.
Details | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parameters |
|
WeaveServerDelegateBase
WeaveServerDelegateBase( void )