made general utility methods and struct initializers publicly available
authorrichterm <richterm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 13 Nov 2007 07:33:25 +0000 (07:33 +0000)
committerrichterm <richterm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 13 Nov 2007 07:33:25 +0000 (07:33 +0000)
HLT/BASE/AliHLTComponent.cxx
HLT/BASE/AliHLTComponent.h

index 5e0d379..fb8c920 100644 (file)
@@ -231,11 +231,49 @@ void AliHLTComponent::DataType2Text( const AliHLTComponentDataType& type, char o
   strncat( output, type.fID, kAliHLTComponentDataTypefIDsize );
 }
 
-string AliHLTComponent::DataType2Text( const AliHLTComponentDataType& type )
+string AliHLTComponent::DataType2Text( const AliHLTComponentDataType& type, int mode)
 {
   // see header file for function documentation
   string out("");
-  
+
+  if (mode==2) {
+    int i=0;
+    char tmp[8];
+    for (i=0; i<kAliHLTComponentDataTypefOriginSize; i++) {
+      sprintf(tmp, "'%d", type.fOrigin[i]);
+      out+=tmp;
+    }
+    out+="':'";
+    for (i=0; i<kAliHLTComponentDataTypefIDsize; i++) {
+      sprintf(tmp, "%d'", type.fID[i]);
+      out+=tmp;
+    }
+    return out;
+  }
+
+  if (mode==1) {
+    int i=0;
+    char tmp[8];
+    for (i=0; i<kAliHLTComponentDataTypefOriginSize; i++) {
+      unsigned char* puc=(unsigned char*)type.fOrigin;
+      if ((puc[i])<32)
+       sprintf(tmp, "'\\%x", type.fOrigin[i]);
+      else
+       sprintf(tmp, "'%c", type.fOrigin[i]);
+      out+=tmp;
+    }
+    out+="':'";
+    for (i=0; i<kAliHLTComponentDataTypefIDsize; i++) {
+      unsigned char* puc=(unsigned char*)type.fID;
+      if (puc[i]<32)
+       sprintf(tmp, "\\%x'", type.fID[i]);
+      else
+       sprintf(tmp, "%c'", type.fID[i]);
+      out+=tmp;
+    }
+    return out;
+  }
+
   if (type==kAliHLTVoidDataType) {
     out="VOID:VOID";
   } else {
@@ -363,7 +401,7 @@ void AliHLTComponent::PrintDataTypeContent(AliHLTComponentDataType& dt, const ch
             dt.fOrigin[3]);
 }
 
-void AliHLTComponent::FillBlockData( AliHLTComponentBlockData& blockData ) const
+void AliHLTComponent::FillBlockData( AliHLTComponentBlockData& blockData )
 {
   // see header file for function documentation
   blockData.fStructSize = sizeof(blockData);
@@ -375,7 +413,7 @@ void AliHLTComponent::FillBlockData( AliHLTComponentBlockData& blockData ) const
   blockData.fSpecification = kAliHLTVoidDataSpec;
 }
 
-void AliHLTComponent::FillShmData( AliHLTComponentShmData& shmData ) const
+void AliHLTComponent::FillShmData( AliHLTComponentShmData& shmData )
 {
   // see header file for function documentation
   shmData.fStructSize = sizeof(shmData);
@@ -383,7 +421,7 @@ void AliHLTComponent::FillShmData( AliHLTComponentShmData& shmData ) const
   shmData.fShmID = gkAliHLTComponentInvalidShmID;
 }
 
-void AliHLTComponent::FillDataType( AliHLTComponentDataType& dataType ) const
+void AliHLTComponent::FillDataType( AliHLTComponentDataType& dataType )
 {
   // see header file for function documentation
   dataType=kAliHLTAnyDataType;
@@ -399,18 +437,8 @@ void AliHLTComponent::CopyDataType(AliHLTComponentDataType& tgtdt, const AliHLTC
 void AliHLTComponent::SetDataType(AliHLTComponentDataType& tgtdt, const char* id, const char* origin) 
 {
   // see header file for function documentation
-  tgtdt.fStructSize = sizeof(AliHLTComponentDataType);
-  memset(&tgtdt.fID[0], 0, kAliHLTComponentDataTypefIDsize);
-  memset(&tgtdt.fOrigin[0], 0, kAliHLTComponentDataTypefOriginSize);
-
-  if ((int)strlen(id)>kAliHLTComponentDataTypefIDsize) {
-    HLTWarning("data type id %s is too long, truncated to %d", id, kAliHLTComponentDataTypefIDsize);
-  }
+  tgtdt=kAliHLTVoidDataType;
   strncpy(&tgtdt.fID[0], id, kAliHLTComponentDataTypefIDsize);
-
-  if ((int)strlen(origin)>kAliHLTComponentDataTypefOriginSize) {
-    HLTWarning("data type origin %s is too long, truncated to %d", origin, kAliHLTComponentDataTypefOriginSize);
-  }
   strncpy(&tgtdt.fOrigin[0], origin, kAliHLTComponentDataTypefOriginSize);
 }
 
index 9c640f7..f413e37 100644 (file)
@@ -407,8 +407,12 @@ class AliHLTComponent : public AliHLTLogging {
 
   /**
    * Helper function to convert the data type to a string.
+   * @param type        data type structure
+   * @param mode        0 print string origin:type          <br>
+   *                    1 print chars                       <br>
+   *                    2 print numbers
    */
-  static string DataType2Text( const AliHLTComponentDataType& type );
+  static string DataType2Text( const AliHLTComponentDataType& type, int mode=0);
 
   /**
    * Helper function to print content of data type.
@@ -428,6 +432,47 @@ class AliHLTComponent : public AliHLTLogging {
   void PrintComponentDataTypeInfo(const AliHLTComponentDataType& dt);
 
   /**
+   * Fill AliHLTComponentBlockData structure with default values.
+   * @param blockData   reference to data structure
+   */
+  static void FillBlockData( AliHLTComponentBlockData& blockData );
+
+  /**
+   * Fill AliHLTComponentShmData structure with default values.
+   * @param shmData   reference to data structure
+   */
+  static void FillShmData( AliHLTComponentShmData& shmData );
+
+  /**
+   * Fill AliHLTComponentDataType structure with default values.
+   * @param dataType   reference to data structure
+   */
+  static void FillDataType( AliHLTComponentDataType& dataType );
+  
+  /**
+   * Copy data type structure
+   * Copies the value an AliHLTComponentDataType structure to another one
+   * @param[out] tgtdt   target structure
+   * @param[in] srcdt   source structure
+   */
+  static void CopyDataType(AliHLTComponentDataType& tgtdt, const AliHLTComponentDataType& srcdt);
+
+  /**
+   * Set the ID and Origin of an AliHLTComponentDataType structure.
+   * The function sets the fStructureSize member and copies the strings
+   * to the ID and Origin. Only characters from the valid part of the string
+   * are copied, the rest is fille with 0's.
+   * Please note that the fID and fOrigin members are not strings, just arrays of
+   * chars of size @ref kAliHLTComponentDataTypefIDsize and
+   * @ref kAliHLTComponentDataTypefOriginSize respectively and not necessarily with
+   * a terminating zero.
+   * @param tgtdt   target data type structure
+   * @param id      ID string
+   * @param origin  Origin string
+   */
+  static void SetDataType(AliHLTComponentDataType& tgtdt, const char* id, const char* origin);
+
+  /**
    * Stopwatch type for benchmarking.
    */
   enum AliHLTStopwatchType {
@@ -514,47 +559,6 @@ class AliHLTComponent : public AliHLTLogging {
  protected:
 
   /**
-   * Fill AliHLTComponentBlockData structure with default values.
-   * @param blockData   reference to data structure
-   */
-  void FillBlockData( AliHLTComponentBlockData& blockData ) const;
-
-  /**
-   * Fill AliHLTComponentShmData structure with default values.
-   * @param shmData   reference to data structure
-   */
-  void FillShmData( AliHLTComponentShmData& shmData ) const;
-
-  /**
-   * Fill AliHLTComponentDataType structure with default values.
-   * @param dataType   reference to data structure
-   */
-  void FillDataType( AliHLTComponentDataType& dataType ) const;
-  
-  /**
-   * Copy data type structure
-   * Copies the value an AliHLTComponentDataType structure to another one
-   * @param[out] tgtdt   target structure
-   * @param[in] srcdt   source structure
-   */
-  void CopyDataType(AliHLTComponentDataType& tgtdt, const AliHLTComponentDataType& srcdt);
-
-  /**
-   * Set the ID and Origin of an AliHLTComponentDataType structure.
-   * The function sets the fStructureSize member and copies the strings
-   * to the ID and Origin. Only characters from the valid part of the string
-   * are copied, the rest is fille with 0's.
-   * Please note that the fID and fOrigin members are not strings, just arrays of
-   * chars of size @ref kAliHLTComponentDataTypefIDsize and
-   * @ref kAliHLTComponentDataTypefOriginSize respectively and not necessarily with
-   * a terminating zero.
-   * @param tgtdt   target data type structure
-   * @param id      ID string
-   * @param origin  Origin string
-   */
-  void SetDataType(AliHLTComponentDataType& tgtdt, const char* id, const char* origin);
-
-  /**
    * Default method for the internal initialization.
    * The method is called by @ref Init
    */