You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by sa...@apache.org on 2011/10/04 16:00:37 UTC

svn commit: r1178796 - in /directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/log/impl: DefaultLog.java LogScannerInternal.java

Author: saya
Date: Tue Oct  4 14:00:36 2011
New Revision: 1178796

URL: http://svn.apache.org/viewvc?rev=1178796&view=rev
Log:
an implementation for the Log interface 

Added:
    directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/log/impl/DefaultLog.java
    directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/log/impl/LogScannerInternal.java

Added: directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/log/impl/DefaultLog.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/log/impl/DefaultLog.java?rev=1178796&view=auto
==============================================================================
--- directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/log/impl/DefaultLog.java (added)
+++ directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/log/impl/DefaultLog.java Tue Oct  4 14:00:36 2011
@@ -0,0 +1,64 @@
+
+package org.apache.directory.server.log.impl;
+
+import java.io.IOException;
+
+import org.apache.directory.server.log.InvalidLogException;
+import org.apache.directory.server.log.Log;
+import org.apache.directory.server.log.LogAnchor;
+import org.apache.directory.server.log.LogScanner;
+import org.apache.directory.server.log.UserLogRecord;
+
+public class DefaultLog implements Log
+{
+    /** Log manager */
+    LogManager logManager;
+    
+    /** Log File Manager */
+    LogFileManager logFileManager;
+    
+    
+    /** LogFlushManager */
+    LogFlushManager logFlushManager;
+    
+    /**
+     * {@inheritDoc}
+     */
+   public void init( String logFilepath, String suffix, int logBufferSize, long logFileSize ) throws IOException, InvalidLogException
+   {
+       logFileManager = new DefaultLogFileManager();
+       logFileManager.init( logFilepath, suffix );
+       
+       logManager = new LogManager( logFileManager );
+       logManager.initLogManager();
+       
+       logFlushManager = new LogFlushManager( logManager, logBufferSize, logFileSize );
+   }
+    
+   /**
+    * {@inheritDoc}
+    */
+    public void log( UserLogRecord userRecord, boolean sync ) throws IOException, InvalidLogException
+    {
+        logFlushManager.append( userRecord, sync );
+    }
+    
+    
+    /**
+     * {@inheritDoc}
+     */
+    public LogScanner beginScan( LogAnchor startPoint )
+    {
+        LogScannerInternal logScanner = new DefaultLogScanner();
+        logScanner.init( startPoint, logFileManager );
+        return logScanner;
+    }
+    
+    /**
+     * {@inheritDoc}
+     */
+    public void advanceMinNeededLogPosition( LogAnchor newAnchor )
+    {
+       logManager.advanceMinLogAnchor( newAnchor ); 
+    }
+}

Added: directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/log/impl/LogScannerInternal.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/log/impl/LogScannerInternal.java?rev=1178796&view=auto
==============================================================================
--- directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/log/impl/LogScannerInternal.java (added)
+++ directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/log/impl/LogScannerInternal.java Tue Oct  4 14:00:36 2011
@@ -0,0 +1,16 @@
+
+package org.apache.directory.server.log.impl;
+
+import org.apache.directory.server.log.LogScanner;
+import org.apache.directory.server.log.LogAnchor;
+
+public interface LogScannerInternal extends LogScanner
+{
+    /**
+     * Initializes the scanner
+     *
+     * @param startingPoint
+     * @param logFileManager log file manager to use 
+     */
+    public void init( LogAnchor startingPoint, LogFileManager logFileManager );
+}