Fix : Search APIs don't return exception despite the content in DB doesn't match...
[platform/framework/native/content.git] / src / FCnt_ContentTransferEvent.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  * @file                FCntContentTransferEvent.cpp
18  * @brief               This is the implementation file for the %ContentTransferEvent and %ContentTransferEventArg class.
19  *
20  * This file contains implementation of the %ContentTransferEvent and %ContentTransferEventArg class.
21  */
22
23 #include <FBaseSysLog.h>
24 #include <FCntIContentTransferListener.h>
25 #include "FCnt_ContentTransferEvent.h"
26
27 using namespace Tizen::Base;
28
29 namespace Tizen { namespace Content
30 {
31
32 // ContentTransferEvent class
33 _ContentTransferEvent::_ContentTransferEvent(void)
34 {
35 }
36
37 _ContentTransferEvent::~_ContentTransferEvent(void)
38 {
39
40 }
41
42 void
43 _ContentTransferEvent::FireImpl(Runtime::IEventListener& listener, const Runtime::IEventArg& arg)
44 {
45         ClearLastResult();
46         result r = E_SUCCESS;
47
48         IContentTransferListener* pIContentTransferListener = dynamic_cast<IContentTransferListener*>(&listener);
49         SysTryReturnVoidResult(NID_CNT, pIContentTransferListener != null, r = E_INVALID_STATE,
50                                 "[E_INVALID_STATE] IContentTransferListener interface must not be null.");
51
52         const _ContentTransferEventArg* pArg = dynamic_cast<const _ContentTransferEventArg*>(&arg);
53         SysTryReturnVoidResult(NID_CNT, pArg != null, r = E_INVALID_STATE, "[E_INVALID_STATE] ContentTransferEventArg must not be null.");
54
55         switch (pArg->GetEventType())
56         {
57         case CONTENT_TRANSFER_EVENT_DOWNLOAD_COMPLETED:
58                 SysLog(NID_CNT, "Event fire after call DownloadComplete.");
59                 pIContentTransferListener->OnContentDownloadCompleted(pArg->GetRequestId(), pArg->GetContentId(),
60                                                                                                                           pArg->GetResult(), pArg->GetErrorCode(), pArg->GetErrorMsg());
61                 break;
62
63         case CONTENT_TRANSFER_EVENT_CANCELED:
64                 SysLog(NID_CNT, "Event fire after call DownloadCancel.");
65                 pIContentTransferListener->OnContentTransferCanceled(pArg->GetRequestId(), pArg->GetResult(),
66                                                                                                                          pArg->GetErrorCode(), pArg->GetErrorMsg());
67                 break;
68
69         case CONTENT_TRANSFER_EVENT_DOWNLOAD_TO_BUFFER_COMPLETED:
70                 SysLog(NID_CNT, "Event fire after call DownloadToBufferComplete.");
71                 pIContentTransferListener->OnContentDownloadToBufferCompleted(pArg->GetRequestId(), pArg->GetBuffer(),
72                                                                                                                                           pArg->GetResult(), pArg->GetErrorCode(), pArg->GetErrorMsg());
73                 break;
74
75         case CONTENT_TRANSFER_EVENT_TRANSFER_IN_PROGRESS:
76                 SysLog(NID_CNT, "Event fire after call DownloadInProgress.");
77                 pIContentTransferListener->OnContentTransferInProgress(pArg->GetRequestId(), pArg->GetTotalTransferedSize());
78                 break;
79
80         default:
81                 SysLogException(NID_CNT, r = E_INVALID_STATE, "[%s] Event type is unknown.", GetErrorMessage(E_INVALID_STATE));
82         }
83
84         SetLastResult(r);
85 }
86
87
88 // ContentTransferEventArg class
89 _ContentTransferEventArg::_ContentTransferEventArg(void)
90         : __requestId(INVALID_REQUEST_ID)
91         , __contentId()
92         , __contentTransferEventType(CONTENT_TRANSFER_EVENT_NONE)
93         , __totalSize(-1)
94         , __res(E_SUCCESS)
95         , __errorMsg(L"")
96         , __errorCode(L"")
97         , __pBuffer(null)
98 {
99 }
100
101 _ContentTransferEventArg::~_ContentTransferEventArg(void)
102 {
103
104 }
105
106 void
107 _ContentTransferEventArg::SetEventType(ContentTransferEventType eType)
108 {
109         __contentTransferEventType = eType;
110 }
111
112 void
113 _ContentTransferEventArg::SetResult(result res)
114 {
115         __res = res;
116 }
117
118 void
119 _ContentTransferEventArg::SetErrorMsg(const String& ErrorCode, const String& ErrorMsg)
120 {
121         __errorMsg = ErrorMsg;
122         __errorCode = ErrorCode;
123 }
124
125 void
126 _ContentTransferEventArg::SetRequestId(RequestId requestId)
127 {
128         __requestId = requestId;
129 }
130
131 void
132 _ContentTransferEventArg::SetContentId(const ContentId& contentId)
133 {
134         __contentId = contentId;
135 }
136
137 void
138 _ContentTransferEventArg::SetTotalTransferedSize(int totalSize)
139 {
140         __totalSize = totalSize;
141 }
142
143
144 ContentTransferEventType
145 _ContentTransferEventArg::GetEventType(void) const
146 {
147         return __contentTransferEventType;
148 }
149
150 result
151 _ContentTransferEventArg::GetResult(void) const
152 {
153         return __res;
154 }
155
156 String
157 _ContentTransferEventArg::GetErrorMsg(void) const
158 {
159         return __errorMsg;
160 }
161
162 String
163 _ContentTransferEventArg::GetErrorCode(void) const
164 {
165         return __errorCode;
166 }
167
168 RequestId
169 _ContentTransferEventArg::GetRequestId(void) const
170 {
171         return __requestId;
172 }
173
174 ContentId
175 _ContentTransferEventArg::GetContentId(void) const
176 {
177         return __contentId;
178 }
179
180 int
181 _ContentTransferEventArg::GetTotalTransferedSize(void) const
182 {
183         return __totalSize;
184 }
185
186 void
187 _ContentTransferEventArg::SetBuffer(ByteBuffer* pBuffer)
188 {
189         __pBuffer = std::unique_ptr<ByteBuffer>(pBuffer);
190 }
191
192 ByteBuffer*
193 _ContentTransferEventArg::GetBuffer(void) const
194 {
195         return __pBuffer.get();
196 }
197 }}