[content] Remove Open Service Platform words
[platform/framework/native/content.git] / src / FCntDownloadManager.cpp
1 //
2 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
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 /**
18  * @file        FCntDownloadManager.cpp
19  * @brief       This is the implementation file for the DownloadManager class.
20  *
21  */
22
23 #include <FBaseSysLog.h>
24 #include <FSec_AccessController.h>
25 #include <FCntDownloadManager.h>
26 #include <FCntDownloadRequest.h>
27 #include <FCntIDownloadListener.h>
28
29 #include "FCnt_DownloadManagerImpl.h"
30
31 using namespace Tizen::Base;
32 using namespace Tizen::Base::Collection;
33 using namespace Tizen::Security;
34
35 namespace Tizen { namespace Content
36 {
37
38 DownloadManager::DownloadManager(void)
39         : __pDownloadManagerImpl(null)
40 {
41 }
42
43 DownloadManager::~DownloadManager(void)
44 {
45         delete __pDownloadManagerImpl;
46 }
47
48 DownloadManager*
49 DownloadManager::GetInstance(void)
50 {
51         result r = E_SUCCESS;
52         static DownloadManager* pManager = null;
53
54         if (pManager == null)
55         {
56                 pManager = new (std::nothrow) DownloadManager;
57                 SysTryReturn(NID_CNT, pManager != null, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] The memory is insufficient.");
58
59                 _DownloadManagerImpl* pImpl = _DownloadManagerImpl::GetInstance();
60                 SysTryCatch(NID_CNT, pImpl != null, , E_SYSTEM, "[E_SYSTEM] Failed to initialize download manager.");
61
62                 pManager->__pDownloadManagerImpl = pImpl;
63         }
64
65         return pManager;
66
67 CATCH:
68         delete pManager;
69         pManager = null;
70
71         return null;
72 }
73
74 result
75 DownloadManager::Start(const DownloadRequest& request, RequestId& reqId)
76 {
77         SysAssertf(__pDownloadManagerImpl != null, "Not yet constructed. Construct() should be called before use.\n");
78
79         result r = _AccessController::CheckUserPrivilege(_PRV_DOWNLOAD);
80         r = TransExceptionsExclusive(r, E_PRIVILEGE_DENIED, E_USER_NOT_CONSENTED);
81         SysTryReturnResult(NID_CNT, r == E_SUCCESS, r,
82                         "The application is not permitted to call this method.");
83
84         return __pDownloadManagerImpl->Start(request, reqId);
85 }
86
87
88 result
89 DownloadManager::Pause(RequestId reqId)
90 {
91         SysAssertf(__pDownloadManagerImpl != null, "Not yet constructed. Construct() should be called before use.\n");
92
93         return __pDownloadManagerImpl->Pause(reqId);
94 }
95
96 result
97 DownloadManager::Resume(RequestId reqId)
98 {
99         SysAssertf(__pDownloadManagerImpl != null, "Not yet constructed. Construct() should be called before use.\n");
100
101         return __pDownloadManagerImpl->Resume(reqId);
102 }
103
104 result
105 DownloadManager::Cancel(RequestId reqId)
106 {
107         SysAssertf(__pDownloadManagerImpl != null, "Not yet constructed. Construct() should be called before use.\n");
108
109         return __pDownloadManagerImpl->Cancel(reqId);
110 }
111
112
113 DownloadRequest*
114 DownloadManager::GetDownloadRequestN(RequestId reqId) const
115 {
116         SysAssertf(__pDownloadManagerImpl != null, "Not yet constructed. Construct() should be called before use.\n");
117
118         return __pDownloadManagerImpl->GetDownloadRequestN(reqId);
119 }
120
121 DownloadState
122 DownloadManager::GetState(RequestId reqId) const
123 {
124         SysAssertf(__pDownloadManagerImpl != null, "Not yet constructed. Construct() should be called before use.\n");
125
126         return (DownloadState)__pDownloadManagerImpl->GetState(reqId);
127 }
128
129 result
130 DownloadManager::GetMimeType(RequestId reqId, String& mimeType) const
131 {
132         SysAssertf(__pDownloadManagerImpl != null, "Not yet constructed. Construct() should be called before use.\n");
133
134         return __pDownloadManagerImpl->GetMimeType(reqId, mimeType);
135 }
136
137 /*
138 result
139 DownloadManager::SetAllowedNetwork(unsigned long flags)
140 {
141         SysAssertf(__pDownloadManagerImpl != null, "Not yet constructed. Construct() should be called before use.\n");
142
143         return __pDownloadManagerImpl->SetAllowedNetwork(flags);
144 }
145
146 result
147 DownloadManager::GetProgress(RequestId reqId, int& progress) const
148 {
149         SysAssertf(__pDownloadManagerImpl != null, "Not yet constructed. Construct() should be called before use.\n");
150
151         return __pDownloadManagerImpl->GetProgress(reqId, progress);
152 }
153 */
154
155 void
156 DownloadManager::SetDownloadListener(IDownloadListener* pListener)
157 {
158         __pDownloadManagerImpl->SetDownloadListener(pListener);
159 }
160
161 } } // Tizen::Content