obiblob_indexer.h 1.78 KB
Newer Older
Celine Mercier committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
/****************************************************************************
 * Blob indexer header file	                                                    *
 ****************************************************************************/

/**
 * @file obiblob_indexer.h
 * @author Celine Mercier
 * @date April 12th 2016
 * @brief Header file for the functions handling the indexing of values.
 */


#ifndef OBIBLOB_INDEXER_H_
#define OBIBLOB_INDEXER_H_


#include <stdlib.h>
#include <stdio.h>

#include "obidms.h"
#include "obiavl.h"
#include "obitypes.h"
#include "obiblob.h"


#define INDEXER_MAX_NAME AVL_MAX_NAME 			/**< Macro to refer to the maximum size of the name of an indexer structure.
 	 	 	 	 	 	 	 	 	 	 	 	 */


30 31 32
typedef struct OBIDMS_avl_group Obi_indexer;	/**< Typedef to refer to the used indexer structure.
 	 	 	 	 	 	 	 	 	 	 	 	 */
typedef OBIDMS_avl_group_p Obi_indexer_p; 		/**< Typedef to refer to the pointer of the used indexer structure.
Celine Mercier committed
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
 	 	 	 	 	 	 	 	 	 	 	 	 */


// TODO doc
inline int obi_indexer_exists(OBIDMS_p dms, const char* name)
{
	return obi_avl_exists(dms, name);
}


inline Obi_indexer_p obi_indexer(OBIDMS_p dms, const char* name)
{
	return obi_avl_group(dms, name);
}


inline Obi_indexer_p obi_create_indexer(OBIDMS_p dms, const char* name)
{
	return obi_create_avl_group(dms, name);
}


inline Obi_indexer_p obi_open_indexer(OBIDMS_p dms, const char* name)
{
	return obi_open_avl_group(dms, name);
}


inline int obi_close_indexer(Obi_indexer_p indexer)
{
	return obi_close_avl_group(indexer);
}


inline index_t obi_indexer_add(Obi_indexer_p indexer, Obi_blob_p value)
{
	return obi_avl_group_add(indexer, value);
}


inline Obi_blob_p obi_indexer_get(Obi_indexer_p indexer, index_t idx)
{
	return obi_avl_group_get(indexer, idx);
}


#endif /* OBIBLOB_INDEXER_H_ */