R/readCelHeader.R
ddd48129
 readCelHeader <- function(filename) {
     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     # Validate arguments
     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     # Argument 'filename':
     if(length(filename) != 1) {
       stop("Argument 'filename' should be a single file: ", 
                                             paste(filename, collapse=", "));
     }
     # Expand '~' pathnames to full pathnames.
     filename <- file.path(dirname(filename), basename(filename));
     if (!file.exists(filename)) {
       stop("Cannot read CEL file header. File not found: ", filename);
     }
 
     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     # Reading CEL header
     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
4bd60283
     res <- .Call("R_affx_get_cel_file_header", filename, PACKAGE="affxparser");
 
     # Sanity check
     if (is.null(res)) {
       stop("Failed to read CEL file header: ", filename);
     }
 
     res;
ddd48129
 } # readCelHeader()
4bd60283
 
 
 ############################################################################
 # HISTORY:
 # 2011-11-18
 # o ROBUSTNESS: Added sanity check that the native code did not return NULL.
 ############################################################################