#include <request/RemoveBucketRequest.h>
#include <request/RequestContext.h>
#include <request/SetPoliciesRequest.h>
+#include <response/AdminCheckResponse.h>
#include <response/CheckResponse.h>
#include <response/CodeResponse.h>
#include <response/ListResponse.h>
return nullptr;
}
+ResponsePtr ProtocolAdmin::deserializeAdminCheckResponse(void) {
+ PolicyType result;
+ PolicyResult::PolicyMetadata additionalInfo;
+ bool bucketValid;
+
+ ProtocolDeserialization::deserialize(m_frameHeader, result);
+ ProtocolDeserialization::deserialize(m_frameHeader, additionalInfo);
+ ProtocolDeserialization::deserialize(m_frameHeader, bucketValid);
+
+ const PolicyResult policyResult(result, additionalInfo);
+
+ LOGD("Deserialized AdminCheckResponse: result [%" PRIu16 "], metadata <%s>, bucketValid [%d]",
+ policyResult.policyType(), policyResult.metadata().c_str(), static_cast<int>(bucketValid));
+
+ return std::make_shared<AdminCheckResponse>(policyResult, bucketValid,
+ m_frameHeader.sequenceNumber());
+}
+
ResponsePtr ProtocolAdmin::deserializeCheckResponse(void) {
PolicyType result;
PolicyResult::PolicyMetadata additionalInfo;
ProtocolDeserialization::deserialize(m_frameHeader, opCode);
LOGD("Deserialized opCode [%" PRIu8 "]", opCode);
switch (opCode) {
+ case OpAdminCheckPolicyResponse:
+ return deserializeAdminCheckResponse();
case OpCheckPolicyResponse:
return deserializeCheckResponse();
case OpCodeResponse:
ProtocolFrameSerializer::finishSerialization(frame, *(context->responseQueue()));
}
+void ProtocolAdmin::execute(RequestContextPtr context, AdminCheckResponsePtr response) {
+ LOGD("Serializing AdminCheckResponse: op [%" PRIu8 "], sequenceNumber [%" PRIu16 "], "
+ "policyType [%" PRIu16 "], metadata <%s>, bucketValid [%d]", OpAdminCheckPolicyResponse,
+ response->sequenceNumber(), response->result().policyType(),
+ response->result().metadata().c_str(), static_cast<int>(response->isBucketValid()));
+
+ ProtocolFrame frame = ProtocolFrameSerializer::startSerialization(
+ response->sequenceNumber());
+
+ ProtocolSerialization::serialize(frame, OpAdminCheckPolicyResponse);
+ ProtocolSerialization::serialize(frame, response->result().policyType());
+ ProtocolSerialization::serialize(frame, response->result().metadata());
+ ProtocolSerialization::serialize(frame, response->isBucketValid());
+
+ ProtocolFrameSerializer::finishSerialization(frame, *(context->responseQueue()));
+}
+
void ProtocolAdmin::execute(RequestContextPtr context, CheckResponsePtr response) {
LOGD("Serializing CheckResponse: op [%" PRIu8 "], sequenceNumber [%" PRIu16 "], "
"policyType [%" PRIu16 "], metadata <%s>", OpCheckPolicyResponse,
virtual void execute(RequestContextPtr context, RemoveBucketRequestPtr request);
virtual void execute(RequestContextPtr context, SetPoliciesRequestPtr request);
+ virtual void execute(RequestContextPtr context, AdminCheckResponsePtr response);
virtual void execute(RequestContextPtr context, CheckResponsePtr response);
virtual void execute(RequestContextPtr context, CodeResponsePtr response);
virtual void execute(RequestContextPtr context, ListResponsePtr response);
RequestPtr deserializeRemoveBucketRequest(void);
RequestPtr deserializeSetPoliciesRequest(void);
+ ResponsePtr deserializeAdminCheckResponse(void);
ResponsePtr deserializeCheckResponse(void);
ResponsePtr deserializeCodeResponse(void);
ResponsePtr deserializeListResponse(void);