Ensures normalization on waitfe/fc-xml operations
[anna.git] / include / anna / core / functions.hpp
index 0ceb358..78fe13b 100644 (file)
@@ -103,22 +103,6 @@ struct functions {
   */
   static std::string asString(const unsigned int number) throw();
 
-  /**
-     \param number Numero a convertir.
-     @return Un literal con el numero sin signo convertido a cadena decimal.
-  */
-  static std::string asString(const unsigned long long int number) throw() {
-    return asString((U64)number);
-  }
-
-  /**
-     \param number Numero a convertir.
-     @return Un literal con el numero sin signo convertido a cadena decimal.
-  */
-  static std::string asString(const long long int number) throw() {
-    return asString((S64)number);
-  }
-
   /**
      Devuelve un literal con tel numero convertido a cadena decimal
      @return Un literal con el numero signo convertido a cadena decimal.
@@ -320,18 +304,6 @@ struct functions {
   */
   static S64 hash(const std::string& str) throw() { return hash(str.c_str()); }
 
-  /**
-     Calcula la funcion hash exclusive de la cadena recibida como parametro.
-     \param str Cadena a la que aplicar la funcion hash exclusiva.
-  */
-  static unsigned long exclusiveHash(const std::string& str) throw() { return st_stringExclusiveHash.calcule(str); }
-
-  /**
-     Calcula la funcion hash exclusive de la cadena recibida como parametro.
-     \param str Cadena a la que aplicar la funcion hash exclusiva.
-  */
-  static unsigned long exclusiveHash(const char* str) throw() { return st_stringExclusiveHash.calcule(std::string(str)); }
-
   /**
      Devuelve la cadena que contiene el resultado de aplicar la especificacion \em format
      sobre el resto de los parametros.
@@ -423,7 +395,7 @@ struct functions {
       // Note that CLOCK_MONOTONIC is subject to discontinuities from system time
       //  adjustment in Linux. CLOCK_MONOTONIC_RAW was defined to get around this
       //  (gets hardware time not adjusted by NTP).
-    clock_gettime(CLOCK_MONOTONIC_RAW, &ts); // works
+    clock_gettime(CLOCK_MONOTONIC, &ts); // works
 
     Microsecond result((Microsecond::type_t)1000000 * ts.tv_sec + ts.tv_nsec / 1000);
     return result;
@@ -663,25 +635,6 @@ struct functions {
     return functions::componentByName<T> (T::getClassName(), fromFile, fromLine);
   }
 
-
-  /**
-   * Gets exclusive hash for string provided on integer range
-   *
-   * @param str String hashed
-   *
-   * @return Hash unique value
-   */
-  static int exclusiveHashInt(const std::string& str) throw() { return st_string2intExclusiveHash.calcule(str); }
-
-  /**
-   * Gets exclusive hash for string (char pointer) provided on integer range
-   *
-   * @param str String hashed
-   *
-   * @return Hash unique value
-   */
-  static int exclusiveHashInt(const char* str) throw() { return st_string2intExclusiveHash.calcule(std::string(str)); }
-
   /**
      Finds string at the end of another
 
@@ -1145,9 +1098,38 @@ struct functions {
   */
   static void codeIsupNumber(const isup_number_t & isupNumber, bool calledOrCalling, std::string & target) throw(RuntimeException);
 
-private:
-  static ExclusiveHash <std::string> st_stringExclusiveHash;
-  static ExclusiveHash <std::string, int> st_string2intExclusiveHash;
+  /**
+  * Base64 encoding
+  *
+  * @param str String to be encoded
+  *
+  * @return Returns encoded representation
+  */
+  static std::string encodeBase64(const U8* buf, unsigned int bufLen);
+  static std::string encodeBase64(const std::string & str)
+  {
+    return encodeBase64((const U8 *)str.c_str(), str.size());
+  }
+
+  /**
+  * Base64 decoding
+  *
+  * @param encodedString Encoded base64 representation
+  *
+  * @return Returns decoded representation
+  */
+  static std::string decodeBase64(const std::string & encodedString);
+
+
+  /*
+  * Reads a file into passed string
+  *
+  * @param pathfile Path file to read
+  * @param content String where file content is dump
+  *
+  * @return success for read operation
+  */
+  static bool getContentFromFile(const std::string &pathfile, std::string &content) throw(anna::RuntimeException);
 };
 
 }