obiblob_indexer.h 1.64 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 30 31 32 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
/****************************************************************************
 * 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.
 	 	 	 	 	 	 	 	 	 	 	 	 */


typedef OBIDMS_avl_group_p Obi_indexer_p; 		/**< Typedef to refer to the used indexer structure.
 	 	 	 	 	 	 	 	 	 	 	 	 */


// 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_ */