Fix build error due to changing app-common
[profile/tv/apps/native/filebrowser.git] / src / data / FileList.cpp
1 /*
2 * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
3 *
4 * Licensed under the Apache License, Version 2.0 (the License);
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an AS IS BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17 #include <cstdio>
18 #include <cstdlib>
19 #include <Eina.h>
20 #include "dbg.h"
21 #include <AppCommon.h>
22 #include "common.h"
23 #include "FileList.h"
24
25 int CFileList::t_Max(void)
26 {
27         return m_max;
28 }
29
30 void CFileList::t_Remove(Eina_List** list)
31 {
32         _DBG("");
33         if (*list == NULL)
34                 return;
35
36         Eina_List* filelist = *list;
37         CExtNameInfo *pInfo;
38         void* obj;
39
40         EINA_LIST_FREE(filelist, obj) {
41                 pInfo = (CExtNameInfo *)obj;
42                 pInfo->Destroy();
43                 delete pInfo;
44         }
45
46         *list = NULL;
47 }
48
49 CFileList::CFileList(int max)
50 {
51         m_lists = new Eina_List*[max + 1];
52         for (int a = 0; a <= max; a++)
53                 m_lists[a] = NULL;
54
55         m_max = max;
56 }
57
58 CFileList::~CFileList()
59 {
60         RemoveAll();
61         delete[] m_lists;
62         m_lists = NULL;
63 }
64
65 void CFileList::Add(int idx, void* obj)
66 {
67         ASSERT(0 <= idx && idx <= t_Max());
68         m_lists[idx] = eina_list_append(m_lists[idx], obj);
69 }
70
71 Eina_List* CFileList::Clone(int idx)
72 {
73         ASSERT(0 <= idx && idx <= t_Max());
74         return eina_list_clone(m_lists[idx]);
75 }
76
77 void CFileList::RemoveAll(void)
78 {
79         for (int a = 0; a <= t_Max(); a++)
80                 t_Remove(&m_lists[a]);
81 }