wps/src/main/webapp/R/utils/wpsStatus.R

102 lines
2.8 KiB
R
Executable File

# Copyright (C) 2014 52°North Initiative for Geospatial Open Source
# Software GmbH
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 as published
# by the Free Software Foundation.
#
# If the program is linked with libraries which are licensed under one of
# the following licenses, the combination of the program with the linked
# library is not considered a "derivative work" of the program:
#
# • Apache License, version 2.0
# • Apache Software License, version 1.0
# • GNU Lesser General Public License, version 3
# • Mozilla Public License, versions 1.0, 1.1 and 2.0
# • Common Development and Distribution License (CDDL), version 1.0
#
# Therefore the distribution of the program linked with libraries licensed
# under the aforementioned licenses, is permitted by the copyright holders
# if the distribution is compliant with both the GNU General Public
# License version 2 and the aforementioned licenses.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
# Public License for more details.
###############################################################################
wpsProgressVariable <- "wpsProgress"
wpsProgress <- 0
wpsProgressRange <- c(0, 100)
wpsProgressLogging <- TRUE
wpsProgressEnv <- new.env()
isWpsProgressLogSupported <- function() {
return(exists(wpsProgressVariable));
}
wpsProgressLog <- function(...) {
if(wpsProgressLogging) cat("[wps progress]", toString(Sys.time()), " > ",
..., "\n")
}
wpsSetProgress <- function(progress) {
assign(wpsProgressVariable, progress, envir = wpsProgressEnv)
wpsProgressLog("set to ", progress)
}
wpsGetProgress <- function(progress) {
.p <- get(wpsProgressVariable, envir = wpsProgressEnv)
return(.p)
}
wpsIncreaseProgress <- function(increase = 1) {
.p <- wpsGetProgress()
.p <- .p + increase
wpsSetProgress(.p)
return(.p)
}
wpsResetProgress <- function() {
wpsSetProgress(wpsProgressRange[1])
return(wpsGetProgress())
}
wpsGetProgressPercentage <- function() {
.p <- wpsGetProgress() / wpsProgressRange[2]
return(.p)
}
###############################################################################
# testing
# wps.off;
is.environment(wpsProgressEnv)
wpsResetProgress()
wpsSetProgress(50)
wpsGetProgress()
wpsGetProgressPercentage()
wpsSetProgress(42)
wpsGetProgress()
wpsGetProgressPercentage()
wpsIncreaseProgress()
wpsIncreaseProgress()
wpsIncreaseProgress()
wpsIncreaseProgress()
wpsIncreaseProgress()
wpsIncreaseProgress()
wpsGetProgressPercentage()
wpsIncreaseProgress(17)
wpsIncreaseProgress(17)
wpsGetProgressPercentage()
wpsResetProgress()
# wps.on;