aboutsummaryrefslogtreecommitdiff
path: root/vendor/voclient/voapps/voAppsP.h
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/voclient/voapps/voAppsP.h')
-rw-r--r--vendor/voclient/voapps/voAppsP.h255
1 files changed, 255 insertions, 0 deletions
diff --git a/vendor/voclient/voapps/voAppsP.h b/vendor/voclient/voapps/voAppsP.h
new file mode 100644
index 00000000..268bf3d6
--- /dev/null
+++ b/vendor/voclient/voapps/voAppsP.h
@@ -0,0 +1,255 @@
+/**
+ * VOAPPSP.h -- Internal declarations for the VOClient Package applications.
+ *
+ * @file voAppsP.h
+ * @author Mike Fitzpatrick
+ * @date 6/03/11
+ *
+ * @brief Internal declarations for the VOClient Package applications.
+ */
+
+
+#ifndef SZ_LINE
+#define SZ_LINE 4096
+#endif
+#ifndef SZ_URL
+#define SZ_URL 1024
+#endif
+#define DEF_SR 0.1
+
+
+
+/* Local processing definitions.
+*/
+#define MAX_DOWNLOADS 8 /* max downloads to run */
+#define MAX_THREADS 128 /* max threads to run */
+#define MAX_PROCS 64 /* max processes to run */
+#define DEF_DOWNLOADS 1 /* default no. downloads to run */
+#define DEF_NTHREADS 16 /* default num threads to run */
+#define DEF_NPROCS 10 /* default num processes to run */
+#define DEF_PGID 6200 /* default process group id */
+
+#define SZ_TARGET 64 /* size of target name */
+#define DEF_SIZE 0.1 /* default search size (deg) */
+
+#ifndef FAILED_ONLY
+#define FAILED_ONLY 1 /* summarize only failed procs? */
+#endif
+
+/* NVO tool contexts.
+*/
+#define CX_DATA 0001 /* DAL data access */
+#define CX_REGISTRY 0002 /* Registry resolution */
+#define CX_SESAME 0004 /* Object name resolution */
+#define CX_INVENTORY 0010 /* Data Inventory */
+
+/* Output file formats.
+*/
+#define F_ASCII 0001 /* ASCII table */
+#define F_RAW 0002 /* Raw VOTable */
+#define F_CSV 0004 /* Comma-separated-values */
+#define F_TSV 0010 /* Tab-separated-values */
+#define F_FITS 0020 /* FITS binary table */
+#define F_HTML 0040 /* HTML table */
+#define F_KML 0100 /* KML placemark table */
+#define F_XML 0200 /* XML document */
+#define F_META 0400 /* Metadata listing */
+
+/* Service Types.
+*/
+#define SVC_CONE 0001 /* Cone search service type */
+#define SVC_SIAP 0002 /* SIAP service */
+#define SVC_SSAP 0004 /* SSAP service */
+#define SVC_VIZIER 0010 /* Vizier TabularSkyService */
+#define SVC_SKYNODE 0020 /* Skynode */
+#define SVC_OTHER 0040 /* Other type of service */
+
+/* Table pretty-print defs
+*/
+#define PP_WIDTH 40
+#define PP_OFFSET 40
+#define PP_MAXCHARS 256
+
+/* Registry query buffers
+*/
+#define SZ_SQL_TERM 4096
+#define SZ_RESULT 40960
+
+/* Range constants.
+*/
+#define RANGE_ALL -1
+#define RANGE_NONE -2
+#define MAX_RANGES 1024
+
+/* Data type codes.
+*/
+#define DT_ANY 000 /* Any or not-specified */
+#define DT_CATALOG 001 /* Catalog data */
+#define DT_IMAGE 002 /* Image data */
+#define DT_SPECTRA 004 /* Spectral data */
+#define DT_RADIO 010 /* Radio data */
+#define DT_EVENT 020 /* Event-based data */
+
+
+/* Extraction types
+*/
+#define EX_NONE 0000 /* No extractions */
+#define EX_ALL 0777 /* Generate all files */
+#define EX_BOTH 0001 /* Get positions and acrefs */
+#define EX_SAVE 0002 /* Save intermediate results */
+#define EX_COLLECT 0004 /* Collect intermediate results */
+#define EX_POS 0010 /* Get positions only */
+#define EX_ACREF 0020 /* Get acrefs only */
+#define EX_HTML 0040 /* Generate HTML table */
+#define EX_KML 0100 /* Generate KML file */
+#define EX_XML 0200 /* Generate XML document */
+
+/* Error codes
+*/
+#define E_NONE 0 /* No Error */
+#define E_NODATA 1 /* No Data Returned */
+#define E_REQFAIL 2 /* Request Failed */
+#define E_FILOPEN 3 /* File Open Error */
+#define E_VOCINIT 4 /* VOClient init failed */
+
+
+
+
+/* Utility macros.
+*/
+#define VOT_NEXTARG(argc,argv,i) {if(i+1>=argc||(strlen(argv[i+1])>1&&argv[i+1][0]=='-'&&(!isdigit(argv[i+1][1])))){fprintf(stderr,"Error: Option '%s' requires an argument\n",argv[i]);break;}}
+
+
+typedef int (*PFI)(); /* ptr to func returning an int */
+
+#ifdef max
+#undef max
+#endif
+#define max(a,b) (((a)>(b))?(a):(b))
+
+#ifdef min
+#undef min
+#endif
+#define min(a,b) (((a)<(b))?(a):(b))
+
+#ifdef abs
+#undef abs
+#endif
+#define abs(a) (((a)<0)?-(a):(a))
+
+
+/*************************************************************************
+** Service calling params.
+*/
+typedef struct {
+ /* Input params. */
+ char service_url[SZ_LINE]; /* base service URL */
+ char identifier[SZ_LINE]; /* service identifier */
+ char name[SZ_LINE]; /* service short name */
+ char oname[SZ_LINE]; /* object name */
+ char title[SZ_LINE]; /* object name */
+ char band[SZ_LINE]; /* BAND param (SSA) */
+ char time[SZ_LINE]; /* TIME param (SSA) */
+ int type; /* service type */
+ int etype; /* extraction type */
+ double ra; /* J2000 RA (dec. degrees) */
+ double dec; /* J2000 Dec (dec. degrees) */
+ float sr; /* search radius (degrees) */
+ int fmt; /* output format */
+ int index; /* output index */
+ int svc_index; /* output service index */
+ int obj_index; /* output object index */
+} svcParams;
+
+
+/*************************************************************************
+** Object/Position params.
+*/
+typedef struct {
+ char name[SZ_FNAME]; /* object name */
+ char id[SZ_FNAME]; /* object ID */
+ double ra; /* Right Ascension (J200) */
+ double dec; /* Declination (J200) */
+ int index; /* list index */
+ void *next; /* linked list pointer */
+} Object;
+
+
+/*************************************************************************
+** Range specification used for row/column selection.
+*/
+typedef struct {
+ char rstring[SZ_FNAME]; /* range string */
+ int ranges[MAX_RANGES]; /* expanded range array */
+ int nvalues; /* num. values in range string */
+} Range;
+
+Range colRange; /* column selection range */
+Range rowRange; /* row selection range */
+Range fileRange; /* acref selection range */
+
+
+/*************************************************************************
+** AccessReference or URL params.
+*/
+
+#define AC_PENDING 1
+#define AC_WORKING 2
+#define AC_COMPLETE 3
+#define AC_ERROR -1
+
+typedef struct {
+ char url[SZ_LINE]; /* AcRef or URL */
+ char fname[SZ_FNAME]; /* saved output file name */
+ long nbytes; /* size of result */
+ int status; /* error status */
+ int index; /* list index */
+ void *next; /* linked list pointer */
+} Acref;
+
+
+/*************************************************************************
+** Process call list for results summary.
+*/
+typedef struct {
+ pid_t pid; /* process pid */
+ Object *obj; /* Object */
+ int status; /* return status */
+ int count; /* query result count */
+ char root[SZ_FNAME]; /* root file name */
+ void *svc; /* back-pointer */
+ void *next; /* linked list pointer */
+} Proc;
+
+
+/*************************************************************************
+** DAL Service params. Each service is comprised of a service URL that
+** represents a specific type of DAL service. Once processed, the 'proc'
+** list will contain summary information on each request and the 'acList'
+** will contain all the images that need to be downloaded. Column and
+** row selection are applied to each request, the download are done following
+** the queries so we can parallelize them across all requested services.
+*/
+typedef struct {
+ char name[SZ_FNAME]; /* service short name */
+ char service_url[SZ_LINE]; /* base service URL */
+ char identifier[SZ_LINE]; /* service identifier */
+ char title[SZ_LINE]; /* service title string */
+ int type; /* service type */
+ int (*func)(svcParams *p); /* function to call */
+ int cached; /* cached resource (NYI) */
+
+ int count; /* query result total count */
+ int index; /* list index */
+
+ Proc *proc; /* process results list */
+ int nfailed; /* no. of failed requests */
+ int nnodata; /* no. of failed requests */
+
+ Acref *acList; /* acref list for service */
+ int nrefs; /* no. of acrefs to download */
+
+ void *next; /* linked list pointer */
+} Service;
+
+