new upstream release (3.3.0); modify package compatibility for Stretch
[ossec-hids.git] / src / headers / hash_op.h
old mode 100755 (executable)
new mode 100644 (file)
index fd3d842..8b27ad0
@@ -1,79 +1,57 @@
-/* @(#) $Id: hash_op.h,v 1.4 2009/06/24 17:06:26 dcid Exp $ */
-
 /* Copyright (C) 2009 Trend Micro Inc.
  * All rights reserved.
  *
  * This program is a free software; you can redistribute it
  * and/or modify it under the terms of the GNU General Public
- * License (version 3) as published by the FSF - Free Software
+ * License (version 2) as published by the FSF - Free Software
  * Foundation.
- *
- * License details at the LICENSE file included with OSSEC or
- * online at: http://www.ossec.net/en/licensing.html
  */
-/* Common API for dealing with directory trees */
-          
+
+/* Common API for dealing with hash operations */
 
 #ifndef _OS_HASHOP
 #define _OS_HASHOP
 
-
 /* Node structure */
-typedef struct _OSHashNode
-{
+typedef struct _OSHashNode {
     struct _OSHashNode *next;
-   
-    void *key;
-    void *data; 
-}OSHashNode;
 
+    char *key;
+    void *data;
+} OSHashNode;
 
-typedef struct _OSHash
-{
+typedef struct _OSHash {
     unsigned int rows;
     unsigned int initial_seed;
     unsigned int constant;
-    
-    OSHashNode **table;
-}OSHash;
-
-
-
-/** Prototypes **/
-
-
-/** OSHash *OSHash_Create();
- * Creates and initializes hash.
- */
-OSHash *OSHash_Create();
 
+    OSHashNode **table;
+} OSHash;
 
+/* Prototypes */
 
-/** void *OSHash_Free(OSHash *self)
- * Frees the memory used by the hash.
- */
-void *OSHash_Free(OSHash *self);
-  
+/* Create and initialize hash */
+OSHash *OSHash_Create(void);
 
+/* Free the memory used by the hash */
+void *OSHash_Free(OSHash *self) __attribute__((nonnull));
 
-/** void OSHash_Add(OSHash *hash, char *key, void *data)
- * Returns 0 on error.
+/* Returns 0 on error
  * Returns 1 on duplicated key (not added)
  * Returns 2 on success
- * Key must not be NULL.
+ * Key must not be NULL
  */
-int OSHash_Add(OSHash *hash, char *key, void *data);
-
+int OSHash_Add(OSHash *hash, const char *key, void *data) __attribute__((nonnull(1, 2)));
+int OSHash_Update(OSHash *hash, const char *key, void *data) __attribute__((nonnull(1, 2)));
+void *OSHash_Delete(OSHash *self, const char *key) __attribute__((nonnull));
 
-/** void *OSHash_Get(OSHash *self, char *key)
- * Returns NULL on error (key not found).
- * Returns the key otherwise.
- * Key must not be NULL.
+/* Returns NULL on error (key not found)
+ * Returns the key otherwise
+ * Key must not be NULL
  */
-void *OSHash_Get(OSHash *self, char *key);
+void *OSHash_Get(const OSHash *self, const char *key) __attribute__((nonnull));
 
+int OSHash_setSize(OSHash *self, unsigned int new_size) __attribute__((nonnull));
 
 #endif
 
-/* EOF */