Add new function msc_remove_folder_extract_request() 88/239588/6
authorhj kim <backto.kim@samsung.com>
Tue, 28 Jul 2020 03:10:42 +0000 (12:10 +0900)
committerhj kim <backto.kim@samsung.com>
Tue, 28 Jul 2020 06:52:10 +0000 (06:52 +0000)
code clean up for removing folder extract request.

Change-Id: Id1b5abca7b0916f7a4bf9a77f60b9c21c06503b3

src/scanner-v2/include/media-scanner-extract-v2.h
src/scanner-v2/media-scanner-extract-v2.c
src/scanner-v2/media-scanner-socket-v2.c

index ba89037..d1a6b1a 100755 (executable)
@@ -41,5 +41,6 @@ void msc_insert_exactor_request(int message_type, bool ins_status, const char *s
 int msc_remove_extract_request(const ms_comm_msg_s *recv_msg);
 int msc_set_cancel_extract_item(const char* path, int pid);
 void msc_set_extract_blocked_path(const char *blocked_path);
+void msc_remove_folder_extract_request(ms_comm_msg_s *recv_msg);
 
 #endif /*_MEDIA_SCANNER_EXTRACT_V2_H_*/
index 057e2ec..2ed63f2 100644 (file)
@@ -746,3 +746,42 @@ static int __msc_extract_set_db_status(ms_db_status_type_t status)
        return res;
 }
 
+void msc_remove_folder_extract_request(ms_comm_msg_s *recv_msg)
+{
+       int i = 0;
+       char *cancel_path = recv_msg->msg;
+       int pid = recv_msg->pid;
+       GAsyncQueue *temp_extract_queue = NULL;
+       ms_comm_msg_s *msg = NULL;
+       int len = g_async_queue_length(folder_extract_queue);
+
+       MS_DBG_WARN("folder_extract_queue len [%d]", len);
+
+       if (len == 0) {
+               MS_DBG_ERR("Request is not stacked");
+               return;
+       }
+
+       temp_extract_queue = g_async_queue_new();
+
+       MS_DBG_WARN("start update folder_extract_queue");
+
+       for (i = 0; i < len; i++) {
+               msg = g_async_queue_pop(folder_extract_queue);
+               if ((strcmp(msg->msg, cancel_path) == 0) && (pid == msg->pid)) {
+                       MS_DBG_WARN("Remove request. cancel path [%s]", cancel_path);
+                       if (msg->result) {
+                               msg->msg_type = MS_MSG_DIRECTORY_SCANNING_CANCEL;
+                               msc_send_result(MS_MEDIA_ERR_SCANNER_FORCE_STOP, msg);
+                       }
+                       g_free(msg);
+               } else {
+                       g_async_queue_push(temp_extract_queue, msg);
+               }
+       }
+
+       g_async_queue_unref(folder_extract_queue);
+       folder_extract_queue = temp_extract_queue;
+
+       MS_DBG_FLEAVE();
+}
index fdf61c6..d7dea6d 100644 (file)
@@ -37,7 +37,6 @@
 
 extern GAsyncQueue *scan_queue2;
 extern GMutex scan_req_mutex2;
-extern GAsyncQueue *folder_extract_queue;
 extern int g_directory_scan_processing2;
 
 static void __msc_remove_request(ms_comm_msg_s *recv_msg)
@@ -92,38 +91,7 @@ static void __msc_remove_request(ms_comm_msg_s *recv_msg)
 END_REMOVE_REQUEST:
        {
                msc_set_cancel_extract_item(recv_msg->msg, recv_msg->pid);
-               GAsyncQueue *temp_extract_queue = NULL;
-               int len_extract = g_async_queue_length(folder_extract_queue);
-               MS_DBG_WARN("len [%d]", len_extract);
-
-               if (len_extract > 0) {
-                       temp_extract_queue = g_async_queue_new();
-                       MS_DBG_WARN("start update folder_extract_queue");
-                       for (i = 0; i < len_extract; i++) {
-                               /*create new queue to compare request*/
-                               msg = g_async_queue_pop(folder_extract_queue);
-                               if ((strcmp(msg->msg, cancel_path) == 0) && (pid == msg->pid)) {
-                                       MS_DBG_WARN("cancel path [%s]", cancel_path);
-                                       if (msg->result) {
-                                               msg->msg_type = MS_MSG_DIRECTORY_SCANNING_CANCEL;
-                                               msc_send_result(MS_MEDIA_ERR_SCANNER_FORCE_STOP, msg);
-                                       }
-                                       g_free(msg);
-                               } else {
-                                       g_async_queue_push(temp_extract_queue, msg);
-                               }
-                       }
-
-                       len = g_async_queue_length(temp_extract_queue);
-                       int j = 0;
-                       for (; j < len; j++) {
-                               msg = g_async_queue_pop(temp_extract_queue);
-                               if (msg)
-                                       g_async_queue_push(folder_extract_queue, msg);
-                       }
-                       g_async_queue_unref(temp_extract_queue);
-                       MS_DBG_WARN("end update folder_extract_queue");
-               }
+               msc_remove_folder_extract_request(recv_msg);
        }
 
        g_mutex_unlock(&scan_req_mutex2);