001    /**
002     * Implements the Cold Fusion Function gettickcount
003     */
004    package railo.runtime.functions.other;
005    
006    import railo.runtime.PageContext;
007    import railo.runtime.exp.FunctionException;
008    import railo.runtime.ext.function.Function;
009    
010    public final class GetTickCount implements Function {
011            public static double call(PageContext pc) {
012                    return System.currentTimeMillis();
013            }
014            public static double call(PageContext pc,String unit) throws FunctionException {
015                    unit=unit.trim();
016                    if("nano".equalsIgnoreCase(unit))
017                            return System.nanoTime();
018                    else if("milli".equalsIgnoreCase(unit))
019                            return System.currentTimeMillis();
020                    else if("second".equalsIgnoreCase(unit))
021                            return System.currentTimeMillis()/1000;
022                    else 
023                            throw new FunctionException(pc, "GetTickCount", 1, "type", "invalid value ["+unit+"], valid values are (nano,milli,second)");
024            }
025    }