Implement plugin description listing in admin logic 07/32707/2
authorZofia Abramowska <z.abramowska@samsung.com>
Mon, 22 Dec 2014 16:27:21 +0000 (17:27 +0100)
committerZofia Abramowska <z.abramowska@samsung.com>
Tue, 23 Dec 2014 16:31:27 +0000 (17:31 +0100)
Change-Id: I82f82a7dc31cad4349c91ac61a36b70e00c2929a

src/admin/logic/OnlineLogic.cpp

index d27681b..b9be92d 100644 (file)
@@ -17,6 +17,7 @@
  * @file        src/admin/logic/OnlineLogic.cpp
  * @author      Lukasz Wojciechowski <l.wojciechow@partner.samsung.com>
  * @author      Aleksander Zdyb <a.zdyb@samsung.com>
+ * @author      Zofia Abramowska <z.abramowska@samsung.com>
  * @version     1.0
  * @brief       This file contains implementation of online version of Logic class
  */
@@ -33,6 +34,7 @@
 #include <protocol/Protocol.h>
 #include <protocol/ProtocolAdmin.h>
 #include <request/AdminCheckRequest.h>
+#include <request/DescriptionListRequest.h>
 #include <request/EraseRequest.h>
 #include <request/InsertOrUpdateBucketRequest.h>
 #include <request/ListRequest.h>
@@ -41,6 +43,7 @@
 #include <request/SetPoliciesRequest.h>
 #include <response/AdminCheckResponse.h>
 #include <response/CodeResponse.h>
+#include <response/DescriptionListResponse.h>
 #include <response/ListResponse.h>
 #include <response/pointers.h>
 #include <sockets/SocketClient.h>
@@ -196,7 +199,16 @@ int OnlineLogic::erasePolicies(const PolicyBucketId &startBucket, bool recursive
 }
 
 int OnlineLogic::listDescriptions(std::vector<PolicyDescription> &descriptions) {
-    (void) descriptions;
+    DescriptionListResponsePtr descrResponse;
+    int ret = getResponse<DescriptionListRequest>(descrResponse);
+    if (ret != CYNARA_API_SUCCESS) {
+        return ret;
+    }
+
+    LOGD("descriptionListResponse: number of plugin descriptions [%zu]",
+         descrResponse->descriptions().size());
+
+    descriptions = descrResponse->descriptions();
     return CYNARA_API_SUCCESS;
 }