configlib/dbmsjdbc/src/native/EmbeddedStoreOutputStream.cpp
changeset 1 b538b70cbe51
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/configlib/dbmsjdbc/src/native/EmbeddedStoreOutputStream.cpp	Thu Mar 11 18:20:56 2010 +0200
@@ -0,0 +1,87 @@
+// Copyright (c) 1998-2009 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:
+// EmbeddedStoreInputStream.h
+// 
+//
+
+#include <jni.h>
+#include "dbmsjni/com_symbian_store_EmbeddedStoreOutputStream.h"
+#include "StoreOutputStream.h"
+#include "StreamStore.h"
+#include "Utils.h"
+
+
+// //
+// StoreOutputStream class implementation
+
+
+// //
+// JNI implementations
+
+
+/*
+ * Class:     com_symbian_store_StoreOutputStream
+ * Method:    _create
+ * Signature: (I)I
+ */
+JNIEXPORT jint JNICALL Java_com_symbian_store_EmbeddedStoreOutputStream__1create__II
+  (JNIEnv *, jobject, jint aStorePeerHandle, jint aStreamId) {
+	StreamStore* streamStore = (StreamStore*)aStorePeerHandle;
+	StoreOutputStream* outStream = new StoreOutputStream();
+	RStoreWriteStream* strptr = new RStoreWriteStream();
+	outStream->iOutput = strptr;
+	TStreamId id ( aStreamId);
+	TRAPD(error, strptr->OpenL(*(streamStore->iStore), id));
+	if ( error == KErrNotFound ) {
+		TRAP(error, strptr->OpenL(*(streamStore->iStore), id));
+	}
+	if ( error < 0 ) {
+		return error;
+	}
+	return (jint)outStream;
+}
+
+/*
+ * Class:     com_symbian_store_StoreOutputStream
+ * Method:    _create
+ * Signature: (I)I
+ */
+JNIEXPORT jint JNICALL Java_com_symbian_store_EmbeddedStoreOutputStream__1create__I
+  (JNIEnv *, jobject, jint aStorePeerHandle) {
+	StreamStore* streamStore = (StreamStore*)aStorePeerHandle;
+	StoreOutputStream* outStream = new StoreOutputStream();
+	RStoreWriteStream* strptr = new RStoreWriteStream();
+	outStream->iOutput = strptr;
+	CEmbeddedStore* embstore = (CEmbeddedStore*)streamStore->iStore;
+	TStreamId id;
+	TRAPD(error, id = strptr->CreateL(*embstore));
+	if ( error < 0 ) {
+		return error;
+	}
+	outStream->iId = id.Value();
+	return (jint)outStream;
+}
+
+/*
+ * Class:     com_symbian_store_StoreOutputStream
+ * Method:    _getStreamId
+ * Signature: (I)I
+ */
+JNIEXPORT jint JNICALL Java_com_symbian_store_EmbeddedStoreOutputStream__1getStreamId
+  (JNIEnv *, jobject, jint aPeerHandle) {
+	StoreOutputStream* outStream = (StoreOutputStream*)aPeerHandle;
+	return outStream->iId;
+}
+
+