2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
9 // http://www.apache.org/licenses/LICENSE-2.0
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
19 * @file FNetHttpHttpTransaction.cpp
20 * @brief This is the implementation file for HttpTransaction class.
22 * This file contains the implementation of HttpTransaction class.
25 #include <FNetHttpHttpTypes.h>
26 #include <FNetHttpHttpTransaction.h>
27 #include <FNetHttpHttpRequest.h>
28 #include <FBaseSysLog.h>
29 #include <FSec_AccessController.h>
30 #include "FNetHttp_HttpTransactionImpl.h"
31 #include "FNetHttp_HttpCommon.h"
33 using namespace Tizen::Base;
34 using namespace Tizen::Security;
36 namespace Tizen { namespace Net { namespace Http
39 HttpTransaction::HttpTransaction(void)
41 __pHttpTransactionImpl = new (std::nothrow) _HttpTransactionImpl(this);
42 SysTryReturnVoidResult(NID_NET_HTTP, __pHttpTransactionImpl, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
45 HttpTransaction::~HttpTransaction(void)
47 if (__pHttpTransactionImpl != null)
49 delete __pHttpTransactionImpl;
50 __pHttpTransactionImpl = null;
55 HttpTransaction::Submit(void)
59 r = _AccessController::CheckUserPrivilege(_PRV_HTTP);
60 r = TransExceptionsExclusive(r, E_PRIVILEGE_DENIED, E_OUT_OF_MEMORY);
61 SysTryReturnResult(NID_NET_HTTP, r == E_SUCCESS, r, "The application does not have the privilege to call this method.");
63 r = __pHttpTransactionImpl->Submit();
64 SysTryReturnResult(NID_NET_HTTP, r == E_SUCCESS, r, "Propagating.");
69 HttpTransaction::OpenAuthenticationInfoN(void)
73 r = _AccessController::CheckUserPrivilege(_PRV_HTTP);
74 r = TransExceptionsExclusive(r, E_PRIVILEGE_DENIED, E_OUT_OF_MEMORY);
75 SysTryReturn(NID_NET_HTTP, r == E_SUCCESS, null, r, "[%s] The application does not have the privilege to call this method.", GetErrorMessage(r));
77 HttpAuthentication* pHttpAuthentication = __pHttpTransactionImpl->OpenAuthenticationInfoN();
79 SysTryReturn(NID_NET_HTTP, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
81 return pHttpAuthentication;
85 HttpTransaction::GetRequest() const
90 HttpRequest* pHttpRequest = null;
92 pHttpRequest = __pHttpTransactionImpl->GetRequest();
94 SysTryReturn(NID_NET_HTTP, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
101 HttpTransaction::GetResponse(void) const
104 result r = E_SUCCESS;
106 HttpResponse* pHttpResponse = null;
108 pHttpResponse = __pHttpTransactionImpl->GetResponse();
110 SysTryReturn(NID_NET_HTTP, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
112 return pHttpResponse;
116 HttpTransaction::AddHttpTransactionListener(IHttpTransactionEventListener& listener)
118 result r = E_SUCCESS;
120 r = __pHttpTransactionImpl->AddHttpTransactionListener(listener);
121 SysTryReturnResult(NID_NET_HTTP, r == E_SUCCESS, r, "Propagating.");
127 HttpTransaction::RemoveHttpTransactionListener(IHttpTransactionEventListener& listener)
129 result r = E_SUCCESS;
131 r = __pHttpTransactionImpl->RemoveHttpTransactionListener(listener);
132 SysTryReturnResult(NID_NET_HTTP, r == E_SUCCESS, r, "Propagating.");
138 HttpTransaction::SetHttpProgressListener(IHttpProgressEventListener& listener)
140 result r = E_SUCCESS;
142 r = __pHttpTransactionImpl->SetHttpProgressListener(listener);
143 SysTryReturnResult(NID_NET_HTTP, r == E_SUCCESS, r, "Propagating.");
149 HttpTransaction::SetUserObject(const Tizen::Base::Object* pUserData)
151 result r = E_SUCCESS;
153 r = __pHttpTransactionImpl->SetUserObject(pUserData);
154 SysTryReturnResult(NID_NET_HTTP, r == E_SUCCESS, r, "Propagating.");
160 HttpTransaction::GetUserObject(void) const
163 result r = E_SUCCESS;
165 Object* pUserObject = null;
167 pUserObject = __pHttpTransactionImpl->GetUserObject();
169 SysTryReturn(NID_NET_HTTP, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
175 HttpTransaction::EnableTransactionReadyToWrite(void)
179 rs = __pHttpTransactionImpl->EnableTransactionReadyToWrite();
185 HttpTransaction::Resume()
187 result r = E_SUCCESS;
189 r = __pHttpTransactionImpl->Resume();
190 SysTryReturn(NID_NET_HTTP, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
196 HttpTransaction::Pause(void)
198 result r = E_SUCCESS;
200 r = __pHttpTransactionImpl->Pause();
201 SysTryReturnResult(NID_NET_HTTP, r == E_SUCCESS, r, "Propagating.");
207 HttpTransaction::SetClientCertificate(int certificateId)
209 result r = E_SUCCESS;
211 r = __pHttpTransactionImpl->SetClientCertificate(certificateId);
212 SysTryReturnResult(NID_NET_HTTP, r == E_SUCCESS, r, "Propagating.");
218 HttpTransaction::SetTimeout(int timeout)
220 result r = E_SUCCESS;
222 r = __pHttpTransactionImpl->SetTimeout(timeout);
223 SysTryReturnResult(NID_NET_HTTP, r == E_SUCCESS, r, "Propagating.");
229 HttpTransaction::SetServerCertificateVerification(NetHttpCertificateVerificationFlag flag)
231 result r = E_SUCCESS;
233 r = __pHttpTransactionImpl->SetServerCertificateVerification(flag);
234 SysTryReturnResult(NID_NET_HTTP, r == E_SUCCESS, r, "Propagating.");
239 } } } // Tizen::Net::Http