User: rt      
Date: 05/03/30 03:52:19

Modified:
 /dba/connectivity/source/drivers/hsqldb/
  StorageNativeOutputStream.cxx

Log:
 INTEGRATION: CWS dba28 (1.3.22); FILE MERGED
 2005/03/23 14:58:43 fs 1.3.22.2: #i45314# implement sync as flush, but 
*without* commit
 2005/03/21 12:53:34 fs 1.3.22.1: copying the changes from CWS dba26 herein, 
since they're needed to fix i45314

File Changes:

Directory: /dba/connectivity/source/drivers/hsqldb/
===================================================

File [changed]: StorageNativeOutputStream.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/connectivity/source/drivers/hsqldb/StorageNativeOutputStream.cxx?r1=1.4&r2=1.5
Delta lines:  +60 -44
---------------------
--- StorageNativeOutputStream.cxx       23 Mar 2005 09:41:52 -0000      1.4
+++ StorageNativeOutputStream.cxx       30 Mar 2005 11:52:17 -0000      1.5
@@ -69,6 +69,10 @@
 #include "cppuhelper/compbase1.hxx"
 #include "cppuhelper/component_context.hxx"
 
+#ifndef CONNECTIVITY_HSQLDB_ACCESSLOG_HXX
+#include "accesslog.hxx"
+#endif
+
 #ifndef _COM_SUN_STAR_EMBED_XTRANSACTEDOBJECT_HPP_
 #include <com/sun/star/embed/XTransactedObject.hpp>
 #endif
@@ -96,14 +100,12 @@
 #ifndef _COMPHELPER_TYPES_HXX_
 #include <comphelper/types.hxx>
 #endif
-#include "hsqldb/HStorageAccess.h"
+#include "hsqldb/HStorageAccess.hxx"
 #include "hsqldb/HStorageMap.hxx"
 
 #include "jvmaccess/virtualmachine.hxx"
 #include "com/sun/star/lang/XSingleComponentFactory.hpp"
 
-#include <rtl/logfile.hxx>
-
 using namespace ::com::sun::star::container;
 using namespace ::com::sun::star::uno;
 using namespace ::com::sun::star::document;
@@ -130,10 +132,8 @@
 {
 #if OSL_DEBUG_LEVEL > 1
     {
-        ::rtl::OUString sOrgName = StorageContainer::jstring2ustring(env,name);
-        sOrgName += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".output"));
-        ::rtl::OString sName = 
::rtl::OUStringToOString(sOrgName,RTL_TEXTENCODING_ASCII_US);
-        getStreams()[sOrgName] = fopen( sName.getStr(), "a+" );
+        OperationLogFile( env, name, "output" ).logOperation( "openStream" );
+        LogFile( env, name, "output" ).create();
     }
 #endif
        StorageContainer::registerStream(env,name,key,mode);
@@ -146,7 +146,14 @@
 JNIEXPORT void JNICALL 
Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_write__Ljava_lang_String_2Ljava_lang_String_2_3BII
   (JNIEnv * env, jobject obj_this, jstring key, jstring name, jbyteArray 
buffer, jint off, jint len)
 {
-       
Java_com_sun_star_sdbcx_comp_hsqldb_NativeStorageAccess_write(env,obj_this,name,key,buffer,off,len);
+#if OSL_DEBUG_LEVEL > 1
+    OperationLogFile( env, name, "output" ).logOperation( "write( byte[], int, 
int )" );
+
+    DataLogFile aDataLog( env, name, "output" );
+    write_to_storage_stream_from_buffer( env, obj_this, name, key, buffer, 
off, len, &aDataLog );
+#else
+    write_to_storage_stream_from_buffer( env, obj_this, name, key, buffer, 
off, len );
+#endif
 }
 // 
-----------------------------------------------------------------------------
 /*
@@ -157,7 +164,14 @@
 JNIEXPORT void JNICALL 
Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_write__Ljava_lang_String_2Ljava_lang_String_2_3B
   (JNIEnv * env, jobject obj_this, jstring key, jstring name, jbyteArray 
buffer)
 {
-    
Java_com_sun_star_sdbcx_comp_hsqldb_NativeStorageAccess_write(env,obj_this,name,key,buffer,0,env->GetArrayLength(buffer));
+#if OSL_DEBUG_LEVEL > 1
+    OperationLogFile( env, name, "output" ).logOperation( "write( byte[] )" );
+
+    DataLogFile aDataLog( env, name, "output" );
+    write_to_storage_stream_from_buffer( env, obj_this, name, key, buffer, 0, 
env->GetArrayLength( buffer ), &aDataLog );
+#else
+    write_to_storage_stream_from_buffer( env, obj_this, name, key, buffer, 0, 
env->GetArrayLength( buffer ) );
+#endif
 }
 // 
-----------------------------------------------------------------------------
 /*
@@ -168,6 +182,13 @@
 JNIEXPORT void JNICALL 
Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_close
   (JNIEnv * env, jobject obj_this, jstring key, jstring name)
 {
+#if OSL_DEBUG_LEVEL > 1
+    OperationLogFile aOpLog( env, name, "output" );
+    aOpLog.logOperation( "close" );
+
+    LogFile aDataLog( env, name, "output" );
+#endif
+
     ::boost::shared_ptr<StreamHelper> pHelper = 
StorageContainer::getRegisteredStream(env,name,key);
     Reference< XOutputStream> xFlush = pHelper.get() ? 
pHelper->getOutputStream() : Reference< XOutputStream>();
     if ( xFlush.is() )
@@ -179,12 +200,8 @@
         {}
 
 #if OSL_DEBUG_LEVEL > 1
-    {
-        ::rtl::OUString sOrgName = StorageContainer::jstring2ustring(env,name);
-        sOrgName += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".output"));
-        fclose( getStreams()[sOrgName] );
-        getStreams().erase(sOrgName);
-    }
+    aDataLog.close();
+    aOpLog.close();
 #endif
        StorageContainer::revokeStream(env,name,key);
 }
@@ -197,7 +214,14 @@
 JNIEXPORT void JNICALL 
Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_write__Ljava_lang_String_2Ljava_lang_String_2I
   (JNIEnv * env, jobject obj_this, jstring key, jstring name,jint b)
 {
-    
Java_com_sun_star_sdbcx_comp_hsqldb_NativeStorageAccess_writeInt(env,obj_this,name,key,b);
+#if OSL_DEBUG_LEVEL > 1
+    OperationLogFile( env, name, "output" ).logOperation( "write( int )" );
+
+    DataLogFile aDataLog( env, name, "output" );
+    write_to_storage_stream( env, obj_this, name, key, b, &aDataLog );
+#else
+    write_to_storage_stream( env, obj_this, name, key, b );
+#endif
 }
 // 
-----------------------------------------------------------------------------
 /*
@@ -208,6 +232,9 @@
 JNIEXPORT void JNICALL 
Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_flush
   (JNIEnv * env, jobject obj_this, jstring key, jstring name)
 {
+#if OSL_DEBUG_LEVEL > 1
+    OperationLogFile( env, name, "output" ).logOperation( "flush" );
+#endif
 }
 // 
-----------------------------------------------------------------------------
 /*
@@ -218,32 +245,21 @@
 JNIEXPORT void JNICALL 
Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_sync
   (JNIEnv * env, jobject obj_this, jstring key, jstring name)
 {
-       TStorages::mapped_type aStoragePair = 
StorageContainer::getRegisteredStorage(StorageContainer::jstring2ustring(env,key));
-       Reference<XTransactedObject> xTrans(aStoragePair.first.first,UNO_QUERY);
-       if ( xTrans.is() )
-       {
-               try
-               {
-            TStreamMap::iterator aIter = aStoragePair.second.begin();
-            TStreamMap::iterator aEnd = aStoragePair.second.end();
-            for (;aIter != aEnd ; ++aIter)
-            {
-                ::boost::shared_ptr<StreamHelper> pHelper = aIter->second;
-                Reference< XOutputStream> xFlush = pHelper.get() ? 
pHelper->getOutputStream() : Reference< XOutputStream>();
+#if OSL_DEBUG_LEVEL > 1
+    OperationLogFile( env, name, "output" ).logOperation( "sync" );
+#endif
+    ::boost::shared_ptr< StreamHelper > pStream = 
StorageContainer::getRegisteredStream( env, name, key );
+    Reference< XOutputStream > xFlush = pStream.get() ? 
pStream->getOutputStream() : Reference< XOutputStream>();
+    OSL_ENSURE( xFlush.is(), "StorageNativeOutputStream::sync: could not 
retrieve an output stream!" );
                 if ( xFlush.is() )
+    {
                     try
                     {
                         xFlush->flush();
                     }
                     catch(Exception&)
-                    {}
-            }
-                       xTrans->commit();
-               }
-               catch(Exception& e)
                {
-                       OSL_ENSURE(0,"Exception catched! : sync();");
-            StorageContainer::throwJavaException(e,env);
+            OSL_ENSURE( false, "StorageNativeOutputStream::sync: could not 
flush output stream!" );
                }
        }
 }




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to