From daa739876f1bbd14b043a6361e9d434d324afff5 Mon Sep 17 00:00:00 2001 From: akr Date: Sun, 21 Mar 2010 10:50:52 +0000 Subject: * ext/socket: make sources rdoc friendly. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26998 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 4 ++++ ext/socket/ancdata.c | 34 ++++++++++++++-------------------- ext/socket/basicsocket.c | 6 ++++++ ext/socket/constants.c | 1 - ext/socket/ipsocket.c | 2 ++ ext/socket/lib/socket.rb | 4 ++-- ext/socket/mkconstants.rb | 9 ++++++--- ext/socket/option.c | 6 +++--- ext/socket/rubysocket.h | 10 ++++++++++ ext/socket/socket.c | 14 +++++--------- ext/socket/sockssocket.c | 2 ++ ext/socket/tcpserver.c | 3 +++ ext/socket/tcpsocket.c | 2 ++ ext/socket/udpsocket.c | 2 ++ ext/socket/unixserver.c | 3 +++ ext/socket/unixsocket.c | 2 ++ 16 files changed, 66 insertions(+), 38 deletions(-) diff --git a/ChangeLog b/ChangeLog index 79b847d00a..5ab8c19ce1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Sun Mar 21 19:50:04 2010 Tanaka Akira + + * ext/socket: make sources rdoc friendly. + Sun Mar 21 17:57:49 2010 Nobuyoshi Nakada * io.c (IO_RBUF_CAPA_FOR): use large buffer as cbuf if readconv is diff --git a/ext/socket/ancdata.c b/ext/socket/ancdata.c index 370e5b59e0..11409aa834 100644 --- a/ext/socket/ancdata.c +++ b/ext/socket/ancdata.c @@ -1325,13 +1325,13 @@ bsock_sendmsg_internal(int argc, VALUE *argv, VALUE sock, int nonblock) * sock.sendmsg("\0", 0, nil, ancdata) * */ -static VALUE -bsock_sendmsg(int argc, VALUE *argv, VALUE sock) +VALUE +rsock_bsock_sendmsg(int argc, VALUE *argv, VALUE sock) { return bsock_sendmsg_internal(argc, argv, sock, 0); } #else -#define bsock_sendmsg rb_f_notimplement +#define rsock_bsock_sendmsg rb_f_notimplement #endif #if defined(HAVE_SENDMSG) @@ -1346,8 +1346,8 @@ bsock_sendmsg(int argc, VALUE *argv, VALUE sock) * and it doesn't retry the system call. * */ -static VALUE -bsock_sendmsg_nonblock(int argc, VALUE *argv, VALUE sock) +VALUE +rsock_bsock_sendmsg_nonblock(int argc, VALUE *argv, VALUE sock) { return bsock_sendmsg_internal(argc, argv, sock, 1); } @@ -1737,13 +1737,13 @@ bsock_recvmsg_internal(int argc, VALUE *argv, VALUE sock, int nonblock) * } * */ -static VALUE -bsock_recvmsg(int argc, VALUE *argv, VALUE sock) +VALUE +rsock_bsock_recvmsg(int argc, VALUE *argv, VALUE sock) { return bsock_recvmsg_internal(argc, argv, sock, 0); } #else -#define bsock_recvmsg rb_f_notimplement +#define rsock_bsock_recvmsg rb_f_notimplement #endif #if defined(HAVE_RECVMSG) @@ -1758,27 +1758,21 @@ bsock_recvmsg(int argc, VALUE *argv, VALUE sock) * and it doesn't retry the system call. * */ -static VALUE -bsock_recvmsg_nonblock(int argc, VALUE *argv, VALUE sock) +VALUE +rsock_bsock_recvmsg_nonblock(int argc, VALUE *argv, VALUE sock) { return bsock_recvmsg_internal(argc, argv, sock, 1); } #else -#define bsock_recvmsg_nonblock rb_f_notimplement +#define rsock_bsock_recvmsg_nonblock rb_f_notimplement #endif +/* + * Document-class: ::Socket::AncillaryData + */ void Init_ancdata(void) { - /* for rdoc */ - /* rb_cBasicSocket = rb_define_class("BasicSocket", rb_cIO); */ - /* rb_cSocket = rb_define_class("Socket", rb_cBasicSocket); */ - - rb_define_method(rb_cBasicSocket, "sendmsg", bsock_sendmsg, -1); - rb_define_method(rb_cBasicSocket, "sendmsg_nonblock", bsock_sendmsg_nonblock, -1); - rb_define_method(rb_cBasicSocket, "recvmsg", bsock_recvmsg, -1); - rb_define_method(rb_cBasicSocket, "recvmsg_nonblock", bsock_recvmsg_nonblock, -1); - #if defined(HAVE_ST_MSG_CONTROL) rb_cAncillaryData = rb_define_class_under(rb_cSocket, "AncillaryData", rb_cObject); rb_define_method(rb_cAncillaryData, "initialize", ancillary_initialize, 4); diff --git a/ext/socket/basicsocket.c b/ext/socket/basicsocket.c index 46253df898..440eb76e2e 100644 --- a/ext/socket/basicsocket.c +++ b/ext/socket/basicsocket.c @@ -747,4 +747,10 @@ Init_basicsocket(void) rb_define_method(rb_cBasicSocket, "recv_nonblock", bsock_recv_nonblock, -1); rb_define_method(rb_cBasicSocket, "do_not_reverse_lookup", bsock_do_not_reverse_lookup, 0); rb_define_method(rb_cBasicSocket, "do_not_reverse_lookup=", bsock_do_not_reverse_lookup_set, 1); + + rb_define_method(rb_cBasicSocket, "sendmsg", rsock_bsock_sendmsg, -1); /* in ancdata.c */ + rb_define_method(rb_cBasicSocket, "sendmsg_nonblock", rsock_bsock_sendmsg_nonblock, -1); /* in ancdata.c */ + rb_define_method(rb_cBasicSocket, "recvmsg", rsock_bsock_recvmsg, -1); /* in ancdata.c */ + rb_define_method(rb_cBasicSocket, "recvmsg_nonblock", rsock_bsock_recvmsg_nonblock, -1); /* in ancdata.c */ + } diff --git a/ext/socket/constants.c b/ext/socket/constants.c index 4350a127d5..4fdc40d203 100644 --- a/ext/socket/constants.c +++ b/ext/socket/constants.c @@ -141,6 +141,5 @@ void Init_socket_constants(void) { /* constants */ - rb_mSockConst = rb_define_module_under(rb_cSocket, "Constants"); init_constants(); } diff --git a/ext/socket/ipsocket.c b/ext/socket/ipsocket.c index ee455998f0..03e6b4518e 100644 --- a/ext/socket/ipsocket.c +++ b/ext/socket/ipsocket.c @@ -284,6 +284,8 @@ ip_s_getaddress(VALUE obj, VALUE host) } /* + * Document-class: ::IPSocket < BasicSocket + * * IPSocket class */ void diff --git a/ext/socket/lib/socket.rb b/ext/socket/lib/socket.rb index 5dd5ca651c..1ff05b820a 100644 --- a/ext/socket/lib/socket.rb +++ b/ext/socket/lib/socket.rb @@ -158,7 +158,7 @@ class Addrinfo end end -class BasicSocket +class BasicSocket < IO # Returns an address of the socket suitable for connect in the local machine. # # This method returns _self_.local_address, except following condition. @@ -200,7 +200,7 @@ class BasicSocket end end -class Socket +class Socket < BasicSocket # enable the socket option IPV6_V6ONLY if IPV6_V6ONLY is available. def ipv6only! if defined? Socket::IPV6_V6ONLY diff --git a/ext/socket/mkconstants.rb b/ext/socket/mkconstants.rb index 6df8fbeaf9..dbcba25143 100644 --- a/ext/socket/mkconstants.rb +++ b/ext/socket/mkconstants.rb @@ -83,7 +83,9 @@ EOS ERB.new(<<'EOS', nil, '%').def_method(Object, "gen_const_defs_in_guard(make_value, name, default_value)") #if defined(<%=name%>) + /* <%=name%>: */ rb_define_const(rb_cSocket, <%=c_str name%>, <%=make_value%>(<%=name%>)); + /* <%=name%>: */ rb_define_const(rb_mSockConst, <%=c_str name%>, <%=make_value%>(<%=name%>)); #endif EOS @@ -272,12 +274,13 @@ result = ERB.new(<<'EOS', nil, '%').result(binding) <%= INTERN_DEFS.map {|vardef, gen_hash, decl, func| vardef }.join("\n") %> +/* + * Document-module: Socket::Constants + */ static void init_constants(void) { - /* for rdoc */ - /* rb_cSocket = rb_define_class("Socket", rb_cBasicSocket); */ - /* rb_mSockConst = rb_define_module_under(rb_cSocket, "Constants"); */ + rb_mSockConst = rb_define_module_under(rb_cSocket, "Constants"); <%= gen_const_defs %> <%= INTERN_DEFS.map {|vardef, gen_hash, decl, func| gen_hash }.join("\n") %> diff --git a/ext/socket/option.c b/ext/socket/option.c index d1d557db14..89265b78ad 100644 --- a/ext/socket/option.c +++ b/ext/socket/option.c @@ -658,12 +658,12 @@ sockopt_unpack(VALUE self, VALUE template) return rb_funcall(sockopt_data(self), rb_intern("unpack"), 1, template); } +/* + * Document-class: ::Socket::Option + */ void Init_sockopt(void) { - /* for rdoc */ - /* rb_cSocket = rb_define_class("Socket", rb_cBasicSocket); */ - rb_cSockOpt = rb_define_class_under(rb_cSocket, "Option", rb_cObject); rb_define_method(rb_cSockOpt, "initialize", sockopt_initialize, 4); rb_define_method(rb_cSockOpt, "family", sockopt_family_m, 0); diff --git a/ext/socket/rubysocket.h b/ext/socket/rubysocket.h index 51644887e8..2159e74d8c 100644 --- a/ext/socket/rubysocket.h +++ b/ext/socket/rubysocket.h @@ -254,9 +254,19 @@ int rsock_connect(int fd, const struct sockaddr *sockaddr, int len, int socks); VALUE rsock_s_accept(VALUE klass, int fd, struct sockaddr *sockaddr, socklen_t *len); VALUE rsock_s_accept_nonblock(VALUE klass, rb_io_t *fptr, struct sockaddr *sockaddr, socklen_t *len); +VALUE rsock_sock_listen(VALUE sock, VALUE log); VALUE rsock_sockopt_new(int family, int level, int optname, VALUE data); +#if defined(HAVE_SENDMSG) +VALUE rsock_bsock_sendmsg(int argc, VALUE *argv, VALUE sock); +VALUE rsock_bsock_sendmsg_nonblock(int argc, VALUE *argv, VALUE sock); +#endif +#if defined(HAVE_RECVMSG) +VALUE rsock_bsock_recvmsg(int argc, VALUE *argv, VALUE sock); +VALUE rsock_bsock_recvmsg_nonblock(int argc, VALUE *argv, VALUE sock); +#endif + #ifdef HAVE_ST_MSG_CONTROL void rsock_discard_cmsg_resource(struct msghdr *mh); #endif diff --git a/ext/socket/socket.c b/ext/socket/socket.c index ab7bd95094..819c451347 100644 --- a/ext/socket/socket.c +++ b/ext/socket/socket.c @@ -485,8 +485,8 @@ sock_bind(VALUE sock, VALUE addr) * * listen manual pages on unix-based systems * * listen function in Microsoft's Winsock functions reference */ -static VALUE -sock_listen(VALUE sock, VALUE log) +VALUE +rsock_sock_listen(VALUE sock, VALUE log) { rb_io_t *fptr; int backlog; @@ -1780,6 +1780,8 @@ socket_s_ip_address_list(VALUE self) #endif /* + * Document-class: ::Socket < BasicSocket + * * Class +Socket+ provides access to the underlying operating system * socket implementations. It can be used to provide more operating system * specific functionality than the protocol-specific socket classes but at the @@ -1817,7 +1819,7 @@ Init_socket() rb_define_method(rb_cSocket, "connect", sock_connect, 1); rb_define_method(rb_cSocket, "connect_nonblock", sock_connect_nonblock, 1); rb_define_method(rb_cSocket, "bind", sock_bind, 1); - rb_define_method(rb_cSocket, "listen", sock_listen, 1); + rb_define_method(rb_cSocket, "listen", rsock_sock_listen, 1); rb_define_method(rb_cSocket, "accept", sock_accept, 0); rb_define_method(rb_cSocket, "accept_nonblock", sock_accept_nonblock, 0); rb_define_method(rb_cSocket, "sysaccept", sock_sysaccept, 0); @@ -1844,10 +1846,4 @@ Init_socket() #endif rb_define_singleton_method(rb_cSocket, "ip_address_list", socket_s_ip_address_list, 0); - - /* defined here for rdoc */ - rb_define_method(rb_cTCPServer, "listen", sock_listen, 1); -#ifdef HAVE_SYS_UN_H - rb_define_method(rb_cUNIXServer, "listen", sock_listen, 1); -#endif } diff --git a/ext/socket/sockssocket.c b/ext/socket/sockssocket.c index 71836f704d..84397ad5c3 100644 --- a/ext/socket/sockssocket.c +++ b/ext/socket/sockssocket.c @@ -41,6 +41,8 @@ socks_s_close(VALUE sock) #endif /* + * Document-class: ::SOCKSSocket < TCPSocket + * * SOCKSSocket class */ void diff --git a/ext/socket/tcpserver.c b/ext/socket/tcpserver.c index 59cd7dd3cc..229c2b1607 100644 --- a/ext/socket/tcpserver.c +++ b/ext/socket/tcpserver.c @@ -129,6 +129,8 @@ tcp_sysaccept(VALUE sock) } /* + * Document-class: ::TCPServer < TCPSocket + * * TCPServer class */ void @@ -139,4 +141,5 @@ Init_tcpserver(void) rb_define_method(rb_cTCPServer, "accept_nonblock", tcp_accept_nonblock, 0); rb_define_method(rb_cTCPServer, "sysaccept", tcp_sysaccept, 0); rb_define_method(rb_cTCPServer, "initialize", tcp_svr_init, -1); + rb_define_method(rb_cTCPServer, "listen", rsock_sock_listen, 1); /* in socket.c */ } diff --git a/ext/socket/tcpsocket.c b/ext/socket/tcpsocket.c index 1ab62459d1..d7164ad861 100644 --- a/ext/socket/tcpsocket.c +++ b/ext/socket/tcpsocket.c @@ -56,6 +56,8 @@ tcp_s_gethostbyname(VALUE obj, VALUE host) } /* + * Document-class: ::TCPSocket < IPSocket + * * TCPSocket class */ void diff --git a/ext/socket/udpsocket.c b/ext/socket/udpsocket.c index 8638d81a80..3a42e0e25b 100644 --- a/ext/socket/udpsocket.c +++ b/ext/socket/udpsocket.c @@ -247,6 +247,8 @@ udp_recvfrom_nonblock(int argc, VALUE *argv, VALUE sock) } /* + * Document-class: ::UDPSocket < IPSocket + * * UDPSocket class */ void diff --git a/ext/socket/unixserver.c b/ext/socket/unixserver.c index fa41cba02a..e29e9cb87b 100644 --- a/ext/socket/unixserver.c +++ b/ext/socket/unixserver.c @@ -136,6 +136,8 @@ unix_sysaccept(VALUE sock) #endif /* + * Document-class: ::UNIXServer < UNIXSocket + * * UNIXServer class */ void @@ -147,5 +149,6 @@ Init_unixserver(void) rb_define_method(rb_cUNIXServer, "accept", unix_accept, 0); rb_define_method(rb_cUNIXServer, "accept_nonblock", unix_accept_nonblock, 0); rb_define_method(rb_cUNIXServer, "sysaccept", unix_sysaccept, 0); + rb_define_method(rb_cUNIXServer, "listen", rsock_sock_listen, 1); /* in socket.c */ #endif } diff --git a/ext/socket/unixsocket.c b/ext/socket/unixsocket.c index df1a11d094..89beb666ec 100644 --- a/ext/socket/unixsocket.c +++ b/ext/socket/unixsocket.c @@ -485,6 +485,8 @@ unix_s_socketpair(int argc, VALUE *argv, VALUE klass) #endif /* + * Document-class: ::UNIXSocket < BasicSocket + * * UNIXSocket class */ void -- cgit v1.2.3