upload tizen1.0 source
[profile/ivi/wrt-plugins-tizen.git] / src / standards / Tizen / Filesystem / JSFile.h
index e7b5d67..d11c87c 100755 (executable)
@@ -19,7 +19,9 @@
 #define TIZENAPIS_TIZEN_JSFILE_H_
 
 #include <JavaScriptCore/JavaScript.h>
+#include <Commons/IEvent.h>
 #include <CommonsJavaScript/PrivateObject.h>
+#include <CommonsJavaScript/JSCallbackManager.h>
 #include <API/Filesystem/INode.h>
 
 namespace TizenApis {
@@ -27,7 +29,82 @@ namespace Tizen1_0 {
 class JSFile
 {
 public:
-       typedef WrtDeviceApis::CommonsJavaScript::PrivateObjectT<Api::Filesystem::INodePtr>::Type PrivateObject;
+
+    class PrivateObjectDef
+    {
+    public:
+
+        typedef std::vector<int> PermissionList;
+
+        PrivateObjectDef(const Api::Filesystem::INodePtr &node,
+                         const PermissionList &parentPermissions) :
+            m_node(node),
+            m_parentPerms(parentPermissions)
+        {
+        }
+
+        virtual ~PrivateObjectDef()
+        {
+        }
+
+        Api::Filesystem::INodePtr getNode() const
+        {
+            return m_node;
+        }
+
+        PermissionList getParentPermissions() const
+        {
+            return m_parentPerms;
+        }
+
+        void setParentPermissions(const PermissionList &permissions)
+        {
+            m_parentPerms = permissions;
+        }
+
+        void pushParentPermissions(int permissions)
+        {
+            m_parentPerms.push_back(permissions);
+        }
+
+    private:
+        Api::Filesystem::INodePtr m_node;
+        PermissionList m_parentPerms;
+    };
+
+    class ListFilesPrivateData : public WrtDeviceApis::Commons::IEventPrivateData
+    {
+    public:
+        ListFilesPrivateData(
+                const WrtDeviceApis::CommonsJavaScript::JSCallbackManagerPtr &callbackManager,
+                const PrivateObjectDef::PermissionList parentPermissions) :
+            m_callbackManager(callbackManager),
+            m_parentPermissions(parentPermissions)
+        {
+        }
+
+        virtual ~ListFilesPrivateData()
+        {
+        }
+
+        WrtDeviceApis::CommonsJavaScript::JSCallbackManagerPtr getCallbackManager() const
+        {
+            return m_callbackManager;
+        }
+
+        PrivateObjectDef::PermissionList getParentPermissions() const
+        {
+            return m_parentPermissions;
+        }
+
+    private:
+        WrtDeviceApis::CommonsJavaScript::JSCallbackManagerPtr m_callbackManager;
+        PrivateObjectDef::PermissionList m_parentPermissions;
+    };
+
+    typedef DPL::SharedPtr<ListFilesPrivateData> ListFilesPrivateDataPtr;
+    typedef DPL::SharedPtr<PrivateObjectDef> PrivateObjectDefPtr;
+    typedef WrtDeviceApis::CommonsJavaScript::PrivateObjectT<PrivateObjectDefPtr>::Type PrivateObject;
 
 public:
        static const JSClassDefinition* getClassInfo();