--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/javacommons/fileutils/src.s60/fileplatformspecificsjni.cpp Tue Apr 27 16:30:29 2010 +0300
@@ -0,0 +1,154 @@
+/*
+* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: JNI Layer for FilePlatformSpecifics
+ *
+*/
+
+#include <memory>
+#include <caf/content.h>
+
+#include "javajniutils.h"
+#include "jstringutils.h"
+#include "logger.h"
+
+#include "filemanager.h"
+#include "fileextendedcommon.h"
+#include "s60filesystemutilities.h"
+#include "com_nokia_mj_impl_fileutils_FilePlatformSpecifics.h"
+
+using namespace java::util;
+using namespace java::fileutils;
+using namespace java::fileutility;
+
+/*
+ * Class: com_nokia_mj_impl_fileutils_FilePlatformSpecifics
+ * Method: _copy
+ * Signature: (Ljava/lang/String;Ljava/lang/String;Z)Z
+ */
+JNIEXPORT jboolean JNICALL Java_com_nokia_mj_impl_fileutils_FilePlatformSpecifics__1copy(
+ JNIEnv *aJni, jclass, jstring source, jstring destination,
+ jboolean overwrite)
+{
+ std::wstring sourcePath = FileUtil::jstringToWstring(aJni, source);
+ std::wstring destPath = FileUtil::jstringToWstring(aJni, destination);
+
+ return FileManager::copy(sourcePath, destPath, overwrite);
+}
+
+/*
+ * Class: com_nokia_mj_impl_fileutils_FilePlatformSpecifics
+ * Method: _move
+ * Signature: (Ljava/lang/String;Ljava/lang/String;Z)Z
+ */
+JNIEXPORT jboolean JNICALL Java_com_nokia_mj_impl_fileutils_FilePlatformSpecifics__1move(
+ JNIEnv *aJni, jclass, jstring source, jstring destination,
+ jboolean overwrite)
+{
+ std::wstring sourcePath = FileUtil::jstringToWstring(aJni, source);
+ std::wstring destPath = FileUtil::jstringToWstring(aJni, destination);
+
+ return FileManager::move(sourcePath, destPath, overwrite);
+}
+
+/*
+ * Class: com_nokia_mj_impl_fileutils_FilePlatformSpecifics
+ * Method: _copyAll
+ * Signature: (Ljava/lang/String;Ljava/lang/String;Z)Z
+ */
+JNIEXPORT jboolean JNICALL Java_com_nokia_mj_impl_fileutils_FilePlatformSpecifics__1copyAll(
+ JNIEnv *aJni, jclass, jstring source, jstring destination,
+ jboolean overwrite)
+{
+ std::wstring sourcePath = FileUtil::jstringToWstring(aJni, source);
+ std::wstring destPath = FileUtil::jstringToWstring(aJni, destination);
+
+ return FileManager::copyAll(sourcePath, destPath, overwrite);
+}
+
+/*
+ * Class: com_nokia_mj_impl_fileutils_FilePlatformSpecifics
+ * Method: _deleteAll
+ * Signature: (Ljava/lang/String;)Z
+ */
+JNIEXPORT jboolean JNICALL Java_com_nokia_mj_impl_fileutils_FilePlatformSpecifics__1deleteAll(
+ JNIEnv *aJni, jclass, jstring target)
+{
+ std::wstring sourcePath = FileUtil::jstringToWstring(aJni, target);
+
+ return FileManager::deleteAll(sourcePath);
+}
+
+/*
+ * Class: com_nokia_mj_impl_fileutils_FilePlatformSpecifics
+ * Method: _setHidden
+ * Signature: (Ljava/lang/String;Z)V
+ */
+JNIEXPORT void JNICALL Java_com_nokia_mj_impl_fileutils_FilePlatformSpecifics__1setHidden(
+ JNIEnv *aJni, jclass, jstring fileName, jboolean hidden)
+{
+ JStringUtils name(*aJni, fileName);
+ TBool hide = hidden;
+
+ TRAPD(err, S60FileSystemUtilities::SetHiddenL(name, hide));
+ if (err != KErrNone)
+ {
+ ELOG1(EJavaFile,
+ "Java_com_nokia_mj_impl_file_FileSystemUtils__1sethidden %d",
+ err);
+ JniUtils::throwNewException(aJni, "java/io/IOException", "");
+ return;
+ }
+ return;
+}
+
+
+/*
+ * Class: com_nokia_mj_impl_fileutils_FilePlatformSpecifics
+ * Method: getContentId
+ * Signature: (Ljava/lang/String;Z)V
+ */
+JNIEXPORT jstring JNICALL Java_com_nokia_mj_impl_fileutils_FilePlatformSpecifics__1getContentId(
+ JNIEnv *aJni, jclass, jstring fileName)
+{
+ JStringUtils path(*aJni, fileName);
+ TDesC* pathStr = &path;
+
+ std::auto_ptr<ContentAccess::CContent> content(0);
+
+ TRAPD(err, content.reset(ContentAccess::CContent::NewL(*pathStr)));
+
+ jstring contentId = 0;
+
+ if (KErrNone == err)
+ {
+ TBool drmProtected = EFalse;
+ err = content->GetAttribute(
+ ContentAccess::EIsProtected, drmProtected);
+
+ if (KErrNone == err && drmProtected)
+ {
+ std::auto_ptr<HBufC>contentIdBuf(
+ HBufC::New(ContentAccess::KMaxCafContentName));
+ if (contentIdBuf.get())
+ {
+ TPtr idPtr(contentIdBuf->Des());
+ content->GetStringAttribute(ContentAccess::EContentID, idPtr);
+ contentId = aJni->NewString(idPtr.Ptr(), idPtr.Length());
+ }
+ }
+ }
+ return contentId;
+}
+
+