glib-unix: add function to ensure an fd is sealed
[platform/upstream/glib.git] / glib / gchecksum.h
index efa0e1b..af32757 100644 (file)
  * Library General Public License for more details.
  *
  * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * License along with this library; if not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef __G_CHECKSUM_H__
 #define __G_CHECKSUM_H__
 
+#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
+#error "Only <glib.h> can be included directly."
+#endif
+
 #include <glib/gtypes.h>
+#include <glib/gbytes.h>
 
 G_BEGIN_DECLS
 
@@ -30,42 +33,68 @@ G_BEGIN_DECLS
  * @G_CHECKSUM_MD5: Use the MD5 hashing algorithm
  * @G_CHECKSUM_SHA1: Use the SHA-1 hashing algorithm
  * @G_CHECKSUM_SHA256: Use the SHA-256 hashing algorithm
+ * @G_CHECKSUM_SHA512: Use the SHA-512 hashing algorithm
  *
  * The hashing algorithm to be used by #GChecksum when performing the
  * digest of some data.
  *
- * The #GChecksumType enumeration can be extended at later date to include
- * new hashing algorithm types.
+ * Note that the #GChecksumType enumeration may be extended at a later
+ * date to include new hashing algorithm types.
  *
  * Since: 2.16
  */
 typedef enum {
   G_CHECKSUM_MD5,
   G_CHECKSUM_SHA1,
-  G_CHECKSUM_SHA256
+  G_CHECKSUM_SHA256,
+  G_CHECKSUM_SHA512
 } GChecksumType;
 
+/**
+ * GChecksum:
+ *
+ * An opaque structure representing a checksumming operation.
+ * To create a new GChecksum, use g_checksum_new(). To free
+ * a GChecksum, use g_checksum_free().
+ *
+ * Since: 2.16
+ */
 typedef struct _GChecksum       GChecksum;
 
-gssize                g_checksum_type_get_length (GChecksumType checksum_type);
+GLIB_AVAILABLE_IN_ALL
+gssize                g_checksum_type_get_length    (GChecksumType    checksum_type);
+
+GLIB_AVAILABLE_IN_ALL
+GChecksum *           g_checksum_new                (GChecksumType    checksum_type);
+GLIB_AVAILABLE_IN_ALL
+void                  g_checksum_reset              (GChecksum       *checksum);
+GLIB_AVAILABLE_IN_ALL
+GChecksum *           g_checksum_copy               (const GChecksum *checksum);
+GLIB_AVAILABLE_IN_ALL
+void                  g_checksum_free               (GChecksum       *checksum);
+GLIB_AVAILABLE_IN_ALL
+void                  g_checksum_update             (GChecksum       *checksum,
+                                                     const guchar    *data,
+                                                     gssize           length);
+GLIB_AVAILABLE_IN_ALL
+const gchar *         g_checksum_get_string         (GChecksum       *checksum);
+GLIB_AVAILABLE_IN_ALL
+void                  g_checksum_get_digest         (GChecksum       *checksum,
+                                                     guint8          *buffer,
+                                                     gsize           *digest_len);
 
-GChecksum *           g_checksum_new        (GChecksumType     checksum_type);
-GChecksum *           g_checksum_copy       (const GChecksum  *checksum);
-void                  g_checksum_free       (GChecksum        *checksum);
-void                  g_checksum_update     (GChecksum        *checksum,
-                                             const guchar     *data,
-                                             gsize             length);
-G_CONST_RETURN gchar *g_checksum_get_string (GChecksum        *checksum);
-void                  g_checksum_get_digest (GChecksum        *checksum,
-                                             guint8           *buffer,
-                                             gsize            *digest_len);
+GLIB_AVAILABLE_IN_ALL
+gchar                *g_compute_checksum_for_data   (GChecksumType    checksum_type,
+                                                     const guchar    *data,
+                                                     gsize            length);
+GLIB_AVAILABLE_IN_ALL
+gchar                *g_compute_checksum_for_string (GChecksumType    checksum_type,
+                                                     const gchar     *str,
+                                                     gssize           length);
 
-gchar *g_compute_checksum_for_data   (GChecksumType  checksum_type,
-                                      const guchar  *data,
-                                      gsize          length);
-gchar *g_compute_checksum_for_string (GChecksumType  checksum_type,
-                                      const gchar   *str,
-                                      gsize          length);
+GLIB_AVAILABLE_IN_2_34
+gchar                *g_compute_checksum_for_bytes  (GChecksumType    checksum_type,
+                                                     GBytes          *data);
 
 G_END_DECLS