tizen 2.3.1 release
[framework/web/mobile/wrt-plugins-tizen.git] / src / Content / ContentScanFileCallback.h
1 //
2 // Tizen Web Device API
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 //
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
8 //
9 // http://www.apache.org/licenses/LICENSE-2.0
10 //
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.
16 //
17
18 #ifndef __TIZEN_CONTENT_SCANFILE_CALLBACK_H__
19 #define __TIZEN_CONTENT_SCANFILE_CALLBACK_H__
20
21 #include <string>
22 #include <memory>
23
24 #include <JavaScriptCore/JavaScript.h>
25 #include <JSUtil.h>
26 #include <JSWebAPIErrorFactory.h>
27
28 #include "ContentUtility.h"
29 #include "ContentCallback.h"
30 #include <TimeTracer.h>
31
32 using namespace DeviceAPI::Common;
33 //using namespace DeviceAPI::Tizen;
34
35 namespace DeviceAPI {
36 namespace Content {
37
38 class ContentScanFileCallback : public ContentCallback
39 {
40 public:
41     ContentScanFileCallback(JSContextRef globalCtx, std::string URI):ContentCallback(globalCtx){
42         m_contentURI = URI;
43     };
44
45     virtual ~ContentScanFileCallback(){
46         LOGD("Entered");
47     };
48
49     void onSuccess(){
50         JSValueRef jsResult = JSUtil::toJSValueRef(
51                 m_callback->getContext(),ContentUtility::convertPathToUri(m_contentURI));
52         if (jsResult == NULL) {
53             throw DeviceAPI::Common::UnknownException("This operation is failed by platform.");
54         }
55         m_callback->invokeCallback("onsuccess", jsResult);
56         TIME_TRACER_ITEM_END(CONTENT_TT_SCAN_FILE_TOTAL, CONTENT_TIME_TRACER_SHOW);
57     };
58
59     std::string getContentURI(){
60         return m_contentURI;
61     };
62
63 private:
64     std::string m_contentURI;
65 };
66
67
68 typedef std::shared_ptr<ContentScanFileCallback> ContentScanFileCallbackPtr;
69
70 } // Content
71 } // DeviceAPI
72
73
74
75 #endif // __TIZEN_CONTENT_GETDIRECTORY_CALLBACK_H__