/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
return CYNARA_API_SERVICE_NOT_AVAILABLE;
}
- RequestPtr requestPtr = std::make_shared<AgentActionRequest>(responseType, pluginData,
- sequenceNumber);
+ AgentActionRequest request(responseType, pluginData, sequenceNumber);
m_responseBuffer->clear();
- RequestContextPtr contextPtr = std::make_shared<RequestContext>(ResponseTakerPtr(),
- m_responseBuffer);
- requestPtr->execute(requestPtr, m_responseTakerPtr, contextPtr);
+ RequestContext context(ResponseTakerPtr(), m_responseBuffer);
+ request.execute(request, *m_responseTakerPtr, context);
return m_agentSocket->sendDataToServer(*m_responseBuffer) ? CYNARA_API_SUCCESS :
CYNARA_API_SERVICE_NOT_AVAILABLE;
}
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
ResponsePtr AgentSocketClient::askCynaraServer(RequestPtr request) {
//pass request to protocol
- RequestContextPtr context = std::make_shared<RequestContext>(ResponseTakerPtr(), m_writeQueue);
- request->execute(request, m_protocol, context);
+ RequestContext context(ResponseTakerPtr(), m_writeQueue);
+ request->execute(*request, *m_protocol, context);
//send request to cynara
if (!sendDataToServer(*m_writeQueue)) {
}
void SocketClientAsync::appendRequest(RequestPtr request) {
- RequestContextPtr context = std::make_shared<RequestContext>(ResponseTakerPtr(), m_writeQueue);
- request->execute(request, m_protocol, context);
+ RequestContext context(ResponseTakerPtr(), m_writeQueue);
+ request->execute(*request, *m_protocol, context);
}
bool SocketClientAsync::isDataToSend(void) {
return nullptr;
}
-void ProtocolAdmin::execute(RequestContextPtr context, AdminCheckRequestPtr request) {
+void ProtocolAdmin::execute(const RequestContext &context, const AdminCheckRequest &request) {
LOGD("Serializing AdminCheckRequest: client <%s>, user <%s>, privilege <%s>, "
- "startBucket <%s>, recursive [%d]", request->key().client().value().c_str(),
- request->key().user().value().c_str(), request->key().privilege().value().c_str(),
- request->startBucket().c_str(), request->recursive());
+ "startBucket <%s>, recursive [%d]", request.key().client().value().c_str(),
+ request.key().user().value().c_str(), request.key().privilege().value().c_str(),
+ request.startBucket().c_str(), request.recursive());
- ProtocolFrame frame = ProtocolFrameSerializer::startSerialization(request->sequenceNumber());
+ ProtocolFrame frame = ProtocolFrameSerializer::startSerialization(request.sequenceNumber());
ProtocolSerialization::serialize(frame, OpAdminCheckRequest);
- ProtocolSerialization::serialize(frame, request->key().client().value());
- ProtocolSerialization::serialize(frame, request->key().user().value());
- ProtocolSerialization::serialize(frame, request->key().privilege().value());
- ProtocolSerialization::serialize(frame, request->startBucket());
- ProtocolSerialization::serialize(frame, request->recursive());
+ ProtocolSerialization::serialize(frame, request.key().client().value());
+ ProtocolSerialization::serialize(frame, request.key().user().value());
+ ProtocolSerialization::serialize(frame, request.key().privilege().value());
+ ProtocolSerialization::serialize(frame, request.startBucket());
+ ProtocolSerialization::serialize(frame, request.recursive());
- ProtocolFrameSerializer::finishSerialization(frame, *(context->responseQueue()));
+ ProtocolFrameSerializer::finishSerialization(frame, *(context.responseQueue()));
}
-void ProtocolAdmin::execute(RequestContextPtr context, DescriptionListRequestPtr request) {
+void ProtocolAdmin::execute(const RequestContext &context, const DescriptionListRequest &request) {
LOGD("Serializing DescriptionListRequest");
- ProtocolFrame frame = ProtocolFrameSerializer::startSerialization(request->sequenceNumber());
+ ProtocolFrame frame = ProtocolFrameSerializer::startSerialization(request.sequenceNumber());
ProtocolSerialization::serialize(frame, OpDescriptionListRequest);
- ProtocolFrameSerializer::finishSerialization(frame, *(context->responseQueue()));
+ ProtocolFrameSerializer::finishSerialization(frame, *(context.responseQueue()));
}
-void ProtocolAdmin::execute(RequestContextPtr context, EraseRequestPtr request) {
+void ProtocolAdmin::execute(const RequestContext &context, const EraseRequest &request) {
LOGD("Serializing EraseRequest: sequenceNumber [%" PRIu16 "], startBucket <%s>, "
"recursive [%d], filter client <%s> filter user <%s> filter privilege <%s>",
- request->sequenceNumber(), request->startBucket().c_str(),
- static_cast<int>(request->recursive()), request->filter().client().value().c_str(),
- request->filter().user().value().c_str(), request->filter().privilege().value().c_str());
+ request.sequenceNumber(), request.startBucket().c_str(),
+ static_cast<int>(request.recursive()), request.filter().client().value().c_str(),
+ request.filter().user().value().c_str(), request.filter().privilege().value().c_str());
- ProtocolFrame frame = ProtocolFrameSerializer::startSerialization(request->sequenceNumber());
+ ProtocolFrame frame = ProtocolFrameSerializer::startSerialization(request.sequenceNumber());
ProtocolSerialization::serialize(frame, OpEraseRequest);
- ProtocolSerialization::serialize(frame, request->startBucket());
- ProtocolSerialization::serialize(frame, request->recursive());
- ProtocolSerialization::serialize(frame, request->filter().client().value());
- ProtocolSerialization::serialize(frame, request->filter().user().value());
- ProtocolSerialization::serialize(frame, request->filter().privilege().value());
+ ProtocolSerialization::serialize(frame, request.startBucket());
+ ProtocolSerialization::serialize(frame, request.recursive());
+ ProtocolSerialization::serialize(frame, request.filter().client().value());
+ ProtocolSerialization::serialize(frame, request.filter().user().value());
+ ProtocolSerialization::serialize(frame, request.filter().privilege().value());
- ProtocolFrameSerializer::finishSerialization(frame, *(context->responseQueue()));
+ ProtocolFrameSerializer::finishSerialization(frame, *(context.responseQueue()));
}
-void ProtocolAdmin::execute(RequestContextPtr context, InsertOrUpdateBucketRequestPtr request) {
+void ProtocolAdmin::execute(const RequestContext &context,
+ const InsertOrUpdateBucketRequest &request) {
LOGD("Serializing InsertOrUpdateBucketRequest: sequenceNumber [%" PRIu16 "], bucketId <%s>, "
- "result.type [%" PRIu16 "], result.meta <%s>", request->sequenceNumber(),
- request->bucketId().c_str(), request->result().policyType(),
- request->result().metadata().c_str());
+ "result.type [%" PRIu16 "], result.meta <%s>", request.sequenceNumber(),
+ request.bucketId().c_str(), request.result().policyType(),
+ request.result().metadata().c_str());
- ProtocolFrame frame = ProtocolFrameSerializer::startSerialization(request->sequenceNumber());
+ ProtocolFrame frame = ProtocolFrameSerializer::startSerialization(request.sequenceNumber());
ProtocolSerialization::serialize(frame, OpInsertOrUpdateBucket);
- ProtocolSerialization::serialize(frame, request->bucketId());
- ProtocolSerialization::serialize(frame, request->result().policyType());
- ProtocolSerialization::serialize(frame, request->result().metadata());
+ ProtocolSerialization::serialize(frame, request.bucketId());
+ ProtocolSerialization::serialize(frame, request.result().policyType());
+ ProtocolSerialization::serialize(frame, request.result().metadata());
- ProtocolFrameSerializer::finishSerialization(frame, *(context->responseQueue()));
+ ProtocolFrameSerializer::finishSerialization(frame, *(context.responseQueue()));
}
-void ProtocolAdmin::execute(RequestContextPtr context, ListRequestPtr request) {
+void ProtocolAdmin::execute(const RequestContext &context, const ListRequest &request) {
LOGD("Serializing ListRequest: sequenceNumber [%" PRIu16 "], bucketId <%s>, "
- "filter client <%s> filter user <%s> filter privilege <%s>", request->sequenceNumber(),
- request->bucket().c_str(), request->filter().client().value().c_str(),
- request->filter().user().value().c_str(), request->filter().privilege().value().c_str());
+ "filter client <%s> filter user <%s> filter privilege <%s>", request.sequenceNumber(),
+ request.bucket().c_str(), request.filter().client().value().c_str(),
+ request.filter().user().value().c_str(), request.filter().privilege().value().c_str());
- ProtocolFrame frame = ProtocolFrameSerializer::startSerialization(request->sequenceNumber());
+ ProtocolFrame frame = ProtocolFrameSerializer::startSerialization(request.sequenceNumber());
ProtocolSerialization::serialize(frame, OpListRequest);
- ProtocolSerialization::serialize(frame, request->bucket());
- ProtocolSerialization::serialize(frame, request->filter().client().value());
- ProtocolSerialization::serialize(frame, request->filter().user().value());
- ProtocolSerialization::serialize(frame, request->filter().privilege().value());
+ ProtocolSerialization::serialize(frame, request.bucket());
+ ProtocolSerialization::serialize(frame, request.filter().client().value());
+ ProtocolSerialization::serialize(frame, request.filter().user().value());
+ ProtocolSerialization::serialize(frame, request.filter().privilege().value());
- ProtocolFrameSerializer::finishSerialization(frame, *(context->responseQueue()));
+ ProtocolFrameSerializer::finishSerialization(frame, *(context.responseQueue()));
}
-void ProtocolAdmin::execute(RequestContextPtr context, RemoveBucketRequestPtr request) {
+void ProtocolAdmin::execute(const RequestContext &context, const RemoveBucketRequest &request) {
LOGD("Serializing RemoveBucketRequest: sequenceNumber [%" PRIu16 "], bucketId <%s>",
- request->sequenceNumber(), request->bucketId().c_str());
+ request.sequenceNumber(), request.bucketId().c_str());
- ProtocolFrame frame = ProtocolFrameSerializer::startSerialization(request->sequenceNumber());
+ ProtocolFrame frame = ProtocolFrameSerializer::startSerialization(request.sequenceNumber());
ProtocolSerialization::serialize(frame, OpRemoveBucket);
- ProtocolSerialization::serialize(frame, request->bucketId());
+ ProtocolSerialization::serialize(frame, request.bucketId());
- ProtocolFrameSerializer::finishSerialization(frame, *(context->responseQueue()));
+ ProtocolFrameSerializer::finishSerialization(frame, *(context.responseQueue()));
}
-void ProtocolAdmin::execute(RequestContextPtr context, SetPoliciesRequestPtr request) {
+void ProtocolAdmin::execute(const RequestContext &context, const SetPoliciesRequest &request) {
LOGD("Serializing SetPoliciesRequestPtr: sequenceNumber [%" PRIu16 "], "
- "insertOrUpdate count [%zu], remove count [%zu]", request->sequenceNumber(),
- request->policiesToBeInsertedOrUpdated().size(), request->policiesToBeRemoved().size());
+ "insertOrUpdate count [%zu], remove count [%zu]", request.sequenceNumber(),
+ request.policiesToBeInsertedOrUpdated().size(), request.policiesToBeRemoved().size());
ProtocolFrame frame =
- ProtocolFrameSerializer::startSerialization(request->sequenceNumber());
+ ProtocolFrameSerializer::startSerialization(request.sequenceNumber());
ProtocolSerialization::serialize(frame, OpSetPolicies);
ProtocolSerialization::serialize(frame,
- static_cast<ProtocolFrameFieldsCount>(request->policiesToBeInsertedOrUpdated().size()));
- for (auto policyBucket : request->policiesToBeInsertedOrUpdated()) {
+ static_cast<ProtocolFrameFieldsCount>(request.policiesToBeInsertedOrUpdated().size()));
+ for (auto policyBucket : request.policiesToBeInsertedOrUpdated()) {
ProtocolSerialization::serialize(frame, policyBucket.first);
ProtocolSerialization::serialize(frame,
static_cast<ProtocolFrameFieldsCount>(policyBucket.second.size()));
}
ProtocolSerialization::serialize(frame,
- static_cast<ProtocolFrameFieldsCount>(request->policiesToBeRemoved().size()));
- for (auto policyBucket : request->policiesToBeRemoved()) {
+ static_cast<ProtocolFrameFieldsCount>(request.policiesToBeRemoved().size()));
+ for (auto policyBucket : request.policiesToBeRemoved()) {
ProtocolSerialization::serialize(frame, policyBucket.first);
ProtocolSerialization::serialize(frame,
static_cast<ProtocolFrameFieldsCount>(policyBucket.second.size()));
}
}
- ProtocolFrameSerializer::finishSerialization(frame, *(context->responseQueue()));
+ ProtocolFrameSerializer::finishSerialization(frame, *(context.responseQueue()));
}
-void ProtocolAdmin::execute(RequestContextPtr context, AdminCheckResponsePtr response) {
+void ProtocolAdmin::execute(const RequestContext &context, const AdminCheckResponse &response) {
LOGD("Serializing AdminCheckResponse: op [%" PRIu8 "], sequenceNumber [%" PRIu16 "], "
"policyType [%" PRIu16 "], metadata <%s>, bucketValid [%d], dbCorrupted [%d]",
- OpAdminCheckPolicyResponse, response->sequenceNumber(), response->result().policyType(),
- response->result().metadata().c_str(), static_cast<int>(response->isBucketValid()),
- static_cast<int>(response->isDbCorrupted()));
+ OpAdminCheckPolicyResponse, response.sequenceNumber(), response.result().policyType(),
+ response.result().metadata().c_str(), static_cast<int>(response.isBucketValid()),
+ static_cast<int>(response.isDbCorrupted()));
ProtocolFrame frame = ProtocolFrameSerializer::startSerialization(
- response->sequenceNumber());
+ response.sequenceNumber());
ProtocolSerialization::serialize(frame, OpAdminCheckPolicyResponse);
- ProtocolSerialization::serialize(frame, response->result().policyType());
- ProtocolSerialization::serialize(frame, response->result().metadata());
- ProtocolSerialization::serialize(frame, response->isBucketValid());
- ProtocolSerialization::serialize(frame, response->isDbCorrupted());
+ ProtocolSerialization::serialize(frame, response.result().policyType());
+ ProtocolSerialization::serialize(frame, response.result().metadata());
+ ProtocolSerialization::serialize(frame, response.isBucketValid());
+ ProtocolSerialization::serialize(frame, response.isDbCorrupted());
- ProtocolFrameSerializer::finishSerialization(frame, *(context->responseQueue()));
+ ProtocolFrameSerializer::finishSerialization(frame, *(context.responseQueue()));
}
-void ProtocolAdmin::execute(RequestContextPtr context, CodeResponsePtr response) {
+void ProtocolAdmin::execute(const RequestContext &context, const CodeResponse &response) {
LOGD("Serializing CodeResponse: op [%" PRIu8 "], sequenceNumber [%" PRIu16 "], "
- "code [%" PRIu16 "]", OpCodeResponse, response->sequenceNumber(), response->m_code);
+ "code [%" PRIu16 "]", OpCodeResponse, response.sequenceNumber(), response.m_code);
ProtocolFrame frame = ProtocolFrameSerializer::startSerialization(
- response->sequenceNumber());
+ response.sequenceNumber());
ProtocolSerialization::serialize(frame, OpCodeResponse);
- ProtocolSerialization::serialize(frame, static_cast<ProtocolResponseCode>(response->m_code));
+ ProtocolSerialization::serialize(frame, static_cast<ProtocolResponseCode>(response.m_code));
- ProtocolFrameSerializer::finishSerialization(frame, *(context->responseQueue()));
+ ProtocolFrameSerializer::finishSerialization(frame, *(context.responseQueue()));
}
-void ProtocolAdmin::execute(RequestContextPtr context, DescriptionListResponsePtr response) {
+void ProtocolAdmin::execute(const RequestContext &context, const DescriptionListResponse &response)
+{
ProtocolFrameFieldsCount descriptionsSize
- = static_cast<ProtocolFrameFieldsCount>(response->descriptions().size());
+ = static_cast<ProtocolFrameFieldsCount>(response.descriptions().size());
LOGD("Serializing DescriptionListResponse: op [%" PRIu8 "], sequenceNumber [%" PRIu16 "], "
"number of descriptions [%" PRIu16 "], dbCorrupted [%d]", OpDescriptionListResponse,
- response->sequenceNumber(), descriptionsSize, static_cast<int>(response->isDbCorrupted()));
+ response.sequenceNumber(), descriptionsSize, static_cast<int>(response.isDbCorrupted()));
- ProtocolFrame frame = ProtocolFrameSerializer::startSerialization(response->sequenceNumber());
+ ProtocolFrame frame = ProtocolFrameSerializer::startSerialization(response.sequenceNumber());
ProtocolSerialization::serialize(frame, OpDescriptionListResponse);
ProtocolSerialization::serialize(frame, descriptionsSize);
- for (auto &desc : response->descriptions()) {
+ for (auto &desc : response.descriptions()) {
ProtocolSerialization::serialize(frame, desc.type);
ProtocolSerialization::serialize(frame, desc.name);
}
- ProtocolSerialization::serialize(frame, response->isDbCorrupted());
+ ProtocolSerialization::serialize(frame, response.isDbCorrupted());
- ProtocolFrameSerializer::finishSerialization(frame, *(context->responseQueue()));
+ ProtocolFrameSerializer::finishSerialization(frame, *(context.responseQueue()));
}
-void ProtocolAdmin::execute(RequestContextPtr context, ListResponsePtr response) {
+void ProtocolAdmin::execute(const RequestContext &context, const ListResponse &response) {
ProtocolFrameFieldsCount policiesSize
- = static_cast<ProtocolFrameFieldsCount>(response->policies().size());
+ = static_cast<ProtocolFrameFieldsCount>(response.policies().size());
LOGD("Serializing ListResponse: op [%" PRIu8 "], sequenceNumber [%" PRIu16 "], "
"number of policies [%" PRIu16 "], bucketValid [%d], dbCorrupted [%d]", OpListResponse,
- response->sequenceNumber(), policiesSize, static_cast<int>(response->isBucketValid()),
- static_cast<int>(response->isDbCorrupted()));
+ response.sequenceNumber(), policiesSize, static_cast<int>(response.isBucketValid()),
+ static_cast<int>(response.isDbCorrupted()));
- ProtocolFrame frame = ProtocolFrameSerializer::startSerialization(response->sequenceNumber());
+ ProtocolFrame frame = ProtocolFrameSerializer::startSerialization(response.sequenceNumber());
ProtocolSerialization::serialize(frame, OpListResponse);
ProtocolSerialization::serialize(frame, policiesSize);
- for (auto &policy : response->policies()) {
+ for (auto &policy : response.policies()) {
// PolicyKey
ProtocolSerialization::serialize(frame, policy.key().client().value());
ProtocolSerialization::serialize(frame, policy.key().user().value());
ProtocolSerialization::serialize(frame, policy.result().policyType());
ProtocolSerialization::serialize(frame, policy.result().metadata());
}
- ProtocolSerialization::serialize(frame, response->isBucketValid());
- ProtocolSerialization::serialize(frame, response->isDbCorrupted());
+ ProtocolSerialization::serialize(frame, response.isBucketValid());
+ ProtocolSerialization::serialize(frame, response.isDbCorrupted());
- ProtocolFrameSerializer::finishSerialization(frame, *(context->responseQueue()));
+ ProtocolFrameSerializer::finishSerialization(frame, *(context.responseQueue()));
}
} // namespace Cynara
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
virtual RequestPtr extractRequestFromBuffer(BinaryQueuePtr bufferQueue);
virtual ResponsePtr extractResponseFromBuffer(BinaryQueuePtr bufferQueue);
- virtual void execute(RequestContextPtr context, AdminCheckRequestPtr request);
- virtual void execute(RequestContextPtr context, DescriptionListRequestPtr request);
- virtual void execute(RequestContextPtr context, EraseRequestPtr request);
- virtual void execute(RequestContextPtr context, InsertOrUpdateBucketRequestPtr request);
- virtual void execute(RequestContextPtr context, ListRequestPtr request);
- virtual void execute(RequestContextPtr context, RemoveBucketRequestPtr request);
- virtual void execute(RequestContextPtr context, SetPoliciesRequestPtr request);
+ virtual void execute(const RequestContext &context, const AdminCheckRequest &request);
+ virtual void execute(const RequestContext &context, const DescriptionListRequest &request);
+ virtual void execute(const RequestContext &context, const EraseRequest &request);
+ virtual void execute(const RequestContext &context, const InsertOrUpdateBucketRequest &request);
+ virtual void execute(const RequestContext &context, const ListRequest &request);
+ virtual void execute(const RequestContext &context, const RemoveBucketRequest &request);
+ virtual void execute(const RequestContext &context, const SetPoliciesRequest &request);
- virtual void execute(RequestContextPtr context, AdminCheckResponsePtr response);
- virtual void execute(RequestContextPtr context, CodeResponsePtr response);
- virtual void execute(RequestContextPtr context, DescriptionListResponsePtr response);
- virtual void execute(RequestContextPtr context, ListResponsePtr response);
+ virtual void execute(const RequestContext &context, const AdminCheckResponse &response);
+ virtual void execute(const RequestContext &context, const CodeResponse &response);
+ virtual void execute(const RequestContext &context, const DescriptionListResponse &response);
+ virtual void execute(const RequestContext &context, const ListResponse &response);
private:
RequestPtr deserializeAdminCheckRequest(void);
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
return nullptr;
}
-void ProtocolAgent::execute(RequestContextPtr context, AgentActionRequestPtr request) {
+void ProtocolAgent::execute(const RequestContext &context, const AgentActionRequest &request) {
LOGD("Serializing AgentActionRequest: op [%" PRIu8 "], requestType [%" PRIu8 "], "
- "data lengtgh <%zu>", OpAgentActionRequest, request->type(), request->data().size());
+ "data lengtgh <%zu>", OpAgentActionRequest, request.type(), request.data().size());
- ProtocolFrame frame = ProtocolFrameSerializer::startSerialization(request->sequenceNumber());
+ ProtocolFrame frame = ProtocolFrameSerializer::startSerialization(request.sequenceNumber());
ProtocolSerialization::serialize(frame, OpAgentActionRequest);
- ProtocolSerialization::serialize(frame, request->type());
- ProtocolSerialization::serialize(frame, request->data());
+ ProtocolSerialization::serialize(frame, request.type());
+ ProtocolSerialization::serialize(frame, request.data());
- ProtocolFrameSerializer::finishSerialization(frame, *context->responseQueue());
+ ProtocolFrameSerializer::finishSerialization(frame, *context.responseQueue());
}
-void ProtocolAgent::execute(RequestContextPtr context, AgentRegisterRequestPtr request) {
+void ProtocolAgent::execute(const RequestContext &context, const AgentRegisterRequest &request) {
LOGD("Serializing AgentRegisterRequest: op [%" PRIu8 "], agent type <%s>",
- OpAgentRegisterRequest, request->agentType().c_str());
+ OpAgentRegisterRequest, request.agentType().c_str());
- ProtocolFrame frame = ProtocolFrameSerializer::startSerialization(request->sequenceNumber());
+ ProtocolFrame frame = ProtocolFrameSerializer::startSerialization(request.sequenceNumber());
ProtocolSerialization::serialize(frame, OpAgentRegisterRequest);
- ProtocolSerialization::serialize(frame, request->agentType());
+ ProtocolSerialization::serialize(frame, request.agentType());
- ProtocolFrameSerializer::finishSerialization(frame, *context->responseQueue());
+ ProtocolFrameSerializer::finishSerialization(frame, *context.responseQueue());
}
-void ProtocolAgent::execute(RequestContextPtr context, AgentRegisterResponsePtr response) {
+void ProtocolAgent::execute(const RequestContext &context, const AgentRegisterResponse &response) {
LOGD("Serializing AgentRegisterResponse: op [%" PRIu8 "], response code: [%d]",
- OpAgentRegisterResponse, static_cast<int>(response->m_code));
+ OpAgentRegisterResponse, static_cast<int>(response.m_code));
- ProtocolFrame frame = ProtocolFrameSerializer::startSerialization(response->sequenceNumber());
+ ProtocolFrame frame = ProtocolFrameSerializer::startSerialization(response.sequenceNumber());
ProtocolSerialization::serialize(frame, OpAgentRegisterResponse);
- ProtocolSerialization::serialize(frame, static_cast<ProtocolResponseCode>(response->m_code));
+ ProtocolSerialization::serialize(frame, static_cast<ProtocolResponseCode>(response.m_code));
- ProtocolFrameSerializer::finishSerialization(frame, *context->responseQueue());
+ ProtocolFrameSerializer::finishSerialization(frame, *context.responseQueue());
}
-void ProtocolAgent::execute(RequestContextPtr context, AgentActionResponsePtr response) {
+void ProtocolAgent::execute(const RequestContext &context, const AgentActionResponse &response) {
LOGD("Serializing AgentActionResponse: op [%" PRIu8 "], responseType [%" PRIu8 "], "
- "data lengtgh <%zu>", OpAgentActionResponse, response->type(), response->data().size());
+ "data lengtgh <%zu>", OpAgentActionResponse, response.type(), response.data().size());
- ProtocolFrame frame = ProtocolFrameSerializer::startSerialization(response->sequenceNumber());
+ ProtocolFrame frame = ProtocolFrameSerializer::startSerialization(response.sequenceNumber());
ProtocolSerialization::serialize(frame, OpAgentActionResponse);
- ProtocolSerialization::serialize(frame, response->type());
- ProtocolSerialization::serialize(frame, response->data());
+ ProtocolSerialization::serialize(frame, response.type());
+ ProtocolSerialization::serialize(frame, response.data());
- ProtocolFrameSerializer::finishSerialization(frame, *context->responseQueue());
+ ProtocolFrameSerializer::finishSerialization(frame, *context.responseQueue());
}
} // namespace Cynara
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
virtual RequestPtr extractRequestFromBuffer(BinaryQueuePtr bufferQueue);
virtual ResponsePtr extractResponseFromBuffer(BinaryQueuePtr bufferQueue);
- virtual void execute(RequestContextPtr context, AgentActionRequestPtr request);
- virtual void execute(RequestContextPtr context, AgentActionResponsePtr request);
- virtual void execute(RequestContextPtr context, AgentRegisterRequestPtr request);
- virtual void execute(RequestContextPtr context, AgentRegisterResponsePtr request);
+ virtual void execute(const RequestContext &context, const AgentActionRequest &request);
+ virtual void execute(const RequestContext &context, const AgentActionResponse &request);
+ virtual void execute(const RequestContext &context, const AgentRegisterRequest &request);
+ virtual void execute(const RequestContext &context, const AgentRegisterResponse &request);
private:
RequestPtr deserializeActionRequest(void);
return nullptr;
}
-void ProtocolClient::execute(RequestContextPtr context, CancelRequestPtr request) {
- ProtocolFrame frame = ProtocolFrameSerializer::startSerialization(request->sequenceNumber());
+void ProtocolClient::execute(const RequestContext &context, const CancelRequest &request) {
+ ProtocolFrame frame = ProtocolFrameSerializer::startSerialization(request.sequenceNumber());
LOGD("Serializing CancelRequest op [%" PRIu8 "]", OpCancelRequest);
ProtocolSerialization::serialize(frame, OpCancelRequest);
- ProtocolFrameSerializer::finishSerialization(frame, *(context->responseQueue()));
+ ProtocolFrameSerializer::finishSerialization(frame, *(context.responseQueue()));
}
-void ProtocolClient::execute(RequestContextPtr context, CheckRequestPtr request) {
- ProtocolFrame frame = ProtocolFrameSerializer::startSerialization(request->sequenceNumber());
+void ProtocolClient::execute(const RequestContext &context, const CheckRequest &request) {
+ ProtocolFrame frame = ProtocolFrameSerializer::startSerialization(request.sequenceNumber());
LOGD("Serializing CheckRequest: client <%s>, user <%s>, privilege <%s>",
- request->key().client().value().c_str(), request->key().user().value().c_str(),
- request->key().privilege().value().c_str());
+ request.key().client().value().c_str(), request.key().user().value().c_str(),
+ request.key().privilege().value().c_str());
ProtocolSerialization::serialize(frame, OpCheckPolicyRequest);
- ProtocolSerialization::serialize(frame, request->key().client().value());
- ProtocolSerialization::serialize(frame, request->key().user().value());
- ProtocolSerialization::serialize(frame, request->key().privilege().value());
+ ProtocolSerialization::serialize(frame, request.key().client().value());
+ ProtocolSerialization::serialize(frame, request.key().user().value());
+ ProtocolSerialization::serialize(frame, request.key().privilege().value());
- ProtocolFrameSerializer::finishSerialization(frame, *(context->responseQueue()));
+ ProtocolFrameSerializer::finishSerialization(frame, *(context.responseQueue()));
}
-void ProtocolClient::execute(RequestContextPtr context, SimpleCheckRequestPtr request) {
- ProtocolFrame frame = ProtocolFrameSerializer::startSerialization(request->sequenceNumber());
+void ProtocolClient::execute(const RequestContext &context, const SimpleCheckRequest &request) {
+ ProtocolFrame frame = ProtocolFrameSerializer::startSerialization(request.sequenceNumber());
LOGD("Serializing SimpleCheckRequest: client <%s>, user <%s>, privilege <%s>",
- request->key().client().value().c_str(), request->key().user().value().c_str(),
- request->key().privilege().value().c_str());
+ request.key().client().value().c_str(), request.key().user().value().c_str(),
+ request.key().privilege().value().c_str());
ProtocolSerialization::serialize(frame, OpSimpleCheckPolicyRequest);
- ProtocolSerialization::serialize(frame, request->key().client().value());
- ProtocolSerialization::serialize(frame, request->key().user().value());
- ProtocolSerialization::serialize(frame, request->key().privilege().value());
+ ProtocolSerialization::serialize(frame, request.key().client().value());
+ ProtocolSerialization::serialize(frame, request.key().user().value());
+ ProtocolSerialization::serialize(frame, request.key().privilege().value());
- ProtocolFrameSerializer::finishSerialization(frame, *(context->responseQueue()));
+ ProtocolFrameSerializer::finishSerialization(frame, *(context.responseQueue()));
}
-void ProtocolClient::execute(RequestContextPtr context, CancelResponsePtr response) {
+void ProtocolClient::execute(const RequestContext &context, const CancelResponse &response) {
ProtocolFrame frame = ProtocolFrameSerializer::startSerialization(
- response->sequenceNumber());
+ response.sequenceNumber());
LOGD("Serializing CancelResponse: op [%" PRIu8 "]", OpCancelResponse);
ProtocolSerialization::serialize(frame, OpCancelResponse);
- ProtocolFrameSerializer::finishSerialization(frame, *(context->responseQueue()));
+ ProtocolFrameSerializer::finishSerialization(frame, *(context.responseQueue()));
}
-void ProtocolClient::execute(RequestContextPtr context, CheckResponsePtr response) {
+void ProtocolClient::execute(const RequestContext &context, const CheckResponse &response) {
ProtocolFrame frame = ProtocolFrameSerializer::startSerialization(
- response->sequenceNumber());
+ response.sequenceNumber());
LOGD("Serializing CheckResponse: op [%" PRIu8 "], policyType [%" PRIu16 "], metadata <%s>",
- OpCheckPolicyResponse, response->m_resultRef.policyType(),
- response->m_resultRef.metadata().c_str());
+ OpCheckPolicyResponse, response.m_resultRef.policyType(),
+ response.m_resultRef.metadata().c_str());
ProtocolSerialization::serialize(frame, OpCheckPolicyResponse);
- ProtocolSerialization::serialize(frame, response->m_resultRef.policyType());
- ProtocolSerialization::serialize(frame, response->m_resultRef.metadata());
+ ProtocolSerialization::serialize(frame, response.m_resultRef.policyType());
+ ProtocolSerialization::serialize(frame, response.m_resultRef.metadata());
- ProtocolFrameSerializer::finishSerialization(frame, *(context->responseQueue()));
+ ProtocolFrameSerializer::finishSerialization(frame, *(context.responseQueue()));
}
-void ProtocolClient::execute(RequestContextPtr context, SimpleCheckResponsePtr response) {
+void ProtocolClient::execute(const RequestContext &context, const SimpleCheckResponse &response) {
ProtocolFrame frame = ProtocolFrameSerializer::startSerialization(
- response->sequenceNumber());
+ response.sequenceNumber());
LOGD("Serializing SimpleCheckResponse: op [%" PRIu8 "], retVal [%" PRIi32 "],"
" policyType [%" PRIu16 "], metadata <%s>", OpCheckPolicyResponse,
- response->getReturnValue(), response->getResult().policyType(),
- response->getResult().metadata().c_str());
+ response.getReturnValue(), response.getResult().policyType(),
+ response.getResult().metadata().c_str());
ProtocolSerialization::serialize(frame, OpSimpleCheckPolicyResponse);
- ProtocolSerialization::serialize(frame, response->getReturnValue());
- ProtocolSerialization::serialize(frame, response->getResult().policyType());
- ProtocolSerialization::serialize(frame, response->getResult().metadata());
+ ProtocolSerialization::serialize(frame, response.getReturnValue());
+ ProtocolSerialization::serialize(frame, response.getResult().policyType());
+ ProtocolSerialization::serialize(frame, response.getResult().metadata());
- ProtocolFrameSerializer::finishSerialization(frame, *(context->responseQueue()));
+ ProtocolFrameSerializer::finishSerialization(frame, *(context.responseQueue()));
}
} // namespace Cynara
virtual RequestPtr extractRequestFromBuffer(BinaryQueuePtr bufferQueue);
virtual ResponsePtr extractResponseFromBuffer(BinaryQueuePtr bufferQueue);
- virtual void execute(RequestContextPtr context, CancelRequestPtr request);
- virtual void execute(RequestContextPtr context, CheckRequestPtr request);
- virtual void execute(RequestContextPtr context, SimpleCheckRequestPtr request);
+ virtual void execute(const RequestContext &context, const CancelRequest &request);
+ virtual void execute(const RequestContext &context, const CheckRequest &request);
+ virtual void execute(const RequestContext &context, const SimpleCheckRequest &request);
- virtual void execute(RequestContextPtr context, CancelResponsePtr response);
- virtual void execute(RequestContextPtr context, CheckResponsePtr response);
- virtual void execute(RequestContextPtr context, SimpleCheckResponsePtr request);
+ virtual void execute(const RequestContext &context, const CancelResponse &response);
+ virtual void execute(const RequestContext &context, const CheckResponse &response);
+ virtual void execute(const RequestContext &context, const SimpleCheckResponse &request);
private:
RequestPtr deserializeCancelRequest(void);
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
ProtocolSignal::~ProtocolSignal() {
}
-void ProtocolSignal::execute(RequestContextPtr context UNUSED, SignalRequestPtr request UNUSED) {
+void ProtocolSignal::execute(const RequestContext &context UNUSED,
+ const SignalRequest &request UNUSED) {
throw NotImplementedException();
}
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
virtual RequestPtr extractRequestFromBuffer(BinaryQueuePtr bufferQueue);
virtual ResponsePtr extractResponseFromBuffer(BinaryQueuePtr bufferQueue);
- virtual void execute(RequestContextPtr context, SignalRequestPtr request);
+ virtual void execute(const RequestContext &context, const SignalRequest &request);
};
} // namespace Cynara
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* @brief This file implements admin check request class
*/
-#include <memory>
+#include <attributes/attributes.h>
+#include <request/RequestTaker.h>
#include "AdminCheckRequest.h"
namespace Cynara {
-void AdminCheckRequest::execute(RequestPtr self, RequestTakerPtr taker,
- RequestContextPtr context) const {
- taker->execute(context, std::dynamic_pointer_cast<AdminCheckRequest>(self));
+void AdminCheckRequest::execute(const Request &self UNUSED, RequestTaker &taker,
+ const RequestContext &context) const {
+ taker.execute(context, *this);
}
} // namespace Cynara
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
#include <request/pointers.h>
#include <request/Request.h>
-#include <request/RequestTaker.h>
namespace Cynara {
return m_recursive;
}
- virtual void execute(RequestPtr self, RequestTakerPtr taker, RequestContextPtr context) const;
+ virtual void execute(const Request &self, RequestTaker &taker,
+ const RequestContext &context) const;
};
} // namespace Cynara
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* @brief This file implements agent action request class
*/
-#include <memory>
-
+#include <attributes/attributes.h>
#include <request/RequestTaker.h>
#include "AgentActionRequest.h"
namespace Cynara {
-void AgentActionRequest::execute(RequestPtr self, RequestTakerPtr taker,
- RequestContextPtr context) const {
- taker->execute(context, std::dynamic_pointer_cast<AgentActionRequest>(self));
+void AgentActionRequest::execute(const Request &self UNUSED, RequestTaker &taker,
+ const RequestContext &context) const {
+ taker.execute(context, *this);
}
} // namespace Cynara
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
return m_type;
}
- virtual void execute(RequestPtr self, RequestTakerPtr taker, RequestContextPtr context) const;
+ virtual void execute(const Request &self, RequestTaker &taker,
+ const RequestContext &context) const;
private:
const AgentRequestType m_type;
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* @brief This file implements agent register request class
*/
-#include <memory>
-
+#include <attributes/attributes.h>
#include <request/RequestTaker.h>
#include "AgentRegisterRequest.h"
namespace Cynara {
-void AgentRegisterRequest::execute(RequestPtr self, RequestTakerPtr taker,
- RequestContextPtr context) const {
- taker->execute(context, std::dynamic_pointer_cast<AgentRegisterRequest>(self));
+void AgentRegisterRequest::execute(const Request &self UNUSED, RequestTaker &taker,
+ const RequestContext &context) const {
+ taker.execute(context, *this);
}
} // namespace Cynara
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
return m_agentType;
}
- virtual void execute(RequestPtr self, RequestTakerPtr taker, RequestContextPtr context) const;
+ virtual void execute(const Request &self, RequestTaker &taker,
+ const RequestContext &context) const;
private:
AgentType m_agentType;
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* @brief This file implements cancel request class
*/
-#include <memory>
+#include <attributes/attributes.h>
+#include <request/RequestTaker.h>
#include "CancelRequest.h"
namespace Cynara {
-void CancelRequest::execute(RequestPtr self, RequestTakerPtr taker,
- RequestContextPtr context) const {
- taker->execute(context, std::dynamic_pointer_cast<CancelRequest>(self));
+void CancelRequest::execute(const Request &self UNUSED, RequestTaker &taker,
+ const RequestContext &context) const {
+ taker.execute(context, *this);
}
} // namespace Cynara
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
#include <request/pointers.h>
#include <request/Request.h>
-#include <request/RequestTaker.h>
namespace Cynara {
virtual ~CancelRequest() {};
- virtual void execute(RequestPtr self, RequestTakerPtr taker, RequestContextPtr context) const;
+ virtual void execute(const Request &self, RequestTaker &taker,
+ const RequestContext &context) const;
};
} // namespace Cynara
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* @brief This file implements check request class
*/
-#include <memory>
+#include <attributes/attributes.h>
+#include <request/RequestTaker.h>
#include "CheckRequest.h"
namespace Cynara {
-void CheckRequest::execute(RequestPtr self, RequestTakerPtr taker,
- RequestContextPtr context) const {
- taker->execute(context, std::dynamic_pointer_cast<CheckRequest>(self));
+void CheckRequest::execute(const Request &self UNUSED, RequestTaker &taker,
+ const RequestContext &context) const {
+ taker.execute(context, *this);
}
} // namespace Cynara
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
#include <request/pointers.h>
#include <request/Request.h>
-#include <request/RequestTaker.h>
namespace Cynara {
return m_key;
}
- virtual void execute(RequestPtr self, RequestTakerPtr taker, RequestContextPtr context) const;
+ virtual void execute(const Request &self, RequestTaker &taker,
+ const RequestContext &context) const;
};
} // namespace Cynara
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* @brief This file implements plugin description list request class
*/
-#include <memory>
-
+#include <attributes/attributes.h>
#include <request/RequestTaker.h>
#include "DescriptionListRequest.h"
namespace Cynara {
-void DescriptionListRequest::execute(RequestPtr self, RequestTakerPtr taker,
- RequestContextPtr context) const {
- taker->execute(context, std::dynamic_pointer_cast<DescriptionListRequest>(self));
+void DescriptionListRequest::execute(const Request &self UNUSED, RequestTaker &taker,
+ const RequestContext &context) const {
+ taker.execute(context, *this);
}
} // namespace Cynara
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
virtual ~DescriptionListRequest() {};
- virtual void execute(RequestPtr self, RequestTakerPtr taker, RequestContextPtr context) const;
+ virtual void execute(const Request &self, RequestTaker &taker,
+ const RequestContext &context) const;
};
} // namespace Cynara
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* @brief This file implements policies erase request class
*/
-#include <memory>
-
+#include <attributes/attributes.h>
#include <request/RequestTaker.h>
#include "EraseRequest.h"
namespace Cynara {
-void EraseRequest::execute(RequestPtr self, RequestTakerPtr taker,
- RequestContextPtr context) const {
- taker->execute(context, std::dynamic_pointer_cast<EraseRequest>(self));
+void EraseRequest::execute(const Request &self UNUSED, RequestTaker &taker,
+ const RequestContext &context) const {
+ taker.execute(context, *this);
}
} // namespace Cynara
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
return m_filter;
}
- virtual void execute(RequestPtr self, RequestTakerPtr taker, RequestContextPtr context) const;
+ virtual void execute(const Request &self, RequestTaker &taker,
+ const RequestContext &context) const;
private:
PolicyBucketId m_startBucket;
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* @brief This file implements request class for inserting or updating policy bucket
*/
-#include <memory>
+#include <attributes/attributes.h>
+#include <request/RequestTaker.h>
#include "InsertOrUpdateBucketRequest.h"
namespace Cynara {
-void InsertOrUpdateBucketRequest::execute(RequestPtr self, RequestTakerPtr taker,
- RequestContextPtr context) const {
- taker->execute(context, std::dynamic_pointer_cast<InsertOrUpdateBucketRequest>(self));
+void InsertOrUpdateBucketRequest::execute(const Request &self UNUSED, RequestTaker &taker,
+ const RequestContext &context) const {
+ taker.execute(context, *this);
}
} // namespace Cynara
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
#include <request/pointers.h>
#include <request/Request.h>
-#include <request/RequestTaker.h>
namespace Cynara {
return m_result;
}
- virtual void execute(RequestPtr self, RequestTakerPtr taker, RequestContextPtr context) const;
+ virtual void execute(const Request &self, RequestTaker &taker,
+ const RequestContext &context) const;
};
} // namespace Cynara
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* @brief This file implements policies list request class
*/
-#include <memory>
-
+#include <attributes/attributes.h>
#include <request/RequestTaker.h>
#include "ListRequest.h"
namespace Cynara {
-void ListRequest::execute(RequestPtr self, RequestTakerPtr taker, RequestContextPtr context) const {
- taker->execute(context, std::dynamic_pointer_cast<ListRequest>(self));
+void ListRequest::execute(const Request &self UNUSED, RequestTaker &taker,
+ const RequestContext &context) const {
+ taker.execute(context, *this);
}
} // namespace Cynara
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
return m_filter;
}
- virtual void execute(RequestPtr self, RequestTakerPtr taker, RequestContextPtr context) const;
+ virtual void execute(const Request &self, RequestTaker &taker,
+ const RequestContext &context) const;
};
} // namespace Cynara
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* @brief This file implements request class for bucket removal
*/
-#include <memory>
+#include <attributes/attributes.h>
+#include <request/RequestTaker.h>
#include "RemoveBucketRequest.h"
namespace Cynara {
-void RemoveBucketRequest::execute(RequestPtr self, RequestTakerPtr taker,
- RequestContextPtr context) const {
- taker->execute(context, std::dynamic_pointer_cast<RemoveBucketRequest>(self));
+void RemoveBucketRequest::execute(const Request &self UNUSED, RequestTaker &taker,
+ const RequestContext &context) const {
+ taker.execute(context, *this);
}
} // namespace Cynara
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
#include <request/pointers.h>
#include <request/Request.h>
-#include <request/RequestTaker.h>
namespace Cynara {
return m_bucketId;
}
- virtual void execute(RequestPtr self, RequestTakerPtr taker, RequestContextPtr context) const;
+ virtual void execute(const Request &self, RequestTaker &taker,
+ const RequestContext &context) const;
};
} // namespace Cynara
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
#define SRC_COMMON_REQUEST_REQUEST_H_
#include <request/pointers.h>
-#include <request/RequestTaker.h>
#include <types/ProtocolFields.h>
namespace Cynara {
}
virtual ~Request() {};
- virtual void execute(RequestPtr self, RequestTakerPtr taker,
- RequestContextPtr context) const = 0;
+ virtual void execute(const Request &self, RequestTaker &taker,
+ const RequestContext &context) const = 0;
ProtocolFrameSequenceNumber sequenceNumber(void) const {
return m_sequenceNumber;
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
#include <memory>
+#include <attributes/attributes.h>
#include <containers/BinaryQueue.h>
#include <exceptions/ContextErrorException.h>
#include <request/pointers.h>
: m_responseTaker(responseTaker), m_responseQueue(responseQueue) {
}
- void returnResponse(RequestContextPtr self, ResponsePtr response) const {
+ void returnResponse(const RequestContext &self UNUSED, const Response &response) const {
ResponseTakerPtr taker = m_responseTaker.lock();
if (taker)
- response->execute(response, taker, self);
+ response.execute(response, *taker, *this);
}
BinaryQueuePtr responseQueue(void) const {
#include <attributes/attributes.h>
#include <exceptions/NotImplementedException.h>
-#include <request/RequestContext.h>
#include "RequestTaker.h"
namespace Cynara {
-void RequestTaker::execute(RequestContextPtr context UNUSED, AdminCheckRequestPtr request UNUSED) {
+void RequestTaker::execute(const RequestContext &context UNUSED,
+ const AdminCheckRequest &request UNUSED) {
throw NotImplementedException();
}
-void RequestTaker::execute(RequestContextPtr context UNUSED, AgentActionRequestPtr request UNUSED) {
+void RequestTaker::execute(const RequestContext &context UNUSED,
+ const AgentActionRequest &request UNUSED) {
throw NotImplementedException();
}
-void RequestTaker::execute(RequestContextPtr context UNUSED,
- AgentRegisterRequestPtr request UNUSED) {
+void RequestTaker::execute(const RequestContext &context UNUSED,
+ const AgentRegisterRequest &request UNUSED) {
throw NotImplementedException();
}
-void RequestTaker::execute(RequestContextPtr context UNUSED, CancelRequestPtr request UNUSED) {
+void RequestTaker::execute(const RequestContext &context UNUSED,
+ const CancelRequest &request UNUSED) {
throw NotImplementedException();
}
-void RequestTaker::execute(RequestContextPtr context UNUSED, CheckRequestPtr request UNUSED) {
+void RequestTaker::execute(const RequestContext &context UNUSED,
+ const CheckRequest &request UNUSED) {
throw NotImplementedException();
}
-void RequestTaker::execute(RequestContextPtr context UNUSED, EraseRequestPtr request UNUSED) {
+void RequestTaker::execute(const RequestContext &context UNUSED,
+ const EraseRequest &request UNUSED) {
throw NotImplementedException();
}
-void RequestTaker::execute(RequestContextPtr context UNUSED,
- DescriptionListRequestPtr request UNUSED) {
+void RequestTaker::execute(const RequestContext &context UNUSED,
+ const DescriptionListRequest &request UNUSED) {
throw NotImplementedException();
}
-void RequestTaker::execute(RequestContextPtr context UNUSED,
- InsertOrUpdateBucketRequestPtr request UNUSED) {
+void RequestTaker::execute(const RequestContext &context UNUSED,
+ const InsertOrUpdateBucketRequest &request UNUSED) {
throw NotImplementedException();
}
-void RequestTaker::execute(RequestContextPtr context UNUSED, ListRequestPtr request UNUSED) {
+void RequestTaker::execute(const RequestContext &context UNUSED,
+ const ListRequest &request UNUSED) {
throw NotImplementedException();
}
-void RequestTaker::execute(RequestContextPtr context UNUSED,
- RemoveBucketRequestPtr request UNUSED) {
+void RequestTaker::execute(const RequestContext &context UNUSED,
+ const RemoveBucketRequest &request UNUSED) {
throw NotImplementedException();
}
-void RequestTaker::execute(RequestContextPtr context UNUSED, SetPoliciesRequestPtr request UNUSED) {
+void RequestTaker::execute(const RequestContext &context UNUSED,
+ const SetPoliciesRequest &request UNUSED) {
throw NotImplementedException();
}
-void RequestTaker::execute(RequestContextPtr context UNUSED, SignalRequestPtr request UNUSED) {
+void RequestTaker::execute(const RequestContext &context UNUSED,
+ const SignalRequest &request UNUSED) {
throw NotImplementedException();
}
-void RequestTaker::execute(RequestContextPtr context UNUSED, SimpleCheckRequestPtr request UNUSED) {
+void RequestTaker::execute(const RequestContext &context UNUSED,
+ const SimpleCheckRequest &request UNUSED) {
throw NotImplementedException();
}
-void RequestTaker::contextClosed(RequestContextPtr context UNUSED) {
+void RequestTaker::contextClosed(const RequestContext &context UNUSED) {
throw NotImplementedException();
}
RequestTaker() = default;
virtual ~RequestTaker() {};
- virtual void execute(RequestContextPtr context, AdminCheckRequestPtr request);
- virtual void execute(RequestContextPtr context, AgentActionRequestPtr request);
- virtual void execute(RequestContextPtr context, AgentRegisterRequestPtr request);
- virtual void execute(RequestContextPtr context, CancelRequestPtr request);
- virtual void execute(RequestContextPtr context, CheckRequestPtr request);
- virtual void execute(RequestContextPtr context, DescriptionListRequestPtr request);
- virtual void execute(RequestContextPtr context, EraseRequestPtr request);
- virtual void execute(RequestContextPtr context, InsertOrUpdateBucketRequestPtr request);
- virtual void execute(RequestContextPtr context, ListRequestPtr request);
- virtual void execute(RequestContextPtr context, RemoveBucketRequestPtr request);
- virtual void execute(RequestContextPtr context, SetPoliciesRequestPtr request);
- virtual void execute(RequestContextPtr context, SignalRequestPtr request);
- virtual void execute(RequestContextPtr context, SimpleCheckRequestPtr request);
-
- virtual void contextClosed(RequestContextPtr context);
+ virtual void execute(const RequestContext &context, const AdminCheckRequest &request);
+ virtual void execute(const RequestContext &context, const AgentActionRequest &request);
+ virtual void execute(const RequestContext &context, const AgentRegisterRequest &request);
+ virtual void execute(const RequestContext &context, const CancelRequest &request);
+ virtual void execute(const RequestContext &context, const CheckRequest &request);
+ virtual void execute(const RequestContext &context, const DescriptionListRequest &request);
+ virtual void execute(const RequestContext &context, const EraseRequest &request);
+ virtual void execute(const RequestContext &context, const InsertOrUpdateBucketRequest &request);
+ virtual void execute(const RequestContext &context, const ListRequest &request);
+ virtual void execute(const RequestContext &context, const RemoveBucketRequest &request);
+ virtual void execute(const RequestContext &context, const SetPoliciesRequest &request);
+ virtual void execute(const RequestContext &context, const SignalRequest &request);
+ virtual void execute(const RequestContext &context, const SimpleCheckRequest &request);
+
+ virtual void contextClosed(const RequestContext &context);
};
} // namespace Cynara
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* @brief This file implements request class for modifying policies
*/
-#include <memory>
+#include <attributes/attributes.h>
+#include <request/RequestTaker.h>
#include "SetPoliciesRequest.h"
namespace Cynara {
-void SetPoliciesRequest::execute(RequestPtr self, RequestTakerPtr taker,
- RequestContextPtr context) const {
- taker->execute(context, std::dynamic_pointer_cast<SetPoliciesRequest>(self));
+void SetPoliciesRequest::execute(const Request &self UNUSED, RequestTaker &taker,
+ const RequestContext &context) const {
+ taker.execute(context, *this);
}
} // namespace Cynara
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
#include <request/pointers.h>
#include <request/Request.h>
-#include <request/RequestTaker.h>
namespace Cynara {
return m_removePolicies;
}
- virtual void execute(RequestPtr self, RequestTakerPtr taker, RequestContextPtr context) const;
+ virtual void execute(const Request &self, RequestTaker &taker,
+ const RequestContext &context) const;
};
} // namespace Cynara
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* @brief This file implements signal request class
*/
-#include <memory>
+#include <attributes/attributes.h>
+#include <request/RequestTaker.h>
#include "SignalRequest.h"
namespace Cynara {
-void SignalRequest::execute(RequestPtr self, RequestTakerPtr taker,
- RequestContextPtr context) const {
- taker->execute(context, std::dynamic_pointer_cast<SignalRequest>(self));
+void SignalRequest::execute(const Request &self UNUSED, RequestTaker &taker,
+ const RequestContext &context) const {
+ taker.execute(context, *this);
}
} // namespace Cynara
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
virtual ~SignalRequest() {};
- virtual void execute(RequestPtr self, RequestTakerPtr taker, RequestContextPtr context) const;
+ virtual void execute(const Request &self, RequestTaker &taker,
+ const RequestContext &context) const;
- uint32_t signalNumber(void) {
+ uint32_t signalNumber(void) const {
return m_sigInfo.ssi_signo;
}
* @brief This file implements simple check request class
*/
-#include <memory>
+#include <attributes/attributes.h>
+#include <request/RequestTaker.h>
#include "SimpleCheckRequest.h"
namespace Cynara {
-void SimpleCheckRequest::execute(RequestPtr self, RequestTakerPtr taker,
- RequestContextPtr context) const {
- taker->execute(context, std::dynamic_pointer_cast<SimpleCheckRequest>(self));
+void SimpleCheckRequest::execute(const Request &self UNUSED, RequestTaker &taker,
+ const RequestContext &context) const {
+ taker.execute(context, *this);
}
} // namespace Cynara
#include <request/pointers.h>
#include <request/Request.h>
-#include <request/RequestTaker.h>
-
namespace Cynara {
class SimpleCheckRequest : public Request {
return m_key;
}
- virtual void execute(RequestPtr self, RequestTakerPtr taker, RequestContextPtr context) const;
+ virtual void execute(const Request &self, RequestTaker &taker,
+ const RequestContext &context) const;
};
} // namespace Cynara
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* @brief This file implements admin check response class
*/
-#include <memory>
+#include <attributes/attributes.h>
+#include <response/ResponseTaker.h>
#include "AdminCheckResponse.h"
namespace Cynara {
-void AdminCheckResponse::execute(ResponsePtr self, ResponseTakerPtr taker,
- RequestContextPtr context) const {
- taker->execute(context, std::dynamic_pointer_cast<AdminCheckResponse>(self));
+void AdminCheckResponse::execute(const Response &self UNUSED, ResponseTaker &taker,
+ const RequestContext &context) const {
+ taker.execute(context, *this);
}
} // namespace Cynara
virtual ~AdminCheckResponse() {}
- virtual void execute(ResponsePtr self, ResponseTakerPtr taker,
- RequestContextPtr context) const;
+ virtual void execute(const Response &self, ResponseTaker &taker,
+ const RequestContext &context) const;
const PolicyResult &result(void) const {
return m_result;
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* @brief This file implements common class for sending a request to agent
*/
-#include <memory>
-
+#include <attributes/attributes.h>
#include <response/ResponseTaker.h>
#include "AgentActionResponse.h"
namespace Cynara {
-void AgentActionResponse::execute(ResponsePtr self, ResponseTakerPtr taker,
- RequestContextPtr context) const {
- taker->execute(context, std::dynamic_pointer_cast<AgentActionResponse>(self));
+void AgentActionResponse::execute(const Response &self UNUSED, ResponseTaker &taker,
+ const RequestContext &context) const {
+ taker.execute(context, *this);
}
} // namespace Cynara
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
~AgentActionResponse() {}
- virtual void execute(ResponsePtr self, ResponseTakerPtr taker, RequestContextPtr context) const;
+ virtual void execute(const Response &self, ResponseTaker &taker,
+ const RequestContext &context) const;
const RawBuffer &data(void) const {
return m_data;
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* @brief This file implements class for responding to agent register request
*/
-#include <memory>
-
-#include <request/RequestTaker.h>
+#include <attributes/attributes.h>
+#include <response/ResponseTaker.h>
#include "AgentRegisterResponse.h"
namespace Cynara {
-void AgentRegisterResponse::execute(ResponsePtr self, ResponseTakerPtr taker,
- RequestContextPtr context) const {
- taker->execute(context, std::dynamic_pointer_cast<AgentRegisterResponse>(self));
+void AgentRegisterResponse::execute(const Response &self UNUSED, ResponseTaker &taker,
+ const RequestContext &context) const {
+ taker.execute(context, *this);
}
} // namespace Cynara
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
virtual ~AgentRegisterResponse() {};
- virtual void execute(ResponsePtr self, ResponseTakerPtr taker, RequestContextPtr context) const;
+ virtual void execute(const Response &self, ResponseTaker &taker,
+ const RequestContext &context) const;
};
} // namespace Cynara
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* @brief This file implements cancel response class
*/
-#include <memory>
+#include <attributes/attributes.h>
+#include <response/ResponseTaker.h>
#include "CancelResponse.h"
namespace Cynara {
-void CancelResponse::execute(ResponsePtr self, ResponseTakerPtr taker,
- RequestContextPtr context) const {
- taker->execute(context, std::dynamic_pointer_cast<CancelResponse>(self));
+void CancelResponse::execute(const Response &self UNUSED, ResponseTaker &taker,
+ const RequestContext &context) const {
+ taker.execute(context, *this);
}
} // namespace Cynara
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
virtual ~CancelResponse() {};
- virtual void execute(ResponsePtr self, ResponseTakerPtr taker, RequestContextPtr context) const;
+ virtual void execute(const Response &self, ResponseTaker &taker,
+ const RequestContext &context) const;
};
} // namespace Cynara
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* @brief This file implements check response class
*/
-#include <memory>
+#include <attributes/attributes.h>
+#include <response/ResponseTaker.h>
#include "CheckResponse.h"
namespace Cynara {
-void CheckResponse::execute(ResponsePtr self, ResponseTakerPtr taker,
- RequestContextPtr context) const {
- taker->execute(context, std::dynamic_pointer_cast<CheckResponse>(self));
+void CheckResponse::execute(const Response &self UNUSED, ResponseTaker &taker,
+ const RequestContext &context) const {
+ taker.execute(context, *this);
}
} // namespace Cynara
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
virtual ~CheckResponse() {};
- virtual void execute(ResponsePtr self, ResponseTakerPtr taker,
- RequestContextPtr context) const;
+ virtual void execute(const Response &self, ResponseTaker &taker,
+ const RequestContext &context) const;
};
} // namespace Cynara
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* @brief This file implements class for responding to a request with a code
*/
-#include <memory>
+#include <attributes/attributes.h>
+#include <response/ResponseTaker.h>
#include "CodeResponse.h"
namespace Cynara {
-void CodeResponse::execute(ResponsePtr self, ResponseTakerPtr taker,
- RequestContextPtr context) const {
- taker->execute(context, std::dynamic_pointer_cast<CodeResponse>(self));
+void CodeResponse::execute(const Response &self UNUSED, ResponseTaker &taker,
+ const RequestContext &context) const {
+ taker.execute(context, *this);
}
} // namespace Cynara
virtual ~CodeResponse() {};
- virtual void execute(ResponsePtr self, ResponseTakerPtr taker,
- RequestContextPtr context) const;
+ virtual void execute(const Response &self, ResponseTaker &taker,
+ const RequestContext &context) const;
};
} // namespace Cynara
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* @brief This file implements plugins description list response class
*/
-#include <memory>
-
+#include <attributes/attributes.h>
#include <response/ResponseTaker.h>
#include "DescriptionListResponse.h"
namespace Cynara {
-void DescriptionListResponse::execute(ResponsePtr self, ResponseTakerPtr taker,
- RequestContextPtr context) const {
- taker->execute(context, std::dynamic_pointer_cast<DescriptionListResponse>(self));
+void DescriptionListResponse::execute(const Response &self UNUSED, ResponseTaker &taker,
+ const RequestContext &context) const {
+ taker.execute(context, *this);
}
} // namespace Cynara
virtual ~DescriptionListResponse() {};
- virtual void execute(ResponsePtr self, ResponseTakerPtr taker, RequestContextPtr context) const;
+ virtual void execute(const Response &self, ResponseTaker &taker,
+ const RequestContext &context) const;
bool isDbCorrupted(void) const {
return m_dbCorrupted;
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* @brief This file implements policies list response class
*/
-#include <memory>
+#include <attributes/attributes.h>
+#include <response/ResponseTaker.h>
#include "ListResponse.h"
-#include "ResponseTaker.h"
namespace Cynara {
-void ListResponse::execute(ResponsePtr self, ResponseTakerPtr taker,
- RequestContextPtr context) const {
- taker->execute(context, std::dynamic_pointer_cast<ListResponse>(self));
+void ListResponse::execute(const Response &self UNUSED, ResponseTaker &taker,
+ const RequestContext &context) const {
+ taker.execute(context, *this);
}
} // namespace Cynara
virtual ~ListResponse() {};
- virtual void execute(ResponsePtr self, ResponseTakerPtr taker, RequestContextPtr context) const;
+ virtual void execute(const Response &self, ResponseTaker &taker,
+ const RequestContext &context) const;
bool isBucketValid(void) const {
return m_bucketValid;
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
#define SRC_COMMON_RESPONSE_RESPONSE_H_
#include <response/pointers.h>
-#include <response/ResponseTaker.h>
#include <types/ProtocolFields.h>
namespace Cynara {
};
virtual ~Response() {};
- virtual void execute(ResponsePtr self, ResponseTakerPtr taker,
- RequestContextPtr context) const = 0;
+ virtual void execute(const Response &self, ResponseTaker &taker,
+ const RequestContext &context) const = 0;
ProtocolFrameSequenceNumber sequenceNumber(void) const {
return m_sequenceNumber;
namespace Cynara {
-void ResponseTaker::execute(RequestContextPtr context UNUSED,
- AdminCheckResponsePtr response UNUSED) {
+void ResponseTaker::execute(const RequestContext &context UNUSED,
+ const AdminCheckResponse &response UNUSED) {
throw NotImplementedException();
}
-void ResponseTaker::execute(RequestContextPtr context UNUSED,
- AgentActionResponsePtr response UNUSED) {
+void ResponseTaker::execute(const RequestContext &context UNUSED,
+ const AgentActionResponse &response UNUSED) {
throw NotImplementedException();
}
-void ResponseTaker::execute(RequestContextPtr context UNUSED,
- AgentRegisterResponsePtr response UNUSED) {
+void ResponseTaker::execute(const RequestContext &context UNUSED,
+ const AgentRegisterResponse &response UNUSED) {
throw NotImplementedException();
}
-void ResponseTaker::execute(RequestContextPtr context UNUSED, CancelResponsePtr response UNUSED) {
+void ResponseTaker::execute(const RequestContext &context UNUSED,
+ const CancelResponse &response UNUSED) {
throw NotImplementedException();
}
-void ResponseTaker::execute(RequestContextPtr context UNUSED, CheckResponsePtr response UNUSED) {
+void ResponseTaker::execute(const RequestContext &context UNUSED,
+ const CheckResponse &response UNUSED) {
throw NotImplementedException();
}
-void ResponseTaker::execute(RequestContextPtr context UNUSED, CodeResponsePtr response UNUSED) {
+void ResponseTaker::execute(const RequestContext &context UNUSED,
+ const CodeResponse &response UNUSED) {
throw NotImplementedException();
}
-void ResponseTaker::execute(RequestContextPtr context UNUSED,
- DescriptionListResponsePtr response UNUSED) {
+void ResponseTaker::execute(const RequestContext &context UNUSED,
+ const DescriptionListResponse &response UNUSED) {
throw NotImplementedException();
}
-void ResponseTaker::execute(RequestContextPtr context UNUSED, ListResponsePtr response UNUSED) {
+void ResponseTaker::execute(const RequestContext &context UNUSED,
+ const ListResponse &response UNUSED) {
throw NotImplementedException();
}
-void ResponseTaker::execute(RequestContextPtr context UNUSED,
- SimpleCheckResponsePtr response UNUSED) {
+void ResponseTaker::execute(const RequestContext &context UNUSED,
+ const SimpleCheckResponse &response UNUSED) {
throw NotImplementedException();
}
ResponseTaker() = default;
virtual ~ResponseTaker() {};
- virtual void execute(RequestContextPtr context, AdminCheckResponsePtr response);
- virtual void execute(RequestContextPtr context, AgentActionResponsePtr response);
- virtual void execute(RequestContextPtr context, AgentRegisterResponsePtr response);
- virtual void execute(RequestContextPtr context, CancelResponsePtr response);
- virtual void execute(RequestContextPtr context, CheckResponsePtr response);
- virtual void execute(RequestContextPtr context, CodeResponsePtr response);
- virtual void execute(RequestContextPtr context, DescriptionListResponsePtr response);
- virtual void execute(RequestContextPtr context, ListResponsePtr response);
- virtual void execute(RequestContextPtr context, SimpleCheckResponsePtr response);
+ virtual void execute(const RequestContext &context, const AdminCheckResponse &response);
+ virtual void execute(const RequestContext &context, const AgentActionResponse &response);
+ virtual void execute(const RequestContext &context, const AgentRegisterResponse &response);
+ virtual void execute(const RequestContext &context, const CancelResponse &response);
+ virtual void execute(const RequestContext &context, const CheckResponse &response);
+ virtual void execute(const RequestContext &context, const CodeResponse &response);
+ virtual void execute(const RequestContext &context, const DescriptionListResponse &response);
+ virtual void execute(const RequestContext &context, const ListResponse &response);
+ virtual void execute(const RequestContext &context, const SimpleCheckResponse &response);
};
} // namespace Cynara
* @brief This file implements simple check response class
*/
-#include <memory>
+#include <attributes/attributes.h>
+#include <response/ResponseTaker.h>
#include "SimpleCheckResponse.h"
namespace Cynara {
-void SimpleCheckResponse::execute(ResponsePtr self, ResponseTakerPtr taker,
- RequestContextPtr context) const {
- taker->execute(context, std::dynamic_pointer_cast<SimpleCheckResponse>(self));
+void SimpleCheckResponse::execute(const Response &self UNUSED, ResponseTaker &taker,
+ const RequestContext &context) const {
+ taker.execute(context, *this);
}
} // namespace Cynara
}
virtual ~SimpleCheckResponse() {}
- virtual void execute(ResponsePtr self, ResponseTakerPtr taker,
- RequestContextPtr context) const;
+ virtual void execute(const Response &self, ResponseTaker &taker,
+ const RequestContext &context) const;
private:
const PolicyResult m_resultRef;
const int32_t m_retValue;
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
ResponsePtr SocketClient::askCynaraServer(RequestPtr request) {
//pass request to protocol
- RequestContextPtr context = std::make_shared<RequestContext>(ResponseTakerPtr(), m_writeQueue);
- request->execute(request, m_protocol, context);
+ RequestContext context(ResponseTakerPtr(), m_writeQueue);
+ request->execute(*request, *m_protocol, context);
//send request to cynara
if (m_socket.sendToServer(*m_writeQueue) == Socket::SendStatus::CONNECTION_LOST) {
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
void AgentTalker::sendMessage(const AgentResponseType type, const RawBuffer &data) {
ResponseTakerPtr responseTaker = std::make_shared<ProtocolAgent>();
- auto context = std::make_shared<RequestContext>(responseTaker, m_linkId);
- context->returnResponse(context,
- std::make_shared<AgentActionResponse>(type, data, m_checkId));
+ RequestContext context(responseTaker, m_linkId);
+ context.returnResponse(context, AgentActionResponse(type, data, m_checkId));
}
void AgentTalker::send(const PluginData &agentData) {
Logic::~Logic() {
}
-void Logic::execute(RequestContextPtr context UNUSED, SignalRequestPtr request) {
- LOGD("Processing signal: [%d]", request->signalNumber());
+void Logic::execute(const RequestContext &context UNUSED, const SignalRequest &request) {
+ LOGD("Processing signal: [%d]", request.signalNumber());
- switch (request->signalNumber()) {
+ switch (request.signalNumber()) {
case SIGTERM:
LOGI("SIGTERM received!");
m_socketManager->mainLoopStop();
}
}
-void Logic::execute(RequestContextPtr context, AdminCheckRequestPtr request) {
+void Logic::execute(const RequestContext &context, const AdminCheckRequest &request) {
PolicyResult result;
bool bucketValid = true;
bucketValid = false;
} else {
try {
- result = m_storage->checkPolicy(request->key(), request->startBucket(),
- request->recursive());
+ result = m_storage->checkPolicy(request.key(), request.startBucket(),
+ request.recursive());
} catch (const BucketNotExistsException &ex) {
bucketValid = false;
}
}
- context->returnResponse(context, std::make_shared<AdminCheckResponse>(result, bucketValid,
- m_dbCorrupted, request->sequenceNumber()));
+ context.returnResponse(context, AdminCheckResponse(result, bucketValid, m_dbCorrupted,
+ request.sequenceNumber()));
}
-void Logic::execute(RequestContextPtr context, AgentActionRequestPtr request) {
- AgentTalkerPtr talkerPtr = m_agentManager->getTalker(context->responseQueue(),
- request->sequenceNumber());
+void Logic::execute(const RequestContext &context, const AgentActionRequest &request) {
+ AgentTalkerPtr talkerPtr = m_agentManager->getTalker(context.responseQueue(),
+ request.sequenceNumber());
if (!talkerPtr) {
LOGD("Received response from agent with invalid request id: [%" PRIu16 "]",
- request->sequenceNumber());
+ request.sequenceNumber());
return;
}
}
if (!checkContextPtr->cancelled()) {
- PluginData data(request->data().begin(), request->data().end());
- if (request->type() == CYNARA_MSG_TYPE_CANCEL) {
+ PluginData data(request.data().begin(), request.data().end());
+ if (request.type() == CYNARA_MSG_TYPE_CANCEL) {
// Nothing to do for now
- } else if (request->type() == CYNARA_MSG_TYPE_ACTION) {
+ } else if (request.type() == CYNARA_MSG_TYPE_ACTION) {
update(checkContextPtr->m_key, checkContextPtr->m_checkId, data,
checkContextPtr->m_requestContext, checkContextPtr->m_plugin);
} else {
LOGE("Invalid response type [%d] in response from agent <%s>",
- static_cast<int>(request->type()), talkerPtr->agentType().c_str());
+ static_cast<int>(request.type()), talkerPtr->agentType().c_str());
// TODO: disconnect agent
}
}
m_checkRequestManager.removeRequest(checkContextPtr);
}
-void Logic::execute(RequestContextPtr context, AgentRegisterRequestPtr request) {
- auto result = m_agentManager->registerAgent(request->agentType(), context->responseQueue());
- context->returnResponse(context, std::make_shared<AgentRegisterResponse>(
- result, request->sequenceNumber()));
+void Logic::execute(const RequestContext &context, const AgentRegisterRequest &request) {
+ auto result = m_agentManager->registerAgent(request.agentType(), context.responseQueue());
+ context.returnResponse(context, AgentRegisterResponse(result, request.sequenceNumber()));
}
-void Logic::execute(RequestContextPtr context, CancelRequestPtr request) {
- CheckContextPtr checkContextPtr = m_checkRequestManager.getContext(context->responseQueue(),
- request->sequenceNumber());
+void Logic::execute(const RequestContext &context, const CancelRequest &request) {
+ CheckContextPtr checkContextPtr = m_checkRequestManager.getContext(context.responseQueue(),
+ request.sequenceNumber());
if (!checkContextPtr) {
LOGD("Cancel request id: [%" PRIu16 "] with no matching request in progress.",
- request->sequenceNumber());
+ request.sequenceNumber());
return;
}
checkContextPtr->cancel();
checkContextPtr->m_agentTalker->cancel();
- LOGD("Returning response for cancel request id: [%" PRIu16 "].", request->sequenceNumber());
- context->returnResponse(context, std::make_shared<CancelResponse>(request->sequenceNumber()));
+ LOGD("Returning response for cancel request id: [%" PRIu16 "].", request.sequenceNumber());
+ context.returnResponse(context, CancelResponse(request.sequenceNumber()));
}
-void Logic::execute(RequestContextPtr context, CheckRequestPtr request) {
+void Logic::execute(const RequestContext &context, const CheckRequest &request) {
PolicyResult result(PredefinedPolicyType::DENY);
- if (check(context, request->key(), request->sequenceNumber(), result)) {
- m_auditLog.log(request->key(), result);
- context->returnResponse(context, std::make_shared<CheckResponse>(result,
- request->sequenceNumber()));
+ if (check(context, request.key(), request.sequenceNumber(), result)) {
+ m_auditLog.log(request.key(), result);
+ context.returnResponse(context, CheckResponse(result, request.sequenceNumber()));
}
}
-bool Logic::check(const RequestContextPtr &context, const PolicyKey &key,
+bool Logic::check(const RequestContext &context, const PolicyKey &key,
ProtocolFrameSequenceNumber checkId, PolicyResult &result) {
- if (m_checkRequestManager.getContext(context->responseQueue(), checkId)) {
+ if (m_checkRequestManager.getContext(context.responseQueue(), checkId)) {
LOGE("Check request for checkId: [%" PRIu16 "] is already processing", checkId);
return false;
}
return pluginCheck(context, key, checkId, result);
}
-bool Logic::pluginCheck(const RequestContextPtr &context, const PolicyKey &key,
+bool Logic::pluginCheck(const RequestContext &context, const PolicyKey &key,
ProtocolFrameSequenceNumber checkId, PolicyResult &result) {
LOGD("Trying to check policy: <%s> in plugin.", key.toString().c_str());
}
bool Logic::update(const PolicyKey &key, ProtocolFrameSequenceNumber checkId,
- const PluginData &agentData, const RequestContextPtr &context,
+ const PluginData &agentData, const RequestContext &context,
const ServicePluginInterfacePtr &plugin) {
LOGD("Check update: <%s>:[%" PRIu16 "]", key.toString().c_str(), checkId);
throw PluginErrorException(key);
}
- if (answerReady && context->responseQueue()) {
+ if (answerReady && context.responseQueue()) {
m_auditLog.log(key, result);
- context->returnResponse(context, std::make_shared<CheckResponse>(result, checkId));
+ context.returnResponse(context, CheckResponse(result, checkId));
return true;
}
return false;
}
-void Logic::execute(RequestContextPtr context, DescriptionListRequestPtr request) {
+void Logic::execute(const RequestContext &context, const DescriptionListRequest &request) {
auto descriptions = m_pluginManager->getPolicyDescriptions();
descriptions.insert(descriptions.begin(), predefinedPolicyDescr.begin(),
predefinedPolicyDescr.end());
- context->returnResponse(context, std::make_shared<DescriptionListResponse>(descriptions,
- m_dbCorrupted, request->sequenceNumber()));
+ context.returnResponse(context, DescriptionListResponse(descriptions, m_dbCorrupted,
+ request.sequenceNumber()));
}
-void Logic::execute(RequestContextPtr context, EraseRequestPtr request) {
+void Logic::execute(const RequestContext &context, const EraseRequest &request) {
auto code = CodeResponse::Code::OK;
if (m_dbCorrupted) {
code = CodeResponse::Code::DB_CORRUPTED;
} else {
try {
- m_storage->erasePolicies(request->startBucket(), request->recursive(), request->filter());
+ m_storage->erasePolicies(request.startBucket(), request.recursive(), request.filter());
onPoliciesChanged();
} catch (const DatabaseException &ex) {
code = CodeResponse::Code::FAILED;
}
}
- context->returnResponse(context, std::make_shared<CodeResponse>(code,
- request->sequenceNumber()));
+ context.returnResponse(context, CodeResponse(code, request.sequenceNumber()));
}
-void Logic::execute(RequestContextPtr context, InsertOrUpdateBucketRequestPtr request) {
+void Logic::execute(const RequestContext &context, const InsertOrUpdateBucketRequest &request) {
auto code = CodeResponse::Code::OK;
if (m_dbCorrupted) {
code = CodeResponse::Code::DB_CORRUPTED;
} else {
try {
- checkSinglePolicyType(request->result().policyType(), true, true);
- m_storage->addOrUpdateBucket(request->bucketId(), request->result());
+ checkSinglePolicyType(request.result().policyType(), true, true);
+ m_storage->addOrUpdateBucket(request.bucketId(), request.result());
onPoliciesChanged();
} catch (const DatabaseException &ex) {
code = CodeResponse::Code::FAILED;
}
}
- context->returnResponse(context, std::make_shared<CodeResponse>(code,
- request->sequenceNumber()));
+ context.returnResponse(context, CodeResponse(code, request.sequenceNumber()));
}
-void Logic::execute(RequestContextPtr context, ListRequestPtr request) {
+void Logic::execute(const RequestContext &context, const ListRequest &request) {
bool bucketValid = true;
std::vector<Policy> policies;
bucketValid = false;
} else {
try {
- policies = m_storage->listPolicies(request->bucket(), request->filter());
+ policies = m_storage->listPolicies(request.bucket(), request.filter());
} catch (const BucketNotExistsException &ex) {
bucketValid = false;
}
}
- context->returnResponse(context, std::make_shared<ListResponse>(policies, bucketValid,
- m_dbCorrupted, request->sequenceNumber()));
+ context.returnResponse(context, ListResponse(policies, bucketValid, m_dbCorrupted,
+ request.sequenceNumber()));
}
-void Logic::execute(RequestContextPtr context, RemoveBucketRequestPtr request) {
+void Logic::execute(const RequestContext &context, const RemoveBucketRequest &request) {
auto code = CodeResponse::Code::OK;
if (m_dbCorrupted) {
code = CodeResponse::Code::DB_CORRUPTED;
} else {
try {
- m_storage->deleteBucket(request->bucketId());
+ m_storage->deleteBucket(request.bucketId());
onPoliciesChanged();
} catch (const DatabaseException &ex) {
code = CodeResponse::Code::FAILED;
code = CodeResponse::Code::NOT_ALLOWED;
}
}
-
- context->returnResponse(context, std::make_shared<CodeResponse>(code,
- request->sequenceNumber()));
+ context.returnResponse(context, CodeResponse(code, request.sequenceNumber()));
}
-void Logic::execute(RequestContextPtr context, SetPoliciesRequestPtr request) {
+void Logic::execute(const RequestContext &context, const SetPoliciesRequest &request) {
auto code = CodeResponse::Code::OK;
if (m_dbCorrupted) {
code = CodeResponse::Code::DB_CORRUPTED;
} else {
try {
- checkPoliciesTypes(request->policiesToBeInsertedOrUpdated(), true, false);
- m_storage->insertPolicies(request->policiesToBeInsertedOrUpdated());
- m_storage->deletePolicies(request->policiesToBeRemoved());
+ checkPoliciesTypes(request.policiesToBeInsertedOrUpdated(), true, false);
+ m_storage->insertPolicies(request.policiesToBeInsertedOrUpdated());
+ m_storage->deletePolicies(request.policiesToBeRemoved());
onPoliciesChanged();
} catch (const DatabaseException &ex) {
code = CodeResponse::Code::FAILED;
}
}
- context->returnResponse(context, std::make_shared<CodeResponse>(code,
- request->sequenceNumber()));
+ context.returnResponse(context, CodeResponse(code, request.sequenceNumber()));
}
-void Logic::execute(RequestContextPtr context, SimpleCheckRequestPtr request) {
+void Logic::execute(const RequestContext &context, const SimpleCheckRequest &request) {
int retValue = CYNARA_API_SUCCESS;
PolicyResult result;
- PolicyKey key = request->key();
+ PolicyKey key = request.key();
result = m_storage->checkPolicy(key);
switch (result.policyType()) {
}
}
}
- m_auditLog.log(request->key(), result);
- context->returnResponse(context, std::make_shared<SimpleCheckResponse>(retValue, result,
- request->sequenceNumber()));
+ m_auditLog.log(request.key(), result);
+ context.returnResponse(context, SimpleCheckResponse(retValue, result,
+ request.sequenceNumber()));
}
void Logic::checkPoliciesTypes(const std::map<PolicyBucketId, std::vector<Policy>> &policies,
m_pluginManager->checkPolicyType(policyType);
}
-void Logic::contextClosed(RequestContextPtr context) {
+void Logic::contextClosed(const RequestContext &context) {
LOGD("context closed");
- LinkId linkId = context->responseQueue();
+ LinkId linkId = context.responseQueue();
m_agentManager->cleanupAgent(linkId, [&](const AgentTalkerPtr &talker) -> void {
handleAgentTalkerDisconnection(talker); });
return;
}
- if (!checkContextPtr->cancelled() && checkContextPtr->m_requestContext->responseQueue()) {
+ RequestContext &context = checkContextPtr->m_requestContext;
+ if (!checkContextPtr->cancelled() && context.responseQueue()) {
PolicyResult result(PredefinedPolicyType::DENY);
m_auditLog.log(checkContextPtr->m_key, result);
- checkContextPtr->m_requestContext->returnResponse(checkContextPtr->m_requestContext,
- std::make_shared<CheckResponse>(result, checkContextPtr->m_checkId));
+ context.returnResponse(checkContextPtr->m_requestContext,
+ CheckResponse(result, checkContextPtr->m_checkId));
}
m_checkRequestManager.removeRequest(checkContextPtr);
m_socketManager.reset();
}
- virtual void execute(RequestContextPtr context, AdminCheckRequestPtr request);
- virtual void execute(RequestContextPtr context, AgentActionRequestPtr request);
- virtual void execute(RequestContextPtr context, AgentRegisterRequestPtr request);
- virtual void execute(RequestContextPtr context, CancelRequestPtr request);
- virtual void execute(RequestContextPtr context, CheckRequestPtr request);
- virtual void execute(RequestContextPtr context, DescriptionListRequestPtr request);
- virtual void execute(RequestContextPtr context, EraseRequestPtr request);
- virtual void execute(RequestContextPtr context, InsertOrUpdateBucketRequestPtr request);
- virtual void execute(RequestContextPtr context, ListRequestPtr request);
- virtual void execute(RequestContextPtr context, RemoveBucketRequestPtr request);
- virtual void execute(RequestContextPtr context, SetPoliciesRequestPtr request);
- virtual void execute(RequestContextPtr context, SignalRequestPtr request);
- virtual void execute(RequestContextPtr context, SimpleCheckRequestPtr request);
-
- virtual void contextClosed(RequestContextPtr context);
+ virtual void execute(const RequestContext &context, const AdminCheckRequest &request);
+ virtual void execute(const RequestContext &context, const AgentActionRequest &request);
+ virtual void execute(const RequestContext &context, const AgentRegisterRequest &request);
+ virtual void execute(const RequestContext &context, const CancelRequest &request);
+ virtual void execute(const RequestContext &context, const CheckRequest &request);
+ virtual void execute(const RequestContext &context, const DescriptionListRequest &request);
+ virtual void execute(const RequestContext &context, const EraseRequest &request);
+ virtual void execute(const RequestContext &context, const InsertOrUpdateBucketRequest &request);
+ virtual void execute(const RequestContext &context, const ListRequest &request);
+ virtual void execute(const RequestContext &context, const RemoveBucketRequest &request);
+ virtual void execute(const RequestContext &context, const SetPoliciesRequest &request);
+ virtual void execute(const RequestContext &context, const SignalRequest &request);
+ virtual void execute(const RequestContext &context, const SimpleCheckRequest &request);
+
+ virtual void contextClosed(const RequestContext &context);
virtual void loadDb(void);
private:
AuditLog m_auditLog;
bool m_dbCorrupted;
- bool check(const RequestContextPtr &context, const PolicyKey &key,
+ bool check(const RequestContext &context, const PolicyKey &key,
ProtocolFrameSequenceNumber checkId, PolicyResult &result);
- bool pluginCheck(const RequestContextPtr &context, const PolicyKey &key,
+ bool pluginCheck(const RequestContext &context, const PolicyKey &key,
ProtocolFrameSequenceNumber checkId, PolicyResult &result);
bool update(const PolicyKey &key, ProtocolFrameSequenceNumber checkId,
- const PluginData &agentData, const RequestContextPtr &request,
+ const PluginData &agentData, const RequestContext &request,
const ServicePluginInterfacePtr &plugin);
void checkPoliciesTypes(const std::map<PolicyBucketId, std::vector<Policy>> &policies,
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
#include <containers/BinaryQueue.h>
#include <request/pointers.h>
+#include <request/RequestContext.h>
#include <types/PolicyKey.h>
#include <types/ProtocolFields.h>
class CheckContext {
public:
- CheckContext(const PolicyKey &key, RequestContextPtr requestContext,
+ CheckContext(const PolicyKey &key, const RequestContext &requestContext,
ProtocolFrameSequenceNumber checkId, ServicePluginInterfacePtr plugin,
const AgentTalkerPtr &agentTalkerPtr) : m_agentTalker(agentTalkerPtr),
m_checkId(checkId), m_key(key), m_plugin(plugin),
const ProtocolFrameSequenceNumber m_checkId;
const PolicyKey m_key;
ServicePluginInterfacePtr m_plugin;
- RequestContextPtr m_requestContext;
+ RequestContext m_requestContext;
bool m_cancelled;
void cancel(void) {
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
namespace Cynara {
CheckContextPtr CheckRequestManager::createContext(const PolicyKey &key,
- const RequestContextPtr &request,
+ const RequestContext &request,
ProtocolFrameSequenceNumber checkId,
const ServicePluginInterfacePtr &plugin,
const AgentTalkerPtr &agentTalkerPtr) {
CheckContextPtr checkPtr = std::make_shared<CheckContext>(key, request, checkId, plugin,
agentTalkerPtr);
- if (m_checks[request->responseQueue()].insert(std::make_pair(checkId, checkPtr)).second) {
+ if (m_checks[request.responseQueue()].insert(std::make_pair(checkId, checkPtr)).second) {
return checkPtr;
}
}
void CheckRequestManager::removeRequest(const CheckContextPtr &checkContextPtr) {
- auto it = m_checks.find(checkContextPtr->m_requestContext->responseQueue());
+ auto it = m_checks.find(checkContextPtr->m_requestContext.responseQueue());
if (it != m_checks.end()) {
it->second.erase(checkContextPtr->m_checkId);
if (it->second.empty()) {
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
CheckRequestManager() {}
~CheckRequestManager() {}
- CheckContextPtr createContext(const PolicyKey &key, const RequestContextPtr &request,
+ CheckContextPtr createContext(const PolicyKey &key, const RequestContext &request,
ProtocolFrameSequenceNumber checkId,
const ServicePluginInterfacePtr &plugin,
const AgentTalkerPtr &agentTalkerPtr);
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
void SocketManager::closeSocket(int fd) {
LOGD("SocketManger closeSocket fd [%d] start", fd);
Descriptor &desc = m_fds[fd];
- requestTaker()->contextClosed(std::make_shared<RequestContext>(nullptr,
- desc.writeQueue()));
+ requestTaker()->contextClosed(RequestContext(nullptr, desc.writeQueue()));
removeReadSocket(fd);
removeWriteSocket(fd);
desc.clear();
LOGD("request extracted");
//build context
- auto context = std::make_shared<RequestContext>(desc.responseTaker(),
- desc.writeQueue());
+ RequestContext context(desc.responseTaker(), desc.writeQueue());
//pass request to request taker
- req->execute(req, requestTaker(), context);
+ req->execute(*req, *requestTaker(), context);
}
} catch (const Exception &ex) {
LOGE("Error handling request <%s>. Closing socket", ex.what());
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
template <typename R>
void testRequest(std::shared_ptr<R> request, Cynara::ProtocolPtr protocol) {
auto queue = std::make_shared<Cynara::BinaryQueue>();
- auto context = std::make_shared<Cynara::RequestContext>(Cynara::ResponseTakerPtr(), queue);
+ Cynara::RequestContext context(Cynara::ResponseTakerPtr(), queue);
- request->execute(request, protocol, context);
+ request->execute(*request, *protocol, context);
auto extractedRequest = protocol->extractRequestFromBuffer(queue);
ASSERT_TRUE(bool(extractedRequest));
void binaryTestRequest(Cynara::RequestPtr request, Cynara::ProtocolPtr protocol) {
auto queue = std::make_shared<Cynara::BinaryQueue>();
- auto context = std::make_shared<Cynara::RequestContext>(Cynara::ResponseTakerPtr(), queue);
+ Cynara::RequestContext context(Cynara::ResponseTakerPtr(), queue);
- request->execute(request, protocol, context);
+ request->execute(*request, *protocol, context);
Cynara::RawBuffer data(queue->size());
queue->flatten(data.data(), queue->size());
ASSERT_TRUE(bool(extractedRequest));
ASSERT_EQ(queue->size(), 0);
- extractedRequest->execute(extractedRequest, protocol, context);
+ extractedRequest->execute(*extractedRequest, *protocol, context);
Cynara::RawBuffer data2(queue->size());
queue->flatten(data2.data(), queue->size());
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
template <typename R>
void testResponse(std::shared_ptr<R> response, Cynara::ProtocolPtr protocol) {
auto queue = std::make_shared<Cynara::BinaryQueue>();
- auto context = std::make_shared<Cynara::RequestContext>(Cynara::ResponseTakerPtr(), queue);
+ auto context = Cynara::RequestContext(Cynara::ResponseTakerPtr(), queue);
- response->execute(response, protocol, context);
+ response->execute(*response, *protocol, context);
auto extractedResponse = protocol->extractResponseFromBuffer(queue);
ASSERT_TRUE(bool(extractedResponse));
void binaryTestResponse(Cynara::ResponsePtr response, Cynara::ProtocolPtr protocol) {
auto queue = std::make_shared<Cynara::BinaryQueue>();
- auto context = std::make_shared<Cynara::RequestContext>(Cynara::ResponseTakerPtr(), queue);
+ auto context = Cynara::RequestContext(Cynara::ResponseTakerPtr(), queue);
- response->execute(response, protocol, context);
+ response->execute(*response, *protocol, context);
Cynara::RawBuffer data(queue->size());
queue->flatten(data.data(), queue->size());
ASSERT_TRUE(bool(extractedResponse));
ASSERT_EQ(queue->size(), 0);
- extractedResponse->execute(extractedResponse, protocol, context);
+ extractedResponse->execute(*extractedResponse, *protocol, context);
Cynara::RawBuffer data2(queue->size());
queue->flatten(data2.data(), queue->size());