install_t install() { PL_register_foreign_in_module(NULL,"read_dictionary",1, (void*)(pl_read_dictionary),0); PL_register_foreign_in_module(NULL,"dictionary_unify",1, (void*)(pl_dictionary_unify),PL_FA_NONDETERMINISTIC); PL_register_foreign_in_module(NULL,"query_string",1, (void*)(pl_get_query_string),0); PL_register_foreign_in_module(NULL,"maximum_word_length",1, (void*)(pl_dictionary_max_word_length),0); PL_register_foreign_in_module(NULL,"number_of_words_of_length_deterministic",2, (void*)(pl_number_of_words_of_length),0); }
install_t install_socket() { nbio_init("socket"); ATOM_reuseaddr = PL_new_atom("reuseaddr"); ATOM_broadcast = PL_new_atom("broadcast"); ATOM_nodelay = PL_new_atom("nodelay"); ATOM_dispatch = PL_new_atom("dispatch"); ATOM_nonblock = PL_new_atom("nonblock"); ATOM_infinite = PL_new_atom("infinite"); ATOM_as = PL_new_atom("as"); ATOM_atom = PL_new_atom("atom"); ATOM_string = PL_new_atom("string"); ATOM_codes = PL_new_atom("codes"); FUNCTOR_socket1 = PL_new_functor(PL_new_atom("$socket"), 1); #ifdef O_DEBUG PL_register_foreign_in_module("user", "tcp_debug", 1, pl_debug, 0); #endif PL_register_foreign("tcp_accept", 3, pl_accept, 0); PL_register_foreign("tcp_bind", 2, pl_bind, 0); PL_register_foreign("tcp_connect", 2, pl_connect, 0); PL_register_foreign("tcp_listen", 2, pl_listen, 0); PL_register_foreign("tcp_open_socket", 3, pl_open_socket, 0); PL_register_foreign("tcp_socket", 1, tcp_socket, 0); PL_register_foreign("tcp_close_socket", 1, pl_close_socket, 0); PL_register_foreign("tcp_setopt", 2, pl_setopt, 0); PL_register_foreign("tcp_host_to_address", 2, pl_host_to_address, 0); PL_register_foreign("gethostname", 1, pl_gethostname, 0); PL_register_foreign("tcp_select", 3, tcp_select, 0); PL_register_foreign("udp_socket", 1, udp_socket, 0); PL_register_foreign("udp_receive", 4, udp_receive, 0); PL_register_foreign("udp_send", 4, udp_send, 0); }