ns_set copy ?-persist? setId
ns_set cput setId
key value
ns_set create ?-persist? name
ns_set delete setId fieldNumber
ns_set delkey setId key
ns_set find setId key
ns_set free setId
ns_set
get setId key
ns_set icput setId key value
ns_set idelkey setId key
ns_set
ifind setId key
ns_set iget setId key
ns_set isnull setId fieldNumber
ns_set
iunique setId key
ns_set key setId fieldNumber
ns_set merge high low
ns_set
move to from
ns_set name setId
ns_set new ?-persist? name
ns_set print setId
ns_set put setId key value
ns_set size setId
ns_set split ?-persist? setId
?splitChar?
ns_set truncate setId size
ns_set unique setId key
ns_set update
setId key value
ns_set value setId fieldNumber
ns_set copy
Returns a new set that has the same name and key value pairs as the passed-in
set (setId). If -persist is specified, the new set will persist even after
the current transaction ends, and you can free it later with ns_set free.
If -persist is not specified, the new set is automatically freed when the
transaction ends.
ns_set cput
appends a new field to the set with key key
and value value if the field does not already exist in the set. The field
number of the new field is returned.
ns_set create
(which is the same as
ns_set new) allocates memory for a new set and returns the ID for the new
set. If -persist is specified, the new set will persist even after the current
transaction ends, and you can free it later with ns_set free. If -persist
is not specified, the new set is automatically freed when the transaction
ends.
ns_set delete
deletes the field in the set at field number fieldNumber.
ns_set delkey
removes the first field in the set whose key is key. Note
that there could be multiple fields in the set with this key; this command
only removes the first occurrence.
ns_set find
returns the index of the
first field in the specified set whose key name matches the specified key.
Zero (0) is the index of the first field. If no matching fields are found,
ns_set find returns -1.
ns_set free
frees the specified set. Sets must be
explicitly freed with ns_set free if the -persist option was used when creating
the set. Otherwise, sets are automatically freed when the transaction ends.
ns_set get
returns the first value associated with the passed-in key. If
the key is invalid, an empty string is returned.
ns_set icput
is the case-insensitive
counterpart of ns_set cput.
ns_set idelkey
is the case-insensitive counterpart
of ns_set delkey.
ns_set ifind
is the case-insensitive counterpart of ns_set
find.
ns_set iget
is the case-insensitive counterpart of ns_set get.
ns_set
isnull
returns 1 if the value of the field specified by fieldNumber is
null and 0 if it is not. Note that an empty string is not the same as a
null. ns_set isnull will return 0 for an empty string.
ns_set iunique
returns
1 if the specified key is unique in the specified set and 0 if it is not.
The test for uniqueness is performed case-insensitively. ns_set unique is
the case-sensitive version of this function.
For example, a client could
send multiple "Accept:" headers which would end up in the header set for
the connection. ns_set iunique would return 0 for the "Accept:" key, because
there are multiple fields with the key "Accept:".
ns_set key
extracts the
key of the set at field number fieldNumber. This command is useful when
looping through all the key-value pairs in the set.
ns_set merge
merges
two sets. Any fields in the low set are appended to the high set if a field
with the same key name does not already exist in the high set.
ns_set move
moves all fields from the from set to the end of the to set, leaving the
from set a valid, empty set.
ns_set name
returns the name of the set.
ns_set
new
(which is the same as ns_set create) allocates memory for a new set
and returns the ID for the new set. If -persist is specified, the new set
will persist even after the current transaction ends, and you can free
it later with ns_set free. If -persist is not specified, the new set is automatically
freed when the transaction ends.
ns_set print
prints the specified set to
stderr.
ns_set put
appends a new field to the set with key key and value
value. Note that the field is appended so if a previous field has the same
key as the new field, the previous field is returned by ns_set get command.
The field number of the new field is returned.
ns_set size
returns the number
of key-value pairs in the set.
ns_set split
splits one set into multiple
sets based on the splitChar as described below and returns a Tcl list of
the newly-allocated sets. It assumes that the keys in the specified set (setId)
contain a specific character (splitChar) that can be used to separate the
name of a new set and the key in the new set. The default splitChar is a
period (.).
For example, if two fields in the original set have "dog.food"
and "cat.food" as their key names and "Yummy dog food!" and "Yummy cat food!"
as their values, ns_set split would return two new sets named "dog" and
"cat". The dog set would have a single field whose key is "food" and whose
value is "Yummy dog food!". The cat set would have a single field whose
key is "food" and whose value is "Yummy cat food!".
ns_set truncate
reduces
the set to the first size key-value pairs and frees the memory for the rest
of the key-value pairs that may have been in the set.
ns_set unique
returns
1 if the specified key is unique in the specified set and 0 if it is not.
The test for uniqueness is performed case-sensitively. ns_set iunique is
the case-insensitive version of this function.
ns_set update
updates the
first field in the specified set whose key is key and replaces its value
with value. ns_set update is equivalent to ns_set delkey followed by ns_set
put.
ns_set value
extracts the value of the set at field number fieldNumber.
This command is useful when looping through all the key-value pairs in the
set.