Mercurial > repos > prog > lcmsmatching
diff RemotedbConn.R @ 1:45e985cd8e9e draft
planemo upload for repository https://github.com/workflow4metabolomics/lcmsmatching.git commit d4048accde6bdfd5b3e14f5394902d38991854f8-dirty
| author | prog |
|---|---|
| date | Tue, 31 Jan 2017 05:27:24 -0500 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/RemotedbConn.R Tue Jan 31 05:27:24 2017 -0500 @@ -0,0 +1,48 @@ +if ( ! exists('RemotedbConn')) { + + ##################### + # CLASS DECLARATION # + ##################### + + RemotedbConn <- methods::setRefClass("RemotedbConn", contains = "BiodbConn", fields = list(.scheduler = "UrlRequestScheduler", .token = "character")) + + ############### + # CONSTRUCTOR # + ############### + + RemotedbConn$methods( initialize = function(useragent = NA_character_, scheduler = NULL, token = NA_character_, ...) { + + # Check useragent + ( ! is.null(useragent) && ! is.na(useragent)) || stop("You must specify a valid useragent string (e.g.: \"myapp ; my.email@address\").") + + # Set token + .token <<- token + + # Set scheduler + if (is.null(scheduler)) + scheduler <- UrlRequestScheduler$new(n = 3) + inherits(scheduler, "UrlRequestScheduler") || stop("The scheduler instance must inherit from UrlRequestScheduler class.") + scheduler$setUserAgent(useragent) # set agent + .scheduler <<- scheduler + + callSuper(...) # calls super-class initializer with remaining parameters + }) + + ########### + # GET URL # + ########### + + RemotedbConn$methods( .get.url = function(url) { + .self$.print.debug.msg(paste0("Sending URL request '", url, "'...")) + return(.self$.scheduler$getUrl(url)) + }) + + ########### + # GET URL # + ########### + + RemotedbConn$methods( .set.useragent = function(useragent) { + .scheduler$setUserAgent(useragent) # set agent + }) + +}
