/*************** Reader VPI ***********************/

/********** Reader types ***********/
#define vpiTrvsObj 	     800 /* Data traverse object */
#define vpiCollection	     810 /* Collection of VPI handle	*/
#define vpiObjCollection     811 /* Collection of traversable design objs      */
#define vpiTrvsCollection    812 /* Collection of vpiTrvsObjs	       */

/********* Reader methods *********/

/* Check */
#define vpiIsLoaded 	     820 /* Object data is loaded check */
#define vpiHasDataVC	     821 /* Traverse object has at least one VC	at some point 
				  * in time in the database check */
#define vpiHasVC	     822 /* Has VC at specific time check */ 
#define vpiHasNoValue	     823 /* Has no value at specific time check */
#define vpiBelong	     824 /* Belongs to extension check */

/* Access */
#define vpiAccessLimitedInteractive  830 /* Interactive	access */
#define vpiAccessInteractive	     831 /* interactive with history access */
#define vpiAccessPostProcess	     832 /* Database access */
/* Member of a collection */
#define vpiMember		     840 /* Member of a collection */
/* Iteration on instances for loaded */
#define vpiDataLoaded		     850 /* Use in vpi_iterate() */

/* Control Traverse/Check Time */
#define vpiMinTime                   860 /* Min time  */
#define vpiMaxTime		     864 /* Max time  */
#define vpiPrevVC 		     868 /* Previous Value Change (VC) */
#define vpiNextVC 		     870 /* Next Value Change (VC) */
#define vpiTime		 	     874  /* Time jump */

/********** routines **********/

PLI_INT32 vpi_load_extension PROTO_PARAMS((PLI_BYTE8 *extension_name, ...)) /* In its general form */
     
/********** Reader routines **********/
PLI_INT32 vpi_load_extension PROTO_PARAMS((PLI_BYTE8 *extension_name, 
					   PLI_BYTE8 *name,
					   vpiType mode, ...)) /* for the reader extension */
     
PLI_INT32 vpi_close PROTO_PARAMS((PLI_INT32 tool, vpiType prop, PLI_BYTE8* name));
PLI_INT32 vpi_load_init PROTO_PARAMS((vpiHandle objCollection, vpiHandle scope, PLI_INT32 level));
PLI_INT32 vpi_load PROTO_PARAMS((vpiHandle h));
PLI_INT32 vpi_unload PROTO_PARAMS((vpiHandle h));
vpiHandle vpi_create PROTO_PARAMS((vpiType prop, vpiHandle h, vpiHandle obj));
vpiHandle vpi_goto PROTO_PARAMS((vpiType prop, vpiHandle obj, p_vpi_time time_p, PLI_INT32 *ret_code));
vpiHandle vpi_filter PROTO_PARAMS((vpiHandle h, PLI_INT32 ft, PLI_INT32 flag));

