User: rt      
Date: 05/03/30 03:51:36

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

Log:
 INTEGRATION: CWS dba28 (1.4.22); FILE MERGED
 2005/03/30 11:26:32 fs 1.4.22.5: RESYNC: (1.4-1.5); FILE MERGED
 2005/03/24 08:01:24 fs 1.4.22.4: #i10000#
 2005/03/23 15:34:02 fs 1.4.22.3: #i10000#
 2005/03/23 14:57:50 fs 1.4.22.2: #i45314# logging facilities
 2005/03/21 12:53:32 fs 1.4.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]: HStorageAccess.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/connectivity/source/drivers/hsqldb/HStorageAccess.cxx?r1=1.5&r2=1.6
Delta lines:  +210 -149
-----------------------
--- HStorageAccess.cxx  23 Mar 2005 09:40:48 -0000      1.5
+++ HStorageAccess.cxx  30 Mar 2005 11:51:33 -0000      1.6
@@ -58,7 +58,7 @@
  *
  *
  ************************************************************************/
-#include "hsqldb/HStorageAccess.h"
+#include "hsqldb/HStorageAccess.hxx"
 
 #ifndef _COMPHELPER_PROCESSFACTORY_HXX_
 #include <comphelper/processfactory.hxx>
@@ -75,6 +75,10 @@
 #include "hsqldb/HStorageMap.hxx"
 #include "hsqldb/StorageNativeInputStream.h"
 
+#ifndef CONNECTIVITY_HSQLDB_ACCESSLOG_HXX
+#include "accesslog.hxx"
+#endif
+
 
 using namespace ::com::sun::star::container;
 using namespace ::com::sun::star::uno;
@@ -97,10 +101,8 @@
 {
 #if OSL_DEBUG_LEVEL > 1
     {
-        ::rtl::OUString sOrgName = StorageContainer::jstring2ustring(env,name);
-        sOrgName += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".data"));
-        ::rtl::OString sName = 
::rtl::OUStringToOString(sOrgName,RTL_TEXTENCODING_ASCII_US);
-        getStreams()[sOrgName] = fopen( sName.getStr(), "a+" );
+        OperationLogFile( env, name, "data" ).logOperation( "openStream" );
+        LogFile( env, name, "data" ).create();
     }
 #endif
 
@@ -123,13 +125,17 @@
             xFlush->flush();
         }
         catch(Exception&)
-        {}
+        {
+            OSL_ENSURE( false, "NativeStorageAccess::close: caught an 
exception while flushing!" );
+        }
 #if OSL_DEBUG_LEVEL > 1
     {
-        ::rtl::OUString sOrgName = StorageContainer::jstring2ustring(env,name);
-        sOrgName += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".data"));
-        fclose( getStreams()[sOrgName] );
-        getStreams().erase(sOrgName);
+        OperationLogFile aOpLog( env, name, "data" );
+        aOpLog.logOperation( "close" );
+        aOpLog.close();
+
+        LogFile aDataLog( env, name, "data" );
+        aDataLog.close();
     }
 #endif
 
@@ -144,9 +150,19 @@
 JNIEXPORT jlong JNICALL 
Java_com_sun_star_sdbcx_comp_hsqldb_NativeStorageAccess_getFilePointer
   (JNIEnv * env, jobject obj_this,jstring name, jstring key)
 {
+#if OSL_DEBUG_LEVEL > 1
+    OperationLogFile aOpLog( env, name, "data" );
+    aOpLog.logOperation( "getFilePointer" );
+#endif
+
        ::boost::shared_ptr<StreamHelper> pHelper = 
StorageContainer::getRegisteredStream(env,name,key);
        OSL_ENSURE(pHelper.get(),"No stream helper!");
-       return pHelper.get() ? pHelper->getSeek()->getPosition() : jlong(0);
+
+    jlong nReturn = pHelper.get() ? pHelper->getSeek()->getPosition() : 
jlong(0);
+#if OSL_DEBUG_LEVEL > 1
+    aOpLog.logReturn( nReturn );
+#endif
+    return nReturn;
 }
 // 
-----------------------------------------------------------------------------
 
@@ -158,19 +174,24 @@
 JNIEXPORT jlong JNICALL 
Java_com_sun_star_sdbcx_comp_hsqldb_NativeStorageAccess_length
   (JNIEnv * env, jobject obj_this,jstring name, jstring key)
 {
+#if OSL_DEBUG_LEVEL > 1
+    OperationLogFile aOpLog( env, name, "data" );
+    aOpLog.logOperation( "length" );
+#endif
+
        ::boost::shared_ptr<StreamHelper> pHelper = 
StorageContainer::getRegisteredStream(env,name,key);
        OSL_ENSURE(pHelper.get(),"No stream helper!");
-       return pHelper.get() ? pHelper->getSeek()->getLength() :jlong(0);
+
+    jlong nReturn = pHelper.get() ? pHelper->getSeek()->getLength() :jlong(0);
+#if OSL_DEBUG_LEVEL > 1
+    aOpLog.logReturn( nReturn );
+#endif
+    return nReturn;
 }
+
 // 
-----------------------------------------------------------------------------
 
-/*
- * Class:     com_sun_star_sdbcx_comp_hsqldb_NativeStorageAccess
- * Method:    read
- * Signature: (Ljava/lang/String;Ljava/lang/String;)I
- */
-JNIEXPORT jint JNICALL 
Java_com_sun_star_sdbcx_comp_hsqldb_NativeStorageAccess_read__Ljava_lang_String_2Ljava_lang_String_2
-  (JNIEnv * env, jobject obj_this,jstring name, jstring key)
+jint read_from_storage_stream( JNIEnv * env, jobject obj_this, jstring name, 
jstring key, DataLogFile* logger )
 {
        ::boost::shared_ptr<StreamHelper> pHelper = 
StorageContainer::getRegisteredStream(env,name,key);
     Reference< XInputStream> xIn = pHelper.get() ? pHelper->getInputStream() : 
Reference< XInputStream>();
@@ -200,27 +221,39 @@
                                tmpInt = 256 +tmpInt;
 
 #if OSL_DEBUG_LEVEL > 1
-                       ::rtl::OUString sOrgName = 
StorageContainer::jstring2ustring(env,name);
-            if ( getStreams().find(sOrgName + 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".data"))) != getStreams().end() )
-                sOrgName += 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".data"));
-            else
-                sOrgName += 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".input"));
-                       fputc(tmpInt,getStreams()[sOrgName]);
+            if ( logger )
+                logger->write( tmpInt );
 #endif
                        return(tmpInt);
                }
        }
        return -1;
 }
+
 // 
-----------------------------------------------------------------------------
 
 /*
  * Class:     com_sun_star_sdbcx_comp_hsqldb_NativeStorageAccess
  * Method:    read
- * Signature: (Ljava/lang/String;Ljava/lang/String;[BII)I
+ * Signature: (Ljava/lang/String;Ljava/lang/String;)I
  */
-JNIEXPORT jint JNICALL 
Java_com_sun_star_sdbcx_comp_hsqldb_NativeStorageAccess_read__Ljava_lang_String_2Ljava_lang_String_2_3BII
-  (JNIEnv * env, jobject obj_this,jstring name, jstring key, jbyteArray 
buffer, jint off, jint len)
+JNIEXPORT jint JNICALL 
Java_com_sun_star_sdbcx_comp_hsqldb_NativeStorageAccess_read__Ljava_lang_String_2Ljava_lang_String_2
+  (JNIEnv* env, jobject obj_this, jstring name, jstring key)
+{
+#if OSL_DEBUG_LEVEL > 1
+    OperationLogFile aOpLog( env, name, "data" );
+    aOpLog.logOperation( "read" );
+
+    DataLogFile aDataLog( env, name, "data" );
+    return read_from_storage_stream( env, obj_this, name, key, &aDataLog );
+#else
+    return read_from_storage_stream( env, obj_this, name, key );
+#endif
+}
+
+// 
-----------------------------------------------------------------------------
+
+jint read_from_storage_stream_into_buffer( JNIEnv * env, jobject 
obj_this,jstring name, jstring key, jbyteArray buffer, jint off, jint len, 
DataLogFile* logger )
 {
        ::boost::shared_ptr<StreamHelper> pHelper = 
StorageContainer::getRegisteredStream(env,name,key);
        Reference< XInputStream> xIn = pHelper.get() ? 
pHelper->getInputStream() : Reference< XInputStream>();
@@ -253,12 +286,8 @@
                env->SetByteArrayRegion(buffer,off,nBytesRead,&aData[0]);
 
 #if OSL_DEBUG_LEVEL > 1
-               ::rtl::OUString sOrgName = 
StorageContainer::jstring2ustring(env,name);
-        if ( getStreams().find(sOrgName + 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".data"))) != getStreams().end() )
-            sOrgName += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".data"));
-        else
-            sOrgName += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".input"));
-               
fwrite(&aData[0],sizeof(sal_Int8),nBytesRead,getStreams()[sOrgName]);
+        if ( logger )
+            logger->write( aData.getConstArray(), nBytesRead );
 #endif
            return nBytesRead;
        }
@@ -271,12 +300,38 @@
 
 /*
  * Class:     com_sun_star_sdbcx_comp_hsqldb_NativeStorageAccess
+ * Method:    read
+ * Signature: (Ljava/lang/String;Ljava/lang/String;[BII)I
+ */
+JNIEXPORT jint JNICALL 
Java_com_sun_star_sdbcx_comp_hsqldb_NativeStorageAccess_read__Ljava_lang_String_2Ljava_lang_String_2_3BII
+  (JNIEnv * env, jobject obj_this,jstring name, jstring key, jbyteArray 
buffer, jint off, jint len)
+{
+#if OSL_DEBUG_LEVEL > 1
+    OperationLogFile aOpLog( env, name, "data" );
+    aOpLog.logOperation( "read( byte[], int, int )" );
+
+    DataLogFile aDataLog( env, name, "data" );
+    return read_from_storage_stream_into_buffer( env, obj_this, name, key, 
buffer, off, len, &aDataLog );
+#else
+    return read_from_storage_stream_into_buffer( env, obj_this, name, key, 
buffer, off, len );
+#endif
+}
+
+// 
-----------------------------------------------------------------------------
+
+/*
+ * Class:     com_sun_star_sdbcx_comp_hsqldb_NativeStorageAccess
  * Method:    readInt
  * Signature: (Ljava/lang/String;Ljava/lang/String;)I
  */
 JNIEXPORT jint JNICALL 
Java_com_sun_star_sdbcx_comp_hsqldb_NativeStorageAccess_readInt
   (JNIEnv * env, jobject obj_this,jstring name, jstring key)
 {
+#if OSL_DEBUG_LEVEL > 1
+    OperationLogFile aOpLog( env, name, "data" );
+    aOpLog.logOperation( "readInt" );
+#endif
+
        ::boost::shared_ptr<StreamHelper> pHelper = 
StorageContainer::getRegisteredStream(env,name,key);
        Reference< XInputStream> xIn = pHelper.get() ? 
pHelper->getInputStream() : Reference< XInputStream>();
        OSL_ENSURE(xIn.is(),"Input stream is NULL!");
@@ -318,12 +373,10 @@
                }
                jint nRet = ((ch[0] << 24) + (ch[1] << 16) + (ch[2] << 8) + 
(ch[3] << 0));
 #if OSL_DEBUG_LEVEL > 1
-        ::rtl::OUString sOrgName = StorageContainer::jstring2ustring(env,name);
-        if ( getStreams().find(sOrgName + 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".data"))) != getStreams().end() )
-            sOrgName += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".data"));
-        else
-            sOrgName += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".input"));
-        fputc(nRet,getStreams()[sOrgName]);
+        DataLogFile aDataLog( env, name, "data" );
+        aDataLog.write( nRet );
+
+        aOpLog.logReturn( nRet );
 #endif
                return nRet;
        }
@@ -342,27 +395,28 @@
 JNIEXPORT void JNICALL 
Java_com_sun_star_sdbcx_comp_hsqldb_NativeStorageAccess_seek
   (JNIEnv * env, jobject obj_this,jstring name, jstring key, jlong position)
 {
+#if OSL_DEBUG_LEVEL > 1
+    OperationLogFile aOpLog( env, name, "data" );
+    aOpLog.logOperation( "seek", position );
+#endif
+
        ::boost::shared_ptr<StreamHelper> pHelper = 
StorageContainer::getRegisteredStream(env,name,key);
        Reference< XSeekable> xSeek = pHelper.get() ? pHelper->getSeek() : 
Reference< XSeekable>();
        
        OSL_ENSURE(xSeek.is(),"No Seekable stream!");
        if ( xSeek.is() )
        {
+    #if OSL_DEBUG_LEVEL > 1
+        DataLogFile aDataLog( env, name, "data" );
+    #endif
+
                ::sal_Int64 nLen = xSeek->getLength();
                if ( nLen < position) 
                {
                        static ::sal_Int64 BUFFER_SIZE = 9192;
-#if OSL_DEBUG_LEVEL > 1
-            {
-                ::rtl::OUString sOrgName = 
StorageContainer::jstring2ustring(env,name);
-                if ( getStreams().find(sOrgName + 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".data"))) != getStreams().end() )
-                    sOrgName += 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".data"));
-                else
-                    sOrgName += 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".output"));
-                   int errr = fseek(getStreams()[sOrgName],nLen,SEEK_SET);
-            }
-#endif
-
+        #if OSL_DEBUG_LEVEL > 1
+            aDataLog.seek( nLen );
+        #endif
                        xSeek->seek(nLen);
                        Reference< XOutputStream> xOut = 
pHelper->getOutputStream();
                        OSL_ENSURE(xOut.is(),"No output stream!");
@@ -384,39 +438,23 @@
                                Sequence< ::sal_Int8 > aData(n);
                                memset(aData.getArray(),0,n);
                                xOut->writeBytes(aData);
-#if OSL_DEBUG_LEVEL > 1
-                ::rtl::OUString sOrgName = 
StorageContainer::jstring2ustring(env,name);
-                if ( getStreams().find(sOrgName + 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".data"))) != getStreams().end() )
-                    sOrgName += 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".data"));
-                else
-                    sOrgName += 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".output"));
-                fwrite(&aData[0],sizeof(sal_Int8),n,getStreams()[sOrgName]);
-#endif
+            #if OSL_DEBUG_LEVEL > 1
+                aDataLog.write( aData.getConstArray(), n );
+            #endif
                        }
                }
         xSeek->seek(position);
         OSL_ENSURE(xSeek->getPosition() == position,"Wrong position after 
seeking the stream");
 
-#if OSL_DEBUG_LEVEL > 1
-        ::rtl::OUString sOrgName = StorageContainer::jstring2ustring(env,name);
-        if ( getStreams().find(sOrgName + 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".data"))) != getStreams().end() )
-            sOrgName += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".data"));
-        else
-            sOrgName += 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".output"));
-           int errr = fseek(getStreams()[sOrgName],position,SEEK_SET);
-        OSL_ENSURE(xSeek->getPosition() == 
ftell(getStreams()[sOrgName]),"Wrong position after seeking the stream");
-#endif                 
+    #if OSL_DEBUG_LEVEL > 1
+        aDataLog.seek( position );
+        OSL_ENSURE( xSeek->getPosition() == aDataLog.tell(), "Wrong position 
after seeking the stream" );
+    #endif
        }
 }
 // 
-----------------------------------------------------------------------------
 
-/*
- * Class:     com_sun_star_sdbcx_comp_hsqldb_NativeStorageAccess
- * Method:    write
- * Signature: (Ljava/lang/String;Ljava/lang/String;[BII)V
- */
-JNIEXPORT void JNICALL 
Java_com_sun_star_sdbcx_comp_hsqldb_NativeStorageAccess_write
-  (JNIEnv * env, jobject obj_this,jstring name, jstring key, jbyteArray 
buffer, jint off, jint len)
+void write_to_storage_stream_from_buffer( JNIEnv* env, jobject obj_this, 
jstring name, jstring key, jbyteArray buffer, jint off, jint len, DataLogFile* 
logger )
 {
        ::boost::shared_ptr<StreamHelper> pHelper = 
StorageContainer::getRegisteredStream(env,name,key);
        Reference< XOutputStream> xOut = pHelper.get() ? 
pHelper->getOutputStream() : Reference< XOutputStream>();
@@ -439,20 +477,12 @@
                        OSL_ENSURE(buf,"buf is NULL");
                        if ( buf )
                        {
-#if OSL_DEBUG_LEVEL > 1
-                ::rtl::OUString sOrgName = 
StorageContainer::jstring2ustring(env,name);
-                sal_Bool bCheck;
-                if ( bCheck = (getStreams().find(sOrgName + 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".data"))) != getStreams().end()) )
-                    sOrgName += 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".data"));
-                else
-                    sOrgName += 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".output"));
-#endif
-
                                Sequence< ::sal_Int8 > aData(buf + off,len);
                                xOut->writeBytes(aData);
                                env->ReleaseByteArrayElements(buffer, buf, 
JNI_ABORT);
 #if OSL_DEBUG_LEVEL > 1
-                
fwrite(&aData[off],sizeof(sal_Int8),len,getStreams()[sOrgName]);
+                if ( logger )
+                    logger->write( aData.getConstArray(), len );
 #endif
                        }
                }
@@ -465,19 +495,34 @@
        }
        catch(Exception& e)
        {
-               OSL_ENSURE(0,"Exception catched! : write [BII)V");
+               OSL_ENSURE(0,"Exception caught! : write [BII)V");
         StorageContainer::throwJavaException(e,env);
        }
 }
+
 // 
-----------------------------------------------------------------------------
 
 /*
  * Class:     com_sun_star_sdbcx_comp_hsqldb_NativeStorageAccess
- * Method:    writeInt
- * Signature: (Ljava/lang/String;Ljava/lang/String;I)V
+ * Method:    write
+ * Signature: (Ljava/lang/String;Ljava/lang/String;[BII)V
  */
-JNIEXPORT void JNICALL 
Java_com_sun_star_sdbcx_comp_hsqldb_NativeStorageAccess_writeInt
-  (JNIEnv * env, jobject obj_this,jstring name, jstring key, jint v)
+JNIEXPORT void JNICALL 
Java_com_sun_star_sdbcx_comp_hsqldb_NativeStorageAccess_write
+  (JNIEnv * env, jobject obj_this,jstring name, jstring key, jbyteArray 
buffer, jint off, jint len)
+{
+#if OSL_DEBUG_LEVEL > 1
+    OperationLogFile aOpLog( env, name, "data" );
+    aOpLog.logOperation( "write( byte[], int, int )" );
+
+    DataLogFile aDataLog( env, name, "data" );
+    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
+}
+// 
-----------------------------------------------------------------------------
+
+void write_to_storage_stream( JNIEnv* env, jobject obj_this, jstring name, 
jstring key, jint v, DataLogFile* logger )
 {
        ::boost::shared_ptr<StreamHelper> pHelper = 
StorageContainer::getRegisteredStream(env,name,key);
        Reference< XOutputStream> xOut = pHelper.get() ? 
pHelper->getOutputStream() : Reference< XOutputStream>();
@@ -494,13 +539,8 @@
 
                        xOut->writeBytes(oneByte);
 #if OSL_DEBUG_LEVEL > 1
-            ::rtl::OUString sOrgName = 
StorageContainer::jstring2ustring(env,name);
-            if ( getStreams().find(sOrgName + 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".data"))) != getStreams().end() )
-                sOrgName += 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".data"));
-            else
-                sOrgName += 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".output"));
-
-            fwrite(&oneByte[0],sizeof(sal_Int8),4,getStreams()[sOrgName]);
+            if ( logger )
+                logger->write( oneByte.getConstArray(), 4 );
 #endif
                }
                else
@@ -515,4 +555,25 @@
                OSL_ENSURE(0,"Exception catched! : writeBytes(aData);");
         StorageContainer::throwJavaException(e,env);
        }
+}
+
+// 
-----------------------------------------------------------------------------
+
+/*
+ * Class:     com_sun_star_sdbcx_comp_hsqldb_NativeStorageAccess
+ * Method:    writeInt
+ * Signature: (Ljava/lang/String;Ljava/lang/String;I)V
+ */
+JNIEXPORT void JNICALL 
Java_com_sun_star_sdbcx_comp_hsqldb_NativeStorageAccess_writeInt
+  (JNIEnv * env, jobject obj_this,jstring name, jstring key, jint v)
+{
+#if OSL_DEBUG_LEVEL > 1
+    OperationLogFile aOpLog( env, name, "data" );
+    aOpLog.logOperation( "writeInt" );
+
+    DataLogFile aDataLog( env, name, "data" );
+    write_to_storage_stream( env, obj_this, name, key, v, &aDataLog );
+#else
+    write_to_storage_stream( env, obj_this, name, key, v );
+#endif
 }




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

Reply via email to