
#ifndef VECTOR_H
#define VECTOR_H

#include "defines.h"

#define ALLOC_SIZE		64

	enum vector_type { Channel = 1, Group, Machine, Merge, ToPo, ALL };

typedef struct {
	MemHandle data;
	UInt32 used_size;
	UInt32 num_elements;
	UInt32 element_size;
	enum vector_type type;
} Vector;


//  Function Prototypes
Err InitVector(Vector *v, Int32 type) DATA_SECTION;
Err DeleteVector(Vector v) DATA_SECTION;
Err ResizeVector(Vector *v) DATA_SECTION;
Err AddElement(Vector *v, MemHandle newElement, UInt32 pos) DATA_SECTION;
Err GetElement(Vector *v, MemHandle *retVal, UInt32 pos) DATA_SECTION;	
Err UpdateElement(Vector *v, MemHandle updatedElement, UInt32 pos) DATA_SECTION;
Err DeleteElement(Vector *v, UInt32 pos) DATA_SECTION;
Int32 GetElementLocation(Vector *v, MemHandle check) DATA_SECTION;

#endif