#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 {
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();