text: /* Copyright 2018-2018 University Corporation for Atmospheric
     Research/Unidata. */
  
  /**
   * Functions for inferring dataset model
   * @author Dennis Heimbigner
   */
  
  #ifndef NCINFERMODEL_H
  #define NCINFERMODEL_H
  
  /* Track the information hat will help us
     infer how to access the data defined by
     path + omode + (sometimes) file content.
  */
  typedef struct NCmodel {
      int impl; /* NC_FORMATX_XXX value */
      int format; /* NC_FORMAT_XXX value; Used to remember extra info; */
  } NCmodel;
  
  /* Keep compiler quiet */
  struct NCURI;
  struct NC_dispatch;
  
  /* Infer model implementation */
  EXTERNL int NC_infermodel(const char* path, int* omodep, int iscreate, int useparallel, void* params, NCmodel* model, char** newpathp);
  
  /**
   * Provide a hidden interface to allow utilities
   * to check if a given path name is really a url.
   * If not, put null in basenamep, else put basename of the url
   * minus any extension into basenamep; caller frees.
   * Return 1 if it looks like a url, 0 otherwise.
   */
  EXTERNL int nc__testurl(const char* path, char** basenamep);
  
  #endif /*NCINFERMODEL_H*/
  