Efuns |
|
string default_yp_domain(); |
|
Returns the default yp-domain. |
|
|
The YpDomain class |
|
object YpDomain(string|void domain); |
Return a new YpDomain object. If no domain is specified, the |
default domain will be used. This is usualy best. |
|
If there is no YP server available for the domain, this |
functioncall will block until there is one. If no server apperars |
in about ten minutes or so, an error will be returned. The timeout |
is not configurable from the C-yp interface either. |
|
void domain->bind(string domain); |
Re-bind the object to another (or the same) domain. |
|
string domain->match(string map, string key); |
Search in 'map' for the key 'key'. If there is no 'key' in 'map', 0 |
will be returned. If 'map' does not exist, an error will be |
generated, otherwise the string matching the key will be returned. |
|
mapping (string:string) domain->all(string map); |
Return the whole map as a mapping. |
|
void domain->map(string map, function(string,string:void) |
|array(function(string,string:void)) over); |
For each entry in 'map', call the function(s) specified by 'over'. |
The function will be called like 'void over(string key, string |
value)' |
|
string domain->server(string map); |
Return the hostname of the server serving the map 'map'. |
|
int domain->order(string map); |
Return the 'order' number for the map map. This is usually a |
time_t (see the efun time()) |
|
|
The YpMap class |
|
object YpMap(string map,string|void domain); |
Return a new YpMap object. If no domain is specified, the |
default domain will be used. This is usualy best. |
|
If there is no YP server available for the domain, this |
functioncall will block until there is one. If no server apperars |
in about ten minutes or so, an error will be returned. The timeout |
is not configurable from the C-yp interface either. |
|
string map->match(string key); |
or |
map[key]; |
|
Search for the key 'key'. If there is no 'key' in the map, 0 |
will be returned, otherwise the string matching the key will |
be returned. |
|
mapping (string:string) map->all(); |
or |
(mapping)map; |
Return the whole map as a mapping. |
|
void map->map(function(string,string:void)|array(function(string,string:void)) over); |
For each entry in the map, call the function(s) specified by 'over'. |
The function will be called like 'void over(string key, string value)' |
|
string map->server(); |
Return the hostname of the server serving this map. |
|
int map->order(); |
Return the 'order' number for this map. This is usually a |
time_t (see the efun time()) |
|
sizeof(map) |
Return the number of entries in the map. This is equivalent to |
sizeof((mapping)map); |
|
array(string) indices(map); |
and |
array(string) values(map); |
|
Return the indices of the map. If indices is called first, values must |
be called immediately after. If values is called first, it is the |
other way around. |
|
|
EXAMPLE |
|
#include <yp.h> |
|
void print_entry(string key, string val) |
{ |
val = (val/":")[4]; |
if(strlen(val)) |
{ |
string q = ".......... "; |
werror(key+q[strlen(key)..]+val+"\n"); |
} |
} |
|
void main(int argc,array argv) |
{ |
object (YpMap) o = YpMap("passwd.byname"); |
|
werror("server.... " + o->server() + "\n" |
"age....... " + (-o->order()+time()) + "\n" |
"per....... " + o["per"] + "\n" |
"size...... " + sizeof(o) + "\n"); |
|
o->map(print_entry); // Print username/GECOS pairs |
} |
|