ADC Advanced Policy Expressions

TIME_AT

Treats a number value as number of seconds since GMT Jan 1

1970 0h 0m 0s.

This topic lists the expressions that are provided by this class.

Note:Expressions with the *symbol are inherited/promoted from num_at.

* ABS

Return the absolute value of the number.

Returns: num_at

* ADD(double_ati)

Return the Double Value after adding the argument to the

current double value.

Parameters:

i -

                        Double

Returns: double_at

* ADD(ip_address_ati)

Return the Unsigned Long after adding the argument to the

current unsigned long value.

Parameters:

i -

                        Unsigned Long

Returns: unsigned_long_at

* ADD(unsigned_long_ati)

Return the Unsigned Long after adding the argument to the

current unsigned long value.

Parameters:

i -

                        Unsigned Long

Returns: unsigned_long_at

* ADD(num_ati)

Return the Number Value after adding the argument to the

current number value.

Parameters:

i -

                        Number

Returns: num_at

* ADD(time_ati)

Return the Unsigned Long after adding the argument to the

current unsigned long value.

Parameters:

i -

                        Unsigned Long

Returns: unsigned_long_at

APPEND(text_tstr)

Appends the given string to the string representation of the current

time value.

Parameters:

str -

                        the string to append.

Returns: text_t

* AS_MICROSEC_STR

Returns the current system time in the following format

Format: Wday, day Month year hh:mm:ss.ffffff GMT

     ffffff represents microseconds

Examples:

Mon, 05 Mar 2018 10:23:36.568419 GMT

Returns: text_t

* AS_MILLISEC_STR

Returns the current system time in the following format

Format: Wday, day Month year hh:mm:ss.fff GMT

     fff represents milliseconds

Examples:

Mon, 05 Mar 2018 10:23:36.568 GMT

Returns: text_t

* AS_NANOSEC_STR

Returns the current system time in the following format

Format: Wday, day Month year hh:mm:ss.fffffffff GMT

     fffffffff represents nanoseconds

Accuracy may be at larger granularity than nanosecond resolution.

Examples:

Mon, 05 Mar 2018 10:23:36.568419567 GMT

Returns: text_t

* BETWEEN(double_ati, double_atj)

Returns Boolean TRUE if the double value is greater than or

equal to the Lower argument and the double value is lesser

than or equal to the Upper argument.

Parameters:

i -

                        Lower

j -

                        Upper

Returns: bool_at

* BETWEEN(double_ati, ip_address_atj)

Returns Boolean TRUE if the double value is greater than or

equal to the Lower argument and the double value is lesser

than or equal to the Upper argument.

Parameters:

i -

                        Lower

j -

                        Upper

Returns: bool_at

* BETWEEN(double_ati, unsigned_long_atj)

Returns Boolean TRUE if the double value is greater than or

equal to the Lower argument and the double value is lesser

than or equal to the Upper argument.

Parameters:

i -

                        Lower

j -

                        Upper

Returns: bool_at

* BETWEEN(ip_address_ati, double_atj)

Returns Boolean TRUE if the double value is greater than or

equal to the Lower argument and the double value is lesser

than or equal to the Upper argument.

Parameters:

i -

                        Lower

j -

                        Upper

Returns: bool_at

* BETWEEN(ip_address_ati, ip_address_atj)

Returns Boolean TRUE if the unsigned long value is greater than or

equal to the Lower argument and the unsigned long value is lesser

than or equal to the Upper argument.

Parameters:

i -

                        Lower

j -

                        Upper

Returns: bool_at

* BETWEEN(ip_address_ati, unsigned_long_atj)

Returns Boolean TRUE if the unsigned long value is greater than or

equal to the Lower argument and the unsigned long value is lesser

than or equal to the Upper argument.

Parameters:

i -

                        Lower

j -

                        Upper

Returns: bool_at

* BETWEEN(unsigned_long_ati, double_atj)

Returns Boolean TRUE if the double value is greater than or

equal to the Lower argument and the double value is lesser

than or equal to the Upper argument.

Parameters:

i -

                        Lower

j -

                        Upper

Returns: bool_at

* BETWEEN(unsigned_long_ati, ip_address_atj)

Returns Boolean TRUE if the unsigned long value is greater than or

equal to the Lower argument and the unsigned long value is lesser

than or equal to the Upper argument.

Parameters:

i -

                        Lower

j -

                        Upper

Returns: bool_at

* BETWEEN(unsigned_long_ati, unsigned_long_atj)

Returns Boolean TRUE if the unsigned long value is greater than or

equal to the Lower argument and the unsigned long value is lesser

than or equal to the Upper argument.

Parameters:

i -

                        Lower

j -

                        Upper

Returns: bool_at

* BETWEEN(double_ati, num_atj)

Returns Boolean TRUE if the double value is greater than or

equal to the Lower argument and the double value is lesser

than or equal to the Upper argument.

Parameters:

i -

                        Lower

j -

                        Upper

Returns: bool_at

* BETWEEN(ip_address_ati, num_atj)

Returns Boolean TRUE if the unsigned long value is greater than or

equal to the Lower argument and the unsigned long value is lesser

than or equal to the Upper argument.

Parameters:

i -

                        Lower

j -

                        Upper

Returns: bool_at

* BETWEEN(unsigned_long_ati, num_atj)

Returns Boolean TRUE if the unsigned long value is greater than or

equal to the Lower argument and the unsigned long value is lesser

than or equal to the Upper argument.

Parameters:

i -

                        Lower

j -

                        Upper

Returns: bool_at

* BETWEEN(double_ati, time_atj)

Returns Boolean TRUE if the double value is greater than or

equal to the Lower argument and the double value is lesser

than or equal to the Upper argument.

Parameters:

i -

                        Lower

j -

                        Upper

Returns: bool_at

* BETWEEN(ip_address_ati, time_atj)

Returns Boolean TRUE if the unsigned long value is greater than or

equal to the Lower argument and the unsigned long value is lesser

than or equal to the Upper argument.

Parameters:

i -

                        Lower

j -

                        Upper

Returns: bool_at

* BETWEEN(unsigned_long_ati, time_atj)

Returns Boolean TRUE if the unsigned long value is greater than or

equal to the Lower argument and the unsigned long value is lesser

than or equal to the Upper argument.

Parameters:

i -

                        Lower

j -

                        Upper

Returns: bool_at

* BETWEEN(num_ati, double_atj)

Returns Boolean TRUE if the double value is greater than or

equal to the Lower argument and the double value is lesser

than or equal to the Upper argument.

Parameters:

i -

                        Lower

j -

                        Upper

Returns: bool_at

* BETWEEN(num_ati, ip_address_atj)

Returns Boolean TRUE if the unsigned long value is greater than or

equal to the Lower argument and the unsigned long value is lesser

than or equal to the Upper argument.

Parameters:

i -

                        Lower

j -

                        Upper

Returns: bool_at

* BETWEEN(num_ati, unsigned_long_atj)

Returns Boolean TRUE if the unsigned long value is greater than or

equal to the Lower argument and the unsigned long value is lesser

than or equal to the Upper argument.

Parameters:

i -

                        Lower

j -

                        Upper

Returns: bool_at

* BETWEEN(num_ati, num_atj)

Returns Boolean TRUE if the number value is greater than or

equal to the Lower argument and the number value is lesser

than or equal to the Upper argument.

Parameters:

i -

                        Lower

j -

                        Upper

Returns: bool_at

* BETWEEN(num_ati, time_atj)

Returns Boolean TRUE if the unsigned long value is greater than or

equal to the Lower argument and the unsigned long value is lesser

than or equal to the Upper argument.

Parameters:

i -

                        Lower

j -

                        Upper

Returns: bool_at

BETWEEN(time_attime1, time_attime2)

Results in a Boolean TRUE value if the time value is between

the Lower and the Upper time arguments. Both the Lower and

the Upper time arguments must be fully specified.

For example -

GMT 1995 Jan is fully specified. But GMT Jan or GMT 1995 20

or GMT Jan Mon_2 are not fully specified. The Upper and

Lower arguments must be both GMT or both Local. The day of

the week must not be present in either the Lower or the

Upper argument. It is OK to specify the day of the month as

the 1st, 2nd, 3rd or 4th weekday of the month (example Wed_3

is the 3rd Wednesday of the month).

The Upper Time argument must be bigger than the Lower Time

argument.

Assume the current time value is GMT 2005 May 1

10h 15m 30s. This is the 1st Sunday of the month of May in 2005.

BETWEEN(GMT 2004, GMT 2006): TRUE BETWEEN(GMT 2004 Jan, GMT 2006 Nov): TRUE BETWEEN(GMT 2004 Jan, GMT 2006): TRUE BETWEEN(GMT 2005 May Sun_1, GMT 2005 May Sun_3): TRUE BETWEEN(GMT 2005 May 1, GMT May 2005 1): TRUE BETWEEN(LOCAL 2005 May 1, LOCAL May 2005 1): Answer depends

on the Citrix ADC system's timezone.

Parameters(expressions not allowed):

time1 -

                        Lower Time

time2 -

                        Upper Time

Returns: bool_at

* BETWEEN(time_ati, double_atj)

Returns Boolean TRUE if the double value is greater than or

equal to the Lower argument and the double value is lesser

than or equal to the Upper argument.

Parameters:

i -

                        Lower

j -

                        Upper

Returns: bool_at

* BETWEEN(time_ati, ip_address_atj)

Returns Boolean TRUE if the unsigned long value is greater than or

equal to the Lower argument and the unsigned long value is lesser

than or equal to the Upper argument.

Parameters:

i -

                        Lower

j -

                        Upper

Returns: bool_at

* BETWEEN(time_ati, unsigned_long_atj)

Returns Boolean TRUE if the unsigned long value is greater than or

equal to the Lower argument and the unsigned long value is lesser

than or equal to the Upper argument.

Parameters:

i -

                        Lower

j -

                        Upper

Returns: bool_at

* BETWEEN(time_ati, num_atj)

Returns Boolean TRUE if the unsigned long value is greater than or

equal to the Lower argument and the unsigned long value is lesser

than or equal to the Upper argument.

Parameters:

i -

                        Lower

j -

                        Upper

Returns: bool_at

BETWEEN(time_attime1, time_attime2)

Returns Boolean TRUE if the time value is greater than or

equal to the Lower argument and the time value is lesser

than or equal to the Upper argument.

Parameters:

time1 -

                        Lower GMT Time Value

time2 -

                        Upper GMT Time Value

Returns: bool_at

* BITAND(ip_address_ati)

Return the Unsigned Long Value after bitwise ANDing the argument to

the current unsigned long value.

Parameters:

i -

                        Unsigned Long

Returns: unsigned_long_at

* BITAND(unsigned_long_ati)

Return the Unsigned Long Value after bitwise ANDing the argument to

the current unsigned long value.

Parameters:

i -

                        Unsigned Long

Returns: unsigned_long_at

* BITAND(num_ati)

Return the Number Value after bitwise ANDing the argument to the

current number value.

Parameters:

i -

                        Number

Returns: num_at

* BITAND(time_ati)

Return the Unsigned Long Value after bitwise ANDing the argument to

the current unsigned long value.

Parameters:

i -

                        Unsigned Long

Returns: unsigned_long_at

* BITNEG

Return the Number Value after bitwise negating the current number

value.

Returns: num_at

* BITOR(ip_address_ati)

Return the Unsigned Long Value after bitwise ORing the argument to

the current unsigned long value.

Parameters:

i -

                        Unsigned Long

Returns: unsigned_long_at

* BITOR(unsigned_long_ati)

Return the Unsigned Long Value after bitwise ORing the argument to

the current unsigned long value.

Parameters:

i -

                        Unsigned Long

Returns: unsigned_long_at

* BITOR(num_ati)

Return the Number Value after bitwise ORing the argument to the

current number value.

Parameters:

i -

                        Number

Returns: num_at

* BITOR(time_ati)

Return the Unsigned Long Value after bitwise ORing the argument to

the current unsigned long value.

Parameters:

i -

                        Unsigned Long

Returns: unsigned_long_at

* BITXOR(ip_address_ati)

Return the Unsigned Long Value after bitwise XORing the argument to

the current unsigned long value.

Parameters:

i -

                        Unsigned Long

Returns: unsigned_long_at

* BITXOR(unsigned_long_ati)

Return the Unsigned Long Value after bitwise XORing the argument to

the current unsigned long value.

Parameters:

i -

                        Unsigned Long

Returns: unsigned_long_at

* BITXOR(num_ati)

Return the Number Value after bitwise XORing the argument to the

current number value.

Parameters:

i -

                        Number

Returns: num_at

* BITXOR(time_ati)

Return the Unsigned Long Value after bitwise XORing the argument to

the current unsigned long value.

Parameters:

i -

                        Unsigned Long

Returns: unsigned_long_at

DAY

Extracts the day of the month from the current system time, and

returns that value as a number from 1 through 31 representing that

day.

Returns: num_at

* DIV(double_ati)

Return the Double Value after dividing the current double

value by the argument.

Parameters:

i -

                        Double

Returns: double_at

* DIV(ip_address_ati)

Return the Unsigned Long Value after dividing the current unsigned

long value by the argument.

Parameters:

i -

                        Unsigned Long

Returns: unsigned_long_at

* DIV(unsigned_long_ati)

Return the Unsigned Long Value after dividing the current unsigned

long value by the argument.

Parameters:

i -

                        Unsigned Long

Returns: unsigned_long_at

* DIV(num_ati)

Return the Number Value after dividing the current number

value by the argument.

Parameters:

i -

                        Number

Returns: num_at

* DIV(time_ati)

Return the Unsigned Long Value after dividing the current unsigned

long value by the argument.

Parameters:

i -

                        Unsigned Long

Returns: unsigned_long_at

* EQ(double_ati)

Returns Boolean TRUE if the double value is equal to

the argument.

Parameters:

i -

                        Double

Returns: bool_at

* EQ(ip_address_ati)

Returns Boolean TRUE if the unsigned long is equal to the argument.

Parameters:

i -

                        Unsigned Long

Returns: bool_at

* EQ(unsigned_long_ati)

Returns Boolean TRUE if the unsigned long is equal to the argument.

Parameters:

i -

                        Unsigned Long

Returns: bool_at

* EQ(num_ati)

Returns Boolean TRUE if the number value is equal to

the argument.

Parameters:

i -

                        Number

Returns: bool_at

EQ(time_att)

Results in Boolean TRUE value if the time value is

equal to the argument time.

Assume the current time

value is GMT 2005 May 1 10h 15m 30s. This is the 1st Sunday

of the month of May in 2005.

EQ(GMT 2005): TRUE EQ(GMT 2005 Dec): FALSE EQ(Local 2005 May): TRUE or FALSE depending on the current

timezone. EQ(GMT 10h): TRUE EQ(GMT 10h 30s): TRUE EQ(GMT May 10h): TRUE EQ(GMT Sun): TRUE EQ(GMT May Sun_1): TRUE

Parameters(expressions not allowed):

t -

                        Time

Returns: bool_at

EQ(time_att)

Results in Boolean TRUE value if the time value is

equal to the argument GMT time value.

Parameters:

t -

                        GMT Time Value

Returns: bool_at

* GE(double_ati)

Returns Boolean TRUE if the double value is greater than or

equal to the argument.

Parameters:

i -

                        Double

Returns: bool_at

* GE(ip_address_ati)

Returns Boolean TRUE if the unsigned long value is greater than or

equal to the argument.

Parameters:

i -

                        Unsigned Long

Returns: bool_at

* GE(unsigned_long_ati)

Returns Boolean TRUE if the unsigned long value is greater than or

equal to the argument.

Parameters:

i -

                        Unsigned Long

Returns: bool_at

* GE(num_ati)

Returns Boolean TRUE if the number value is greater than or

equal to the argument.

Parameters:

i -

                        Number

Returns: bool_at

GE(time_att)

Results in Boolean TRUE value if the time value is greater

than or equal to the argument time.

Assume the current time

value is GMT 2005 May 1 10h 15m 30s. This is the 1st Sunday

of the month of May in 2005.

GE(GMT 2004): TRUE GE(GMT 2005 Jan): TRUE GE(Local 2005 May): TRUE or FALSE depending on the current

timezone. GE(GMT 8h): TRUE GE(GMT 30m): FALSE GE(GMT May 10h): TRUE GE(GMT May 10h 0m): TRUE GE(GMT Sun): TRUE GE(GMT May Sun_1): TRUE

Parameters(expressions not allowed):

t -

                        Time

Returns: bool_at

GE(time_att)

Results in Boolean TRUE value if the time value is

greater than or equal to the argument GMT time value.

Parameters:

t -

                        GMT Time Value

Returns: bool_at

* GT(double_ati)

Returns Boolean TRUE if the double value is greater than the

argument.

Parameters:

i -

                        Double

Returns: bool_at

* GT(ip_address_ati)

Returns Boolean TRUE if the unsigned long value is greater than the

argument.

Parameters:

i -

                        Unsigned Long

Returns: bool_at

* GT(unsigned_long_ati)

Returns Boolean TRUE if the unsigned long value is greater than the

argument.

Parameters:

i -

                        Unsigned Long

Returns: bool_at

* GT(num_ati)

Returns Boolean TRUE if the number value is greater than the

argument.

Parameters:

i -

                        Number

Returns: bool_at

GT(time_att)

Results in Boolean TRUE value if the time value is greater

than the argument time.

Assume the current time value is GMT

2005 May 1 10h 15m 30s. This is the 1st Sunday of the month

of May in 2005.

GT(GMT 2004): TRUE GT(GMT 2005 Jan): TRUE GT(Local 2005 May): TRUE or FALSE depending on the current

timezone. GT(GMT 8h): TRUE GT(GMT 30m): FALSE GT(GMT May 10h): FALSE GT(GMT May 10h 0m): TRUE GT(GMT Sun): FALSE GT(GMT May Sun_1): FALSE

Parameters(expressions not allowed):

t -

                        Time

Returns: bool_at

GT(time_att)

Results in Boolean TRUE value if the time value is

greater than the argument GMT time value.

Parameters:

t -

                        GMT Time Value

Returns: bool_at

HOURS

Extracts the hour from the current system time, and returns that

value as an integer from 0 to 23.

Returns: num_at

* LE(double_ati)

Returns Boolean TRUE if the double value is lesser than or

equal to the argument.

Parameters:

i -

                        Double

Returns: bool_at

* LE(ip_address_ati)

Returns Boolean TRUE if the unsigned long value is lesser than or

equal to the argument.

Parameters:

i -

                        Unsigned Long

Returns: bool_at

* LE(unsigned_long_ati)

Returns Boolean TRUE if the unsigned long value is lesser than or

equal to the argument.

Parameters:

i -

                        Unsigned Long

Returns: bool_at

* LE(num_ati)

Returns Boolean TRUE if the number value is lesser than or

equal to the argument.

Parameters:

i -

                        Number

Returns: bool_at

LE(time_att)

Results in Boolean TRUE value if the time value is lesser

than or equal to the argument time.

Assume the current time

value is GMT 2005 May 1 10h 15m 30s. This is the 1st Sunday

of the month of May in 2005.

LE(GMT 2006): TRUE LE(GMT 2005 Dec): TRUE LE(Local 2005 May): TRUE or FALSE depending on the current

timezone. LE(GMT 8h): FALSE LE(GMT 30m): TRUE LE(GMT May 10h): TRUE LE(GMT Jun 11h): TRUE LE(GMT Wed): TRUE LE(GMT May Sun_1): TRUE

Parameters(expressions not allowed):

t -

                        Time

Returns: bool_at

LE(time_att)

Results in Boolean TRUE value if the time value is

less than or equal to the argument GMT time value.

Parameters:

t -

                        GMT Time Value

Returns: bool_at

* LSHIFT(uint i)

Return the Number Value after bitwise left shifting the current

number value by the argument number of bits. Note that the number

of bits shifted is i modulo 32. For example,

let HTTP.REQ.URL.LENGTH be 4. Then,

HTTP.REQ.URL.LENGTH.LSHIFT(1) = HTTP.REQ.URL.LENGTH.LSHIFT(33) = 8,

since 33 on division by 32 yields a remainder of 1.

Parameters:

i -

                        Left Shift Length

Returns: num_at

* LT(double_ati)

Returns Boolean TRUE if the double value is lesser than

the argument.

Parameters:

i -

                        Double

Returns: bool_at

* LT(ip_address_ati)

Returns Boolean TRUE if the unsigned long value is lesser than

the argument.

Parameters:

i -

                        Unsigned Long

Returns: bool_at

* LT(unsigned_long_ati)

Returns Boolean TRUE if the unsigned long value is lesser than

the argument.

Parameters:

i -

                        Unsigned Long

Returns: bool_at

* LT(num_ati)

Returns Boolean TRUE if the number value is lesser than

the argument.

Parameters:

i -

                        Number

Returns: bool_at

LT(time_att)

Results in Boolean TRUE value if the time value is lesser

than the argument time.

Assume the current time

value is GMT 2005 May 1 10h 15m 30s. This is the 1st Sunday

of the month of May in 2005.

LT(GMT 2006): TRUE LT(GMT 2005 Dec): TRUE LT(Local 2005 May): TRUE or FALSE depending on the current

timezone. LT(GMT 8h): FALSE LT(GMT 30m): TRUE LT(GMT May 10h): FALSE LT(GMT Jun 11h): TRUE LT(GMT Wed): TRUE LT(GMT May Sun_1): FALSE

Parameters(expressions not allowed):

t -

                        Time

Returns: bool_at

LT(time_att)

Results in Boolean TRUE value if the time value is

less than the argument GMT time value.

Parameters:

t -

                        GMT Time Value

Returns: bool_at

* MAX(double_ati)

Return the maximum double value after comparing

the argument with the current double value.

Parameters:

i -

                        Double

Returns: double_at

* MAX(ip_address_ati)

Return the maximum unsigned long value after comparing the argument

value to the current unsigned long value.

Parameters:

i -

                        Unsigned Long

Returns: unsigned_long_at

* MAX(unsigned_long_ati)

Return the maximum unsigned long value after comparing the argument

value to the current unsigned long value.

Parameters:

i -

                        Unsigned Long

Returns: unsigned_long_at

* MAX(num_ati)

Return the maximum value after comparing the argument

with the current number value.

Parameters:

i -

                        Number

Returns: num_at

* MAX(time_ati)

Return the maximum unsigned long value after comparing the argument

value to the current unsigned long value.

Parameters:

i -

                        Unsigned Long

Returns: unsigned_long_at

MINUTES

Extracts the minute from the current system time, and returns that

value as an integer from 0 to 59.

Returns: num_at

* MIN(double_ati)

Return the minimum double value after comparing

the argument with the current double value.

Parameters:

i -

                        Double

Returns: double_at

* MIN(ip_address_ati)

Return the minimum unsigned long value after comparing the argument

value to the current unsigned long value.

Parameters:

i -

                        Unsigned Long

Returns: unsigned_long_at

* MIN(unsigned_long_ati)

Return the minimum unsigned long value after comparing the argument

value to the current unsigned long value.

Parameters:

i -

                        Unsigned Long

Returns: unsigned_long_at

* MIN(num_ati)

Return the minimum value after comparing the argument

with the current number value.

Parameters:

i -

                        Number

Returns: num_at

* MIN(time_ati)

Return the minimum unsigned long value after comparing the argument

value to the current unsigned long value.

Parameters:

i -

                        Unsigned Long

Returns: unsigned_long_at

* MOD(ip_address_ati)

Return the Unsigned Long Value that is the renaminder after dividing

the current unsigned long value by the argument.

Parameters:

i -

                        Unsigned Long

Returns: unsigned_long_at

* MOD(unsigned_long_ati)

Return the Unsigned Long Value that is the renaminder after dividing

the current unsigned long value by the argument.

Parameters:

i -

                        Unsigned Long

Returns: unsigned_long_at

* MOD(num_ati)

Return the Number Value that is the renaminder after dividing the

current number value by the argument.

Parameters:

i -

                        Number

Returns: num_at

* MOD(time_ati)

Return the Unsigned Long Value that is the renaminder after dividing

the current unsigned long value by the argument.

Parameters:

i -

                        Unsigned Long

Returns: unsigned_long_at

MONTH

Extracts the month from the current system time, and returns that

value as an integer from 1 (January) to 12 (December).

Returns: num_at

* MUL(double_ati)

Return the Double Value after multiplying the argument to the

current double value.

Parameters:

i -

                        Double

Returns: double_at

* MUL(ip_address_ati)

Return the Unsigned Long Value after multiplying the argument to the

current unsigned long value.

Parameters:

i -

                        Unsigned Long

Returns: unsigned_long_at

* MUL(unsigned_long_ati)

Return the Unsigned Long Value after multiplying the argument to the

current unsigned long value.

Parameters:

i -

                        Unsigned Long

Returns: unsigned_long_at

* MUL(num_ati)

Return the Number Value after multiplying the argument to the

current number value.

Parameters:

i -

                        Number

Returns: num_at

* MUL(time_ati)

Return the Unsigned Long Value after multiplying the argument to the

current unsigned long value.

Parameters:

i -

                        Unsigned Long

Returns: unsigned_long_at

* NEG

Return the Number Value after negating the current number

value.

Returns: num_at

* NE(double_ati)

Returns Boolean TRUE if the double value is not equal to

the argument.

Parameters:

i -

                        Double

Returns: bool_at

* NE(ip_address_ati)

Returns Boolean TRUE if the unsigned long value is not equal to

the argument.

Parameters:

i -

                        Unsigned Long

Returns: bool_at

* NE(unsigned_long_ati)

Returns Boolean TRUE if the unsigned long value is not equal to

the argument.

Parameters:

i -

                        Unsigned Long

Returns: bool_at

* NE(num_ati)

Returns Boolean TRUE if the number value is not equal to

the argument.

Parameters:

i -

                        Number

Returns: bool_at

NE(time_att)

Results in Boolean TRUE value if the time value is

not equal to the argument time.

Assume the current time

value is GMT 2005 May 1 10h 15m 30s. This is the 1st Sunday

of the month of May in 2005.

NE(GMT 2005): FALSE NE(GMT 2005 Dec): TRUE NE(Local 2005 May): TRUE or FALSE depending on the current

timezone. NE(GMT 10h): FALSE NE(GMT 10h 30s): FALSE NE(GMT May 10h): FALSE NE(GMT Sun): FALSE NE(GMT May Sun_1): FALSE

Parameters(expressions not allowed):

t -

                        Time

Returns: bool_at

NE(time_att)

Results in Boolean TRUE value if the time value is

not equal to the argument GMT time value.

Parameters:

t -

                        GMT Time Value

Returns: bool_at

RELATIVE_BOOT

Calculates the number of seconds to the closest previous or scheduled

reboot, and returns an integer. If the closest boot time is in the past,

the integer is negative; if it is in the future, the integer is positive.

Returns: num_at

RELATIVE_NOW

Calculates the number of seconds between the current system time and

the specified time, and returns an integer showing that number. If the

designated time is in the past, the integer is negative; if it is in

the future, the integer is positive.

Returns: num_at

* RSHIFT(uint i)

Return the Number Value after bitwise right shifting the current

number value by the argument number of bits. Note that the number

of bits shifted is i modulo 32. For example,

let HTTP.REQ.URL.LENGTH be 4. Then,

HTTP.REQ.URL.LENGTH.RSHIFT(1) = HTTP.REQ.URL.LENGTH.RSHIFT(33) = 2,

since 33 on division by 32 yields a remainder of 1.

Parameters:

i -

                        Right Shift Length

Returns: num_at

SECONDS

Extracts the seconds from the current system time, and returns that

value as an integer from 0 to 59.

Returns: num_at

* SIGNED16_STRING(endian_eendianness)

Create a signed 16-bit binary string from the number.

Parameters(expressions not allowed):

endianness -

                        Select little or big endian

Returns: text_t

* SIGNED32_STRING(endian_eendianness)

Create a signed 32-bit binary string from the number.

Parameters(expressions not allowed):

endianness -

                        Select little or big endian

Returns: text_t

* SIGNED8_STRING

Create a signed 8-bit binary string from the number.

Returns: text_t

* SUB(double_ati)

Return the Double Value after subtracting the argument from the

current double value.

Parameters:

i -

                        Double

Returns: double_at

* SUB(ip_address_ati)

Return the Unsigned Long Value after subtracting the argument from the

current unsigned long value.

Parameters:

i -

                        Unsigned Long

Returns: unsigned_long_at

* SUB(unsigned_long_ati)

Return the Unsigned Long Value after subtracting the argument from the

current unsigned long value.

Parameters:

i -

                        Unsigned Long

Returns: unsigned_long_at

* SUB(num_ati)

Return the Number Value after subtracting the argument from the

current number value.

Parameters:

i -

                        Number

Returns: num_at

* SUB(time_ati)

Return the Unsigned Long Value after subtracting the argument from the

current unsigned long value.

Parameters:

i -

                        Unsigned Long

Returns: unsigned_long_at

* TYPECAST_DOUBLE_AT

Typecast the Number Value to a Double value.

Returns: double_at

* TYPECAST_IP_ADDRESS_AT

Typecast the Number Value to an IP Address value.

Returns: ip_address_at

TYPECAST_NUM_AT

Convert time_at to num_at. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (num_at : Number Value)

Returns: num_at

TYPECAST_TEXT_T

Typecast the Time Value to its string representation.

Returns: text_t

* TYPECAST_TIME_AT

Typecast the Number Value to a Time value.

Returns: time_at

* TYPECAST_UNSIGNED_LONG_AT

Typecast the Number Value to a Unsigned Long value.

Returns: unsigned_long_at

* UNSIGNED16_STRING(endian_eendianness)

Create an unsigned 16-bit binary string from the number.

Parameters(expressions not allowed):

endianness -

                        Select little or big endian

Returns: text_t

* UNSIGNED32_STRING(endian_eendianness)

Create an unsigned 32-bit binary string from the number.

Parameters(expressions not allowed):

endianness -

                        Select little or big endian

Returns: text_t

* UNSIGNED64_STRING(endian_eendianness)

Create an unsigned 64-bit binary string from the number.

Parameters(expressions not allowed):

endianness -

                        Select little or big endian

Returns: text_t

* UNSIGNED8_STRING

Create an unsigned 8-bit binary string from the number.

Returns: text_t

WEEKDAY

Results in a Number Value between 0 (Sunday) and 6

(Saturday) which gives the week day in the time value.

Returns: num_at

* WEEKDAY_STRING

Given the numeric day of the week, e.g. SYS.TIME.WEEKDAY,

return the long form of the string name for that day, e.g.

0 = "Sunday", 6 = "Saturday".

Returns: text_t

* WEEKDAY_STRING_SHORT

Given the numeric day of the week, e.g. SYS.TIME.WEEKDAY,

return the short form of the string name for that day, e.g.

0 = "Sun", 6 = "Sat".

Returns: text_t

WITHIN(time_attime1, time_attime2)

Results in a Boolean TRUE value if the time value lies

within all the ranges defined by the Lower and Upper time

arguments.

If an element of time like day or hour is left

unspecified in the Lower argument then it is assumed to have the

lowest value of its range. If an element is left

unspecified in the Upper argument then it is assumed to have the

highest value of its range. If the year is specified in one

of the argument then it must be specified in the other argument as

well. The ranges for different elements of time are month

1-12, day 1-31, weekday 0-6, hour 0-23, minutes 0-59 and

seconds 0-59.

Each element of time defines a range. For the result to be

TRUE each element of time in the time value must lie in the

corresponding range present in the Lower and Upper

arguments.

Assume the time value is GMT 2005 May 10 10h 15m 30s. This

is the second Tuesday of the month. WITHIN(GMT 2004, GMT 2006): TRUE WITHIN(GMT 2004 Jan, GMT 2006 Mar): FALSE (May doesn't fall in

the Jan-Mar range.) WITHIN(GMT Feb, GMT): TRUE (May falls in the Feb-Dec range.) WITHIN(GMT Sun_1, GMT Sun_3): TRUE (2nd Tuesday lies within

1st Sunday and the 3rd Sunday.) WITHIN(GMT 2005 May 1 10h, GMT May 2005 1 17h): TRUE WITHIN(LOCAL 2005 May 1, LOCAL May 2005 1): Answer depends

on the Citrix ADC system's timezone.

Parameters(expressions not allowed):

time1 -

                        Lower Time

time2 -

                        Upper Time

Returns: bool_at

YEAR

Extracts the year from the current system time, and returns that

value as a four-digit integer.

Returns: num_at

TIME_AT

In this article