首页 理论教育 DOA/Handle技术:修改Handle值

DOA/Handle技术:修改Handle值

时间:2023-11-23 理论教育 版权反馈
【摘要】:<ValueList>:一个4 字节的无符号整数后跟一组Handle 值。这个无符号整数代表后面的Handle 值的个数。接收MODIFY_VALUE 请求的服务器必须首先将客户端认证为具有修改 Handle 值权限的管理员。例如,尝试修改任何既没有PUB_WRITE 许可也没有ADMIN_WRITE 许可的Handle 值将导致RC_ACCESS_DENIED 错误,服务器须反馈一个错误信息,且该信息把<ResponseCode>设定为RC_ACCESS_DENIED。任何替换不存在的Handle值的REMOVE_VALUE 请求也会被作为错误来处理。在这种情况下,服务器将反馈出错信息,并把<ResponseCode>设置为 RC_VALUE_INVALID。

DOA/Handle技术:修改Handle值

客户端通过将MODIFY_VALUE 请求发送到负责处理的Handle 服务器来修改现有的Handle 值。MODIFY _VALUE 请求的消息头须将其<OpCode>设置为OC_ MODIFY _VALUE。

MODIFY_VALUE 请求的消息体编码如下:

<Handle>:一个UTF-8 编码的字符串,要修改Handle 值对应的Handle码。<ValueList>:一个4 字节的无符号整数后跟一组Handle 值。这个无符号整数代表后面的Handle 值的个数。每一个Handle 值都将替换与现有Handle 值索引相同的Handle 值。

接收MODIFY_VALUE 请求的服务器必须首先将客户端认证为具有修改 Handle 值权限的管理员。一旦认证成功,服务器将继续替换<ValueList>里列出的Handle 值。如果成功,服务器将把一个RC_SUCCESS的消息反馈到客户端。(www.xing528.com)

每个MODIFY_VALUE 请求必须作为一个事务处理来执行。如果替换任何在<ValueList>里的值引发了错误,则整个操作必须回滚。对于任何未能实现的MODIFY_VALUE 请求,<ValueList>的任何值都不能被替换。另外,该服务器还须对客户端做出响应并返回错误。例如,尝试修改任何既没有PUB_WRITE 许可也没有ADMIN_WRITE 许可的Handle 值将导致RC_ACCESS_DENIED 错误,服务器须反馈一个错误信息,且该信息把<ResponseCode>设定为RC_ACCESS_DENIED。任何替换不存在的Handle值的REMOVE_VALUE 请求也会被作为错误来处理。在这种情况下,服务器将会反馈信息,并把<ResponseCode>设置为 RC_VALUE_NOT_FOUND。

MODIFY_VALUE 请求也可用于更新Handle 管理员。如果<ValueList>的值和要被替换的值都为HS_ADMIN 值,这种情况就会发生。服务器在完成该请求前必须认证客户端是具有MODIFY_ADMIN 权限的管理员。用一个HS_ADMIN 值替换一个非HS_ADMIN 值是错误的。在这种情况下,服务器将反馈出错信息,并把<ResponseCode>设置为 RC_VALUE_INVALID。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈