Print

Print


Mixed-tag commit in lcio on MAIN & je20081114-nda
doc/versions.readme+9MAIN1.72 -> 1.73
src/aid/IO/ILCFactory.aid+22-19je20081114-nda1.1.20.2 -> 1.1.20.3
          /LCReader.aid+9MAIN1.13 -> 1.14
src/cpp/include/IOIMPL/LCFactory.h+14-12MAIN1.2 -> 1.3
src/cpp/include/SIO/SIOReader.h+2-1MAIN1.25 -> 1.26
src/cpp/src/EXAMPLE/dumpevent.cc+6-1MAIN1.10 -> 1.11
src/cpp/src/IOIMPL/LCFactory.cc+3-2MAIN1.2 -> 1.3
src/cpp/src/SIO/SIOReader.cc+5-2MAIN1.51 -> 1.52
src/java/hep/lcio/implementation/sio/SIOFactory.java+5MAIN1.5 -> 1.6
+75-37
9 modified files
direct (random) access made optional (C++); use LCFactory::createLCReader(LCReader::directAccess) ;

lcio/doc
versions.readme 1.72 -> 1.73
diff -u -r1.72 -r1.73
--- versions.readme	7 Nov 2008 15:58:05 -0000	1.72
+++ versions.readme	10 Dec 2008 08:10:59 -0000	1.73
@@ -3,6 +3,15 @@
 ---------------------------------------------------------------
 
 =====================
+ v01-11
+=====================
+  - direct (random) access made optional (C++):
+    use  LCFactory::getInstance()->createLCReader(LCReader::directAccess) if
+    direct access is need (default is off, i.e. 'no recreating of event map' 
+    when opening a file )
+
+
+=====================
 v01-10-03
 =====================
     - bug fix patch release:

lcio/src/aid/IO
ILCFactory.aid 1.1.20.2 -> 1.1.20.3
diff -u -r1.1.20.2 -r1.1.20.3
--- ILCFactory.aid	9 Dec 2008 11:32:31 -0000	1.1.20.2
+++ ILCFactory.aid	10 Dec 2008 08:10:59 -0000	1.1.20.3
@@ -1,8 +1,5 @@
 package hep.lcio.io;
 
-@ifdef cpp
-@cpp{class LCReader; }
-
 /**Factory to create LCWriter and Reader object for the known data 
  * formats, e.g. SIO. The implementation (LCFactory) will be a singleton class 
  * that knows all concrete reader/writer implementations.
@@ -12,20 +9,26 @@
  */
 public interface ILCFactory {
 
-    /**Creates an LCWriter object for the current persistency type.
-     */
-    public LCWriter* createLCWriter() ;
-    
-    /**Creates an LCReader object for the current persistency type.
-     */
-    public  LCReader* createLCReader(int lcReaderFlag=0) ;
-    
-    // @ifdef cpp
-    // @cpp{
-    //     virtual LCReader * createLCReader(const bool) = 0;
-    // }
-    // @else
-    //     public  LCReader* createLCReader() ;
-    // @endif
-    
+
+//     /** Returns the instance of the factory.
+//      * In the future we need to specify the data format here...
+//      * This doesn't work for java as an interface can't have static members ...
+//      */
+    // this needs more thought ....
+// @ifdef cpp
+// @cpp{ static LCFactory* getInstance() ;  
+// }
+// @else
+//     public  LCFactory getInstance() ;
+// @endif
+
+
+/**Creates an LCWriter object for the current persistency type.
+ */
+	public LCWriter* createLCWriter() ;
+	
+/**Creates an LCReader object for the current persistency type.
+ */
+	public  LCReader* createLCReader(int readerFlag=0) ;
+
 }

lcio/src/aid/IO
LCReader.aid 1.13 -> 1.14
diff -u -r1.13 -r1.14
--- LCReader.aid	21 Oct 2005 13:53:19 -0000	1.13
+++ LCReader.aid	10 Dec 2008 08:10:59 -0000	1.14
@@ -11,6 +11,15 @@
  */
 public interface LCReader {
 
+    /** Configuration flags for the LCReader instance - to be used with LCFactory::createLCReader(). */
+@ifdef cpp
+@cpp{
+    static const int directAccess =  0x00000001 << 0  ;
+}@else
+    public static const int directAccess = 0x00000001  ;
+@endif
+
+
     /** Opens a file for reading (read-only).
      *
      * @throws IOException

lcio/src/cpp/include/IOIMPL
LCFactory.h 1.2 -> 1.3
diff -u -r1.2 -r1.3
--- LCFactory.h	15 Apr 2005 08:37:40 -0000	1.2
+++ LCFactory.h	10 Dec 2008 08:10:59 -0000	1.3
@@ -1,13 +1,6 @@
 // -*- C++ -*-
-/**Factory to create LCWriter and Reader object for the known data 
- * formats, e.g. SIO. Singleton class 
- * that knows all concrete reader/writer implementations.
- * 
- * @author gaede
- * @version Mar 10, 2003
- */
-#ifndef IOIMPL_LCFACTORY_H
-#define IOIMPL_LCFACTORY_H 1
+#ifndef IOIMPL_LCFactory_h
+#define IOIMPL_LCFactory_h 1
 
 
 #include "IO/ILCFactory.h"
@@ -16,6 +9,13 @@
 
 namespace IOIMPL {
 
+/**Factory to create LCWriter and Reader object for the known data 
+ * formats, e.g. SIO. Singleton class 
+ * that knows all concrete reader/writer implementations.
+ * 
+ * @author gaede
+ * @version Mar 10, 2003
+ */
 class LCFactory : public IO::ILCFactory {
 
 
@@ -38,9 +38,11 @@
    */
   virtual IO::LCWriter * createLCWriter() ;
   
-  /**Creates an LCReader object for the current persistency type.
+  /** Creates an LCReader object for the current persistency type.
+   * lcReaderFlag: configuration options for the LCReader object -
+   * combine multible options with '|'. So far only LCReader::directAccess.
    */
-  virtual IO::LCReader * createLCReader() ;
+  virtual IO::LCReader * createLCReader(int lcReaderFlag=0 ) ;
 
 
 private:
@@ -49,4 +51,4 @@
 
 }; // class
 } // namespace IOIMPL
-#endif /* ifndef IOIMPL_LCFACTORY_H */
+#endif /* ifndef IOIMPL_LCFactory_h */

lcio/src/cpp/include/SIO
SIOReader.h 1.25 -> 1.26
diff -u -r1.25 -r1.26
--- SIOReader.h	16 Oct 2007 16:22:45 -0000	1.25
+++ SIOReader.h	10 Dec 2008 08:10:59 -0000	1.26
@@ -34,7 +34,7 @@
     
     /** Default constructor.
      */
-    SIOReader() ;
+    SIOReader( int lcReaderFlag=0 ) ;
     
     // Destructor
     virtual ~SIOReader() ;
@@ -179,6 +179,7 @@
     unsigned int _currentFileIndex ;
 
     EventMap _evtMap ;
+    const bool _readEventMap ;
 
   }; // class
 } // namespace

lcio/src/cpp/src/EXAMPLE
dumpevent.cc 1.10 -> 1.11
diff -u -r1.10 -r1.11
--- dumpevent.cc	28 May 2008 14:02:09 -0000	1.10
+++ dumpevent.cc	10 Dec 2008 08:10:59 -0000	1.11
@@ -1,4 +1,5 @@
 #include "lcio.h"
+#include <stdio.h>
 
 #include "IO/LCReader.h"
 #include "IMPL/LCTOOLS.h"
@@ -67,7 +68,11 @@
   CellIDDecoder<CalorimeterHit>::setDefaultEncoding("M:3,S-1:3,I:9,J:9,K-1:6") ;
   CellIDDecoder<RawCalorimeterHit>::setDefaultEncoding("M:3,S-1:3,I:9,J:9,K-1:6") ;
 
-  LCReader* lcReader = LCFactory::getInstance()->createLCReader() ;
+  LCReader* lcReader ;
+  if ( getenv ("LCIO_DIRECT_ACCESS") !=0  )
+    lcReader = LCFactory::getInstance()->createLCReader(LCReader::directAccess) ;
+  else
+    lcReader = LCFactory::getInstance()->createLCReader() ;
   
   LCEvent* evt(0) ;
 

lcio/src/cpp/src/IOIMPL
LCFactory.cc 1.2 -> 1.3
diff -u -r1.2 -r1.3
--- LCFactory.cc	15 Apr 2005 08:37:48 -0000	1.2
+++ LCFactory.cc	10 Dec 2008 08:10:59 -0000	1.3
@@ -41,9 +41,10 @@
     return new SIOWriter ;
   }
   
-  LCReader * LCFactory::createLCReader() { 
+  LCReader * LCFactory::createLCReader(int lcReaderFlag) {
+
     // so far we just create SIO objects
-    return new SIOReader ;
+    return new SIOReader( lcReaderFlag );
   }
   
   

lcio/src/cpp/src/SIO
SIOReader.cc 1.51 -> 1.52
diff -u -r1.51 -r1.52
--- SIOReader.cc	28 May 2008 14:02:09 -0000	1.51
+++ SIOReader.cc	10 Dec 2008 08:10:59 -0000	1.52
@@ -57,7 +57,8 @@
   
   //#define DEBUG 1
   
-  SIOReader::SIOReader() 
+  SIOReader::SIOReader( int lcReaderFlag ) :
+    _readEventMap( lcReaderFlag & LCReader::directAccess  )
     //     :     
     //     _myFilenames(0), 
     //     _currentFileIndex(0) 
@@ -187,7 +188,9 @@
 //     else
 //       eh->setEventPtr( _evtP ) ;
 
-    getEventMap() ;
+    if( _readEventMap ){
+        getEventMap() ;
+    }
 
   }
   

lcio/src/java/hep/lcio/implementation/sio
SIOFactory.java 1.5 -> 1.6
diff -u -r1.5 -r1.6
--- SIOFactory.java	4 Sep 2003 04:27:00 -0000	1.5
+++ SIOFactory.java	10 Dec 2008 08:10:59 -0000	1.6
@@ -25,7 +25,12 @@
    {
       return new SIOLCReader();
    }
+   public LCReader createLCReader(int lcReaderFlag)
+   { //fg: dumy implementation - could use readerFlag in the future (now only C++)
+      return new SIOLCReader();
+   }
 
+   
    public LCWriter createLCWriter()
    {
       return new SIOLCWriter();
CVSspam 0.2.8