#include "MPSServer_defs.h"

#define BLOCK_LIST_ITEM_DATATYPE operation_data
#define BLOCK_LIST_KEY_DATATYPE u_long

#undef BLOCK_LIST_PRINT_ERROR_MSG

#define BLOCK_LIST_CREATE_CALLBACK operation_list_Create_Callback
#define BLOCK_LIST_DELETE_CALLBACK operation_list_Delete_Callback

#define BLOCK_LIST_ITEM_KEY .operation_id
#define BLOCK_LIST_PREFIX operation_list

#define BLOCK_LIST operation_list_Block_List
#define _BLOCK_LIST_ _operation_list_Block_List_

#define BLOCK_LIST_KEY(m,n) ( (m).Entries[n].operation_id )

#define BLOCK_LIST_FIND_BLOCK operation_list_FindBlock
#define BLOCK_LIST_FIND_ENTRY_IN_BLOCK operation_list_FindEntryInBlock
#define BLOCK_LIST_FIND_ENTRY_EQUAL operation_list_FindEntryEqual
#undef BLOCK_LIST_FIND_ENTRY_EQUAL_OR_HIGHER
#undef BLOCK_LIST_FIND_ENTRY_EQUAL_OR_LOWER
#undef BLOCK_LIST_FIND_ENTRY_FIRST
#undef BLOCK_LIST_FIND_ENTRY_HIGHER
#undef BLOCK_LIST_FIND_ENTRY_LAST
#undef BLOCK_LIST_FIND_INDEX
#define BLOCK_LIST_FOREACH operation_list_ForEach
#define BLOCK_LIST_INSERT_ENTRY_INTO_BLOCK operation_list_InsertEntryIntoBlock
#define BLOCK_LIST_INSERT operation_list_Insert
#define BLOCK_LIST_DELETE operation_list_Delete
#define BLOCK_LIST_DELETE_ALL operation_list_DeleteAll

	#include "block_list_inc.h"

#undef BLOCK_LIST_ITEM_DATATYPE
#undef BLOCK_LIST_KEY_DATATYPE

#undef BLOCK_LIST_PRINT_ERROR_MSG

#undef BLOCK_LIST_CREATE_CALLBACK
#undef BLOCK_LIST_DELETE_CALLBACK

#undef BLOCK_LIST_ITEM_KEY
#undef BLOCK_LIST_PREFIX

#undef BLOCK_LIST
#undef _BLOCK_LIST_

#undef BLOCK_LIST_KEY

#undef BLOCK_LIST_FIND_BLOCK
#undef BLOCK_LIST_FIND_ENTRY_IN_BLOCK
#undef BLOCK_LIST_FIND_ENTRY_EQUAL
#undef BLOCK_LIST_FIND_ENTRY_EQUAL_OR_HIGHER
#undef BLOCK_LIST_FIND_ENTRY_EQUAL_OR_LOWER
#undef BLOCK_LIST_FIND_ENTRY_FIRST
#undef BLOCK_LIST_FIND_ENTRY_HIGHER
#undef BLOCK_LIST_FIND_ENTRY_LAST
#undef BLOCK_LIST_FIND_INDEX
#undef BLOCK_LIST_FOREACH
#undef BLOCK_LIST_INSERT_ENTRY_INTO_BLOCK
#undef BLOCK_LIST_INSERT
#undef BLOCK_LIST_DELETE
#undef BLOCK_LIST_DELETE_ALL
