added AddBlock version with non-const argument to avoid pointer missmatch without...
authorrichterm <richterm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 6 Feb 2008 07:07:24 +0000 (07:07 +0000)
committerrichterm <richterm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 6 Feb 2008 07:07:24 +0000 (07:07 +0000)
HLT/BASE/HOMER/AliHLTHOMERWriter.h

index 71eb694..e98bcee 100644 (file)
@@ -85,13 +85,35 @@ class AliHLTHOMERWriter : public AliHLTMonitoringWriter
          */
        void Clear();
 
-       void AddBlock( const void* descriptor, const void* data );
+        /**
+         * Add a data block to the writer.
+         * @param homerHeader    pointer to the header describing the block
+         */
+       void AddBlock( const void* homerHeader, const void* data );
+
+        /**
+         * Add a data block to the writer.
+         * The function has certainly been introduced to make type
+         * conversion easier. In fact it makes it worse. The presence of the
+         * function with void* argument leads to a wrong interpretation when
+         * passing a non const pointer to HOMERBlockDescriptor. Then the
+         * other function is called directly, leading to pointer mess up.
+         */
        void AddBlock( const HOMERBlockDescriptor* descriptor, const void* data )
                {
                AddBlock( descriptor->GetHeader(), data );
                }
 
         /**
+         * Add a data block to the writer.
+         * Function added to avoid potential pointer mismatches
+         */
+       void AddBlock( HOMERBlockDescriptor* descriptor, const void* data )
+               {
+               AddBlock( descriptor->GetHeader(), data );
+               }
+
+        /**
          * Get the total buffer size required to write all data into one buffer
          */
        homer_uint32 GetTotalMemorySize( bool includeData = true );