Removal of unnecesary shared_ptr in requests/responses 16/36516/5
authorZofia Abramowska <z.abramowska@samsung.com>
Thu, 5 Mar 2015 14:06:40 +0000 (15:06 +0100)
committerZofia Abramowska <z.abramowska@samsung.com>
Mon, 30 Mar 2015 15:53:36 +0000 (17:53 +0200)
Change arguments from shared_ptr to references for Request*,
Response* class methods where no shared ownership takes place.

Change-Id: I46d04d24d95df1f5b1844284e5a218d2946935fb

72 files changed:
src/agent/logic/Logic.cpp
src/agent/socket/AgentSocketClient.cpp
src/client-async/sockets/SocketClientAsync.cpp
src/common/protocol/ProtocolAdmin.cpp
src/common/protocol/ProtocolAdmin.h
src/common/protocol/ProtocolAgent.cpp
src/common/protocol/ProtocolAgent.h
src/common/protocol/ProtocolClient.cpp
src/common/protocol/ProtocolClient.h
src/common/protocol/ProtocolSignal.cpp
src/common/protocol/ProtocolSignal.h
src/common/request/AdminCheckRequest.cpp
src/common/request/AdminCheckRequest.h
src/common/request/AgentActionRequest.cpp
src/common/request/AgentActionRequest.h
src/common/request/AgentRegisterRequest.cpp
src/common/request/AgentRegisterRequest.h
src/common/request/CancelRequest.cpp
src/common/request/CancelRequest.h
src/common/request/CheckRequest.cpp
src/common/request/CheckRequest.h
src/common/request/DescriptionListRequest.cpp
src/common/request/DescriptionListRequest.h
src/common/request/EraseRequest.cpp
src/common/request/EraseRequest.h
src/common/request/InsertOrUpdateBucketRequest.cpp
src/common/request/InsertOrUpdateBucketRequest.h
src/common/request/ListRequest.cpp
src/common/request/ListRequest.h
src/common/request/RemoveBucketRequest.cpp
src/common/request/RemoveBucketRequest.h
src/common/request/Request.h
src/common/request/RequestContext.h
src/common/request/RequestTaker.cpp
src/common/request/RequestTaker.h
src/common/request/SetPoliciesRequest.cpp
src/common/request/SetPoliciesRequest.h
src/common/request/SignalRequest.cpp
src/common/request/SignalRequest.h
src/common/request/SimpleCheckRequest.cpp
src/common/request/SimpleCheckRequest.h
src/common/response/AdminCheckResponse.cpp
src/common/response/AdminCheckResponse.h
src/common/response/AgentActionResponse.cpp
src/common/response/AgentActionResponse.h
src/common/response/AgentRegisterResponse.cpp
src/common/response/AgentRegisterResponse.h
src/common/response/CancelResponse.cpp
src/common/response/CancelResponse.h
src/common/response/CheckResponse.cpp
src/common/response/CheckResponse.h
src/common/response/CodeResponse.cpp
src/common/response/CodeResponse.h
src/common/response/DescriptionListResponse.cpp
src/common/response/DescriptionListResponse.h
src/common/response/ListResponse.cpp
src/common/response/ListResponse.h
src/common/response/Response.h
src/common/response/ResponseTaker.cpp
src/common/response/ResponseTaker.h
src/common/response/SimpleCheckResponse.cpp
src/common/response/SimpleCheckResponse.h
src/common/sockets/SocketClient.cpp
src/service/agent/AgentTalker.cpp
src/service/logic/Logic.cpp
src/service/logic/Logic.h
src/service/request/CheckContext.h
src/service/request/CheckRequestManager.cpp
src/service/request/CheckRequestManager.h
src/service/sockets/SocketManager.cpp
test/common/protocols/RequestTestHelper.h
test/common/protocols/ResponseTestHelper.h

index d6576fe..c1c6eb4 100644 (file)
@@ -1,5 +1,5 @@
 /*
- *  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.
@@ -136,12 +136,10 @@ int Logic::putResponse(const AgentResponseType responseType,
         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;
 }
index 0e576ed..31e30b2 100644 (file)
@@ -1,5 +1,5 @@
 /*
- *  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.
@@ -43,8 +43,8 @@ AgentSocketClient::AgentSocketClient(const std::string &socketPath, ProtocolPtr
 
 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)) {
index 7be87d1..fa2cef0 100644 (file)
@@ -57,8 +57,8 @@ bool SocketClientAsync::isConnected(void) {
 }
 
 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) {
index 35eedd8..87d8995 100644 (file)
@@ -347,110 +347,111 @@ ResponsePtr ProtocolAdmin::extractResponseFromBuffer(BinaryQueuePtr bufferQueue)
     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()));
@@ -466,8 +467,8 @@ void ProtocolAdmin::execute(RequestContextPtr context, SetPoliciesRequestPtr req
     }
 
     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()));
@@ -479,76 +480,77 @@ void ProtocolAdmin::execute(RequestContextPtr context, SetPoliciesRequestPtr req
         }
     }
 
-    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());
@@ -557,10 +559,10 @@ void ProtocolAdmin::execute(RequestContextPtr context, ListResponsePtr response)
         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
index 254dd33..fb76d38 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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.
@@ -38,18 +38,18 @@ public:
     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);
index 7ccec81..b6d82cc 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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.
@@ -142,54 +142,54 @@ ResponsePtr ProtocolAgent::extractResponseFromBuffer(BinaryQueuePtr bufferQueue)
     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
index ca28ec7..a0932c9 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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.
@@ -41,10 +41,10 @@ public:
     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);
index 05aac89..ad50ae7 100644 (file)
@@ -179,87 +179,87 @@ ResponsePtr ProtocolClient::extractResponseFromBuffer(BinaryQueuePtr bufferQueue
     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
index 7ed41b1..70d3f92 100644 (file)
@@ -41,13 +41,13 @@ public:
     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);
index d04dbbe..e249f92 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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.
@@ -38,7 +38,8 @@ ProtocolSignal::ProtocolSignal() {
 ProtocolSignal::~ProtocolSignal() {
 }
 
-void ProtocolSignal::execute(RequestContextPtr context UNUSED, SignalRequestPtr request UNUSED) {
+void ProtocolSignal::execute(const RequestContext &context UNUSED,
+                             const SignalRequest &request UNUSED) {
     throw NotImplementedException();
 }
 
index 6c544c4..77617cd 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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.
@@ -39,7 +39,7 @@ public:
     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
index d8608be..f0fb3c3 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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
index 96e2d0e..04db2a0 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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.
@@ -28,7 +28,6 @@
 
 #include <request/pointers.h>
 #include <request/Request.h>
-#include <request/RequestTaker.h>
 
 namespace Cynara {
 
@@ -58,7 +57,8 @@ public:
         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
index 1e51313..9ea3c78 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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
index f187435..7c53ebe 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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.
@@ -48,7 +48,8 @@ public:
         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;
index 6488193..4749b2e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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
index aa6f61b..b5e93dc 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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.
@@ -42,7 +42,8 @@ public:
         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;
index d7a5ffa..2d50ebf 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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
index a6192b8..ffe9ab5 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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.
@@ -25,7 +25,6 @@
 
 #include <request/pointers.h>
 #include <request/Request.h>
-#include <request/RequestTaker.h>
 
 namespace Cynara {
 
@@ -36,7 +35,8 @@ public:
 
     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
index 149c0c6..c40fff3 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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
index 263c4d6..594b81b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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.
@@ -27,7 +27,6 @@
 
 #include <request/pointers.h>
 #include <request/Request.h>
-#include <request/RequestTaker.h>
 
 namespace Cynara {
 
@@ -46,7 +45,8 @@ public:
         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
index 1cea6f5..879b03d 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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
index 53e14ef..8b33026 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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.
@@ -36,7 +36,8 @@ public:
 
     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
index 54b59fc..2465d04 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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
index bbbf7d3..c2b3393 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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.
@@ -53,7 +53,8 @@ public:
         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;
index 7d51e01..1279f17 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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
index 1ad1e89..7983c57 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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.
@@ -28,7 +28,6 @@
 
 #include <request/pointers.h>
 #include <request/Request.h>
-#include <request/RequestTaker.h>
 
 namespace Cynara {
 
@@ -53,7 +52,8 @@ public:
         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
index 87abea7..01d93c6 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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
index 2df9506..b77a772 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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.
@@ -52,7 +52,8 @@ public:
         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
index dead83d..f15397b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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
index 1172a5f..876c302 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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.
@@ -27,7 +27,6 @@
 
 #include <request/pointers.h>
 #include <request/Request.h>
-#include <request/RequestTaker.h>
 
 namespace Cynara {
 
@@ -46,7 +45,8 @@ public:
         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
index e890868..bb311ef 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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.
@@ -24,7 +24,6 @@
 #define SRC_COMMON_REQUEST_REQUEST_H_
 
 #include <request/pointers.h>
-#include <request/RequestTaker.h>
 #include <types/ProtocolFields.h>
 
 namespace Cynara {
@@ -35,8 +34,8 @@ public:
     }
     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;
index 9c98bef..be70bda 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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.
@@ -25,6 +25,7 @@
 
 #include <memory>
 
+#include <attributes/attributes.h>
 #include <containers/BinaryQueue.h>
 #include <exceptions/ContextErrorException.h>
 #include <request/pointers.h>
@@ -44,10 +45,10 @@ public:
         : 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 {
index 1f238fd..5ae1386 100644 (file)
 
 #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();
 }
 
index a38ab28..4c8a986 100644 (file)
@@ -33,21 +33,21 @@ public:
     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
index 82e10ff..bad86a9 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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
index eb2362f..e98f6b8 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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.
@@ -32,7 +32,6 @@
 
 #include <request/pointers.h>
 #include <request/Request.h>
-#include <request/RequestTaker.h>
 
 namespace Cynara {
 
@@ -59,7 +58,8 @@ public:
         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
index c881c5d..4229fae 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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
index 97314aa..1be5101 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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.
@@ -40,9 +40,10 @@ public:
 
     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;
     }
 
index ecf8e06..7e03392 100644 (file)
  * @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
index 2748b0e..9c75ade 100644 (file)
@@ -27,8 +27,6 @@
 
 #include <request/pointers.h>
 #include <request/Request.h>
-#include <request/RequestTaker.h>
-
 namespace Cynara {
 
 class SimpleCheckRequest : public Request {
@@ -46,7 +44,8 @@ public:
         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
index 85ee425..d7fa8ab 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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
index d553fd9..fd9fd4e 100644 (file)
@@ -42,8 +42,8 @@ public:
 
     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;
index 4a8bcc8..e0bc260 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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
index f99c043..7403e1d 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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.
@@ -39,7 +39,8 @@ public:
 
     ~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;
index fe15bd3..8855731 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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
index 0b8f678..71f1563 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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.
@@ -45,7 +45,8 @@ public:
 
     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
index 69211e7..7b61f9f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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
index 657ab2c..61d3c3d 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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.
@@ -36,7 +36,8 @@ public:
 
     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
index 96f20ff..3ac43ae 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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
index 9f6f9e0..b3ad83e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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.
@@ -41,8 +41,8 @@ public:
 
     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
index bec8e96..c9ebe40 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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
index 78b21c1..fa346e0 100644 (file)
@@ -49,8 +49,8 @@ public:
 
     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
index 481913a..129ba5c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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
index 310ee63..4c55c8c 100644 (file)
@@ -42,7 +42,8 @@ public:
 
     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;
index 8931ee1..e14dff3 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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
index 2a67225..2ce0f55 100644 (file)
@@ -44,7 +44,8 @@ public:
 
     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;
index 406bd76..d5fc114 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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.
@@ -24,7 +24,6 @@
 #define SRC_COMMON_RESPONSE_RESPONSE_H_
 
 #include <response/pointers.h>
-#include <response/ResponseTaker.h>
 #include <types/ProtocolFields.h>
 
 namespace Cynara {
@@ -35,8 +34,8 @@ public:
     };
     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;
index 410f8c9..3b34b11 100644 (file)
 
 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();
 }
 
index 31b7714..42ccdaf 100644 (file)
@@ -34,15 +34,15 @@ public:
     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
index 52976fa..1e256d9 100644 (file)
  * @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
index 8fe28e6..49888fb 100644 (file)
@@ -51,8 +51,8 @@ public:
     }
     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;
index b3ce8ad..81698a2 100644 (file)
@@ -1,5 +1,5 @@
 /*
- *  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.
@@ -62,8 +62,8 @@ bool SocketClient::isConnected(void) {
 
 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) {
index 45f8a50..afcb2ec 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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.
@@ -34,9 +34,8 @@ namespace Cynara {
 
 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) {
index 44fcd97..ae04539 100644 (file)
@@ -84,10 +84,10 @@ Logic::Logic() : m_dbCorrupted(false) {
 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();
@@ -95,7 +95,7 @@ void Logic::execute(RequestContextPtr context UNUSED, SignalRequestPtr request)
     }
 }
 
-void Logic::execute(RequestContextPtr context, AdminCheckRequestPtr request) {
+void Logic::execute(const RequestContext &context, const AdminCheckRequest &request) {
     PolicyResult result;
     bool bucketValid = true;
 
@@ -103,23 +103,23 @@ void Logic::execute(RequestContextPtr context, AdminCheckRequestPtr request) {
         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;
     }
 
@@ -131,15 +131,15 @@ void Logic::execute(RequestContextPtr context, AgentActionRequestPtr request) {
     }
 
     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
         }
     }
@@ -148,18 +148,17 @@ void Logic::execute(RequestContextPtr context, AgentActionRequestPtr request) {
     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;
     }
 
@@ -169,23 +168,22 @@ void Logic::execute(RequestContextPtr context, CancelRequestPtr request) {
     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;
     }
@@ -204,7 +202,7 @@ bool Logic::check(const RequestContextPtr &context, const PolicyKey &key,
     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());
@@ -258,7 +256,7 @@ bool Logic::pluginCheck(const RequestContextPtr &context, const PolicyKey &key,
 }
 
 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);
@@ -279,31 +277,31 @@ bool Logic::update(const PolicyKey &key, ProtocolFrameSequenceNumber 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;
@@ -312,19 +310,18 @@ void Logic::execute(RequestContextPtr context, EraseRequestPtr request) {
         }
     }
 
-    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;
@@ -337,11 +334,10 @@ void Logic::execute(RequestContextPtr context, InsertOrUpdateBucketRequestPtr re
         }
     }
 
-    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;
 
@@ -349,24 +345,24 @@ void Logic::execute(RequestContextPtr context, ListRequestPtr request) {
         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;
@@ -376,21 +372,19 @@ void Logic::execute(RequestContextPtr context, RemoveBucketRequestPtr request) {
             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;
@@ -401,14 +395,13 @@ void Logic::execute(RequestContextPtr context, SetPoliciesRequestPtr request) {
         }
     }
 
-    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()) {
@@ -455,9 +448,9 @@ void Logic::execute(RequestContextPtr context, SimpleCheckRequestPtr request) {
         }
     }
     }
-    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,
@@ -481,10 +474,10 @@ void Logic::checkSinglePolicyType(const PolicyType &policyType, bool allowBucket
     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); });
@@ -508,11 +501,12 @@ void Logic::handleAgentTalkerDisconnection(const AgentTalkerPtr &agentTalkerPtr)
         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);
index 4f95d30..e59528e 100644 (file)
@@ -73,21 +73,21 @@ public:
         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:
@@ -99,12 +99,12 @@ 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,
index 5184296..5f4d095 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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.
@@ -27,6 +27,7 @@
 
 #include <containers/BinaryQueue.h>
 #include <request/pointers.h>
+#include <request/RequestContext.h>
 #include <types/PolicyKey.h>
 #include <types/ProtocolFields.h>
 
@@ -38,7 +39,7 @@ namespace Cynara {
 
 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),
@@ -49,7 +50,7 @@ public:
     const ProtocolFrameSequenceNumber m_checkId;
     const PolicyKey m_key;
     ServicePluginInterfacePtr m_plugin;
-    RequestContextPtr m_requestContext;
+    RequestContext m_requestContext;
     bool m_cancelled;
 
     void cancel(void) {
index 06ae4ea..896540e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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;
     }
 
@@ -68,7 +68,7 @@ CheckContextPtr CheckRequestManager::getContext(const AgentTalkerPtr &talker) {
 }
 
 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()) {
index f71f8f1..f77113f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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.
@@ -42,7 +42,7 @@ public:
     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);
index b7329b0..c7866c0 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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.
@@ -218,8 +218,7 @@ void SocketManager::readyForAccept(int fd) {
 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();
@@ -241,10 +240,9 @@ bool SocketManager::handleRead(int fd, const RawBuffer &readbuffer) {
             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());
index 9274a46..7788fc4 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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.
@@ -42,9 +42,9 @@ namespace RequestTestHelper {
 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));
@@ -55,9 +55,9 @@ void testRequest(std::shared_ptr<R> request, Cynara::ProtocolPtr protocol) {
 
 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());
 
@@ -65,7 +65,7 @@ void binaryTestRequest(Cynara::RequestPtr request, Cynara::ProtocolPtr protocol)
     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());
 
index 63e658b..aa80ee3 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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.
@@ -42,9 +42,9 @@ namespace ResponseTestHelper {
 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));
@@ -55,9 +55,9 @@ void testResponse(std::shared_ptr<R> response, Cynara::ProtocolPtr protocol) {
 
 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());
 
@@ -65,7 +65,7 @@ void binaryTestResponse(Cynara::ResponsePtr response, Cynara::ProtocolPtr protoc
     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());