void sockaddr_print(ScmObj obj, ScmPort *port, ScmWriteContext *ctx) { Scm_Printf(port, "#<sockaddr %S %S>", Scm_SockAddrFamily(SCM_SOCKADDR(obj)), Scm_SockAddrName(SCM_SOCKADDR(obj))); }
ScmClass *Scm_SockAddrCPL[] = { SCM_CLASS_STATIC_PTR(Scm_SockAddrClass), SCM_CLASS_STATIC_PTR(Scm_TopClass), NULL }; SCM_DEFINE_BUILTIN_CLASS(Scm_SockAddrClass, sockaddr_print, NULL, NULL, sockaddr_allocate, NULL); void sockaddr_print(ScmObj obj, ScmPort *port, ScmWriteContext *ctx SCM_UNUSED) { Scm_Printf(port, "#<sockaddr %S %S>", Scm_SockAddrFamily(SCM_SOCKADDR(obj)), Scm_SockAddrName(SCM_SOCKADDR(obj))); } int Scm_SockAddrP(ScmObj obj) { return Scm_SubtypeP(Scm_ClassOf(obj), SCM_CLASS_SOCKADDR); } /* C interface of sockaddr-name and sockaddr-family */ ScmObj Scm_SockAddrName(ScmSockAddr *addr) { return Scm_ApplyRec(SCM_OBJ(&Scm_GenericSockAddrName), SCM_LIST1(SCM_OBJ(addr))); }