/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef OCURI_H #define OCURI_H /*! This is an open structure meaning it is ok to directly access its fields*/ typedef struct OCURI { char* uri; /* as passed by the caller */ char* protocol; char* user; /* from user:password@ */ char* password; /* from user:password@ */ char* host; /*!< host*/ char* port; /*!< host */ char* file; /*!< file */ char* constraint; /*!< projection+selection */ char* projection; /*!< without leading '?'*/ char* selection; /*!< with leading '&'*/ char* params; /* all params */ char** paramlist; /*! entry not found. Empty value should be represented as a zero length string */ extern const char* ocurilookup(OCURI*, const char* param); extern char* ocuriencode(char* s, char* allowable); extern char* ocuridecode(char* s); extern char* ocuridecodeonly(char* s, char*); #endif /*OCURI_H*/