1336 lines
104 KiB
HTML

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- This file is generated by Nim. -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Favicon -->
<link rel="shortcut icon" href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAAAAAUAAAAF////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAAAAAIAAABbAAAAlQAAAKIAAACbAAAAmwAAAKIAAACVAAAAWwAAAAL///8A////AP///wD///8A////AAAAABQAAADAAAAAYwAAAA3///8A////AP///wD///8AAAAADQAAAGMAAADAAAAAFP///wD///8A////AP///wAAAACdAAAAOv///wD///8A////AP///wD///8A////AP///wD///8AAAAAOgAAAJ3///8A////AP///wAAAAAnAAAAcP///wAAAAAoAAAASv///wD///8A////AP///wAAAABKAAAAKP///wAAAABwAAAAJ////wD///8AAAAAgQAAABwAAACIAAAAkAAAAJMAAACtAAAAFQAAABUAAACtAAAAkwAAAJAAAACIAAAAHAAAAIH///8A////AAAAAKQAAACrAAAAaP///wD///8AAAAARQAAANIAAADSAAAARf///wD///8AAAAAaAAAAKsAAACk////AAAAADMAAACcAAAAnQAAABj///8A////AP///wAAAAAYAAAAGP///wD///8A////AAAAABgAAACdAAAAnAAAADMAAAB1AAAAwwAAAP8AAADpAAAAsQAAAE4AAAAb////AP///wAAAAAbAAAATgAAALEAAADpAAAA/wAAAMMAAAB1AAAAtwAAAOkAAAD/AAAA/wAAAP8AAADvAAAA3gAAAN4AAADeAAAA3gAAAO8AAAD/AAAA/wAAAP8AAADpAAAAtwAAAGUAAAA/AAAA3wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADfAAAAPwAAAGX///8A////AAAAAEgAAADtAAAAvwAAAL0AAADGAAAA7wAAAO8AAADGAAAAvQAAAL8AAADtAAAASP///wD///8A////AP///wD///8AAAAAO////wD///8A////AAAAAIcAAACH////AP///wD///8AAAAAO////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A//8AAP//AAD4HwAA7/cAAN/7AAD//wAAoYUAAJ55AACf+QAAh+EAAAAAAADAAwAA4AcAAP5/AAD//wAA//8AAA=="/>
<link rel="icon" type="image/png" sizes="32x32" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH4QQQEwksSS9ZWwAAAk1JREFUWMPtll2ITVEUx39nn/O7Y5qR8f05wtCUUr6ZIS++8pEnkZInPImneaCQ5METNdOkeFBKUhMPRIkHKfEuUZSUlGlKPN2TrgfncpvmnntnmlEyq1Z7t89/rf9a6+y99oZxGZf/XeIq61EdtgKXgdXA0xrYAvBjOIF1AI9zvjcC74BSpndrJPkBWDScTF8Aa4E3wDlgHbASaANmVqlcCnwHvgDvgVfAJ+AikAAvgfVZwLnSVZHZaOuKoQi3ZOMi4NkYkpe1p4J7A8BpYAD49hfIy/oqG0+hLomiKP2L5L+1ubn5115S+3OAn4EnwBlgMzCjyt6ZAnQCJ4A7wOs88iRJHvw50HoujuPBoCKwHWiosy8MdfZnAdcHk8dxXFJ3VQbQlCTJvRBCGdRbD4M6uc5glpY3eAihpN5S5w12diSEcCCEcKUO4ljdr15T76ur1FDDLIQQ3qv71EdDOe3Kxj3leRXyk+pxdWnFWod6Wt2bY3de3aSuUHcPBVimHs7mK9WrmeOF6lR1o9qnzskh2ar2qm1qizpfXaPeVGdlmGN5pb09qMxz1Xb1kLqgzn1RyH7JUXW52lr5e/Kqi9qpto7V1atuUzfnARrV7jEib1T76gG2qxdGmXyiekkt1GswPTtek0aBfJp6YySGBfWg2tPQ0FAYgf1stUfdmdcjarbYJEniKIq6gY/Aw+zWHAC+p2labGpqiorFYgGYCEzN7oQdQClN07O1/EfDyGgC0ALMBdYAi4FyK+4H3gLPsxfR1zRNi+NP7nH5J+QntnXe5B5mpfQAAAAASUVORK5CYII=">
<!-- Google fonts -->
<link href='https://fonts.googleapis.com/css?family=Lato:400,600,900' rel='stylesheet' type='text/css'/>
<link href='https://fonts.googleapis.com/css?family=Source+Code+Pro:400,500,600' rel='stylesheet' type='text/css'/>
<!-- CSS -->
<title>chronos/transports/common</title>
<link rel="stylesheet" type="text/css" href="../../nimdoc.out.css">
<script type="text/javascript" src="../../dochack.js"></script>
<script type="text/javascript">
function main() {
var pragmaDots = document.getElementsByClassName("pragmadots");
for (var i = 0; i < pragmaDots.length; i++) {
pragmaDots[i].onclick = function(event) {
// Hide tease
event.target.parentNode.style.display = "none";
// Show actual
event.target.parentNode.nextElementSibling.style.display = "inline";
}
}
function switchTheme(e) {
if (e.target.checked) {
document.documentElement.setAttribute('data-theme', 'dark');
localStorage.setItem('theme', 'dark');
} else {
document.documentElement.setAttribute('data-theme', 'light');
localStorage.setItem('theme', 'light');
}
}
const toggleSwitch = document.querySelector('.theme-switch input[type="checkbox"]');
if (toggleSwitch !== null) {
toggleSwitch.addEventListener('change', switchTheme, false);
}
var currentTheme = localStorage.getItem('theme');
if (!currentTheme && window.matchMedia('(prefers-color-scheme: dark)').matches) {
currentTheme = 'dark';
}
if (currentTheme) {
document.documentElement.setAttribute('data-theme', currentTheme);
if (currentTheme === 'dark' && toggleSwitch !== null) {
toggleSwitch.checked = true;
}
}
}
window.addEventListener('DOMContentLoaded', main);
</script>
</head>
<body>
<div class="document" id="documentId">
<div class="container">
<h1 class="title">chronos/transports/common</h1>
<div class="row">
<div class="three columns">
<div class="theme-switch-wrapper">
<label class="theme-switch" for="checkbox">
<input type="checkbox" id="checkbox" />
<div class="slider round"></div>
</label>
&nbsp;&nbsp;&nbsp; <em>Dark Mode</em>
</div>
<div id="global-links">
<ul class="simple">
<li>
<a href="../../theindex.html">Index</a>
</li>
</ul>
</div>
<div id="searchInputDiv">
Search: <input type="text" id="searchInput"
onkeyup="search()" />
</div>
<div>
Group by:
<select onchange="groupBy(this.value)">
<option value="section">Section</option>
<option value="type">Type</option>
</select>
</div>
<ul class="simple simple-toc" id="toc-list">
<li>
<a class="reference reference-toplevel" href="#6" id="56">Imports</a>
<ul class="simple simple-toc-section">
</ul>
</li>
<li>
<a class="reference reference-toplevel" href="#7" id="57">Types</a>
<ul class="simple simple-toc-section">
<li><a class="reference" href="#AddressFamily"
title="AddressFamily {.pure.} = enum
None, IPv4, IPv6, Unix">AddressFamily</a></li>
<li><a class="reference" href="#DualStackType"
title="DualStackType {.pure.} = enum
Auto, Enabled, Disabled, Default">DualStackType</a></li>
<li><a class="reference" href="#ServerCommand"
title="ServerCommand = enum
Start, Pause, Stop">ServerCommand</a></li>
<li><a class="reference" href="#ServerFlags"
title="ServerFlags = enum
ReuseAddr, ReusePort, TcpNoDelay, NoAutoRead, GCUserData, FirstPipe,
NoPipeFlash, Broadcast, V4Mapped">ServerFlags</a></li>
<li><a class="reference" href="#ServerStatus"
title="ServerStatus = enum
Starting, Stopped, Running, Closed">ServerStatus</a></li>
<li><a class="reference" href="#SocketServer"
title="SocketServer = ref object of RootRef
sock*: AsyncFD
local*: TransportAddress
status*: ServerStatus
udata*: pointer
flags*: set[ServerFlags]
bufferSize*: int
loopFuture*: Future[void].Raising([])
domain*: Domain
apending*: bool
asock*: AsyncFD
errorCode*: OSErrorCode
abuffer*: array[128, byte]
dualstack*: DualStackType
when defined(windows):
aovl*: CustomOverlapped">SocketServer</a></li>
<li><a class="reference" href="#TransportAbortedError"
title="TransportAbortedError = object of TransportError">TransportAbortedError</a></li>
<li><a class="reference" href="#TransportAddress"
title="TransportAddress = object
case family*: AddressFamily
of AddressFamily.None:
nil
of AddressFamily.IPv4:
address_v4*: array[4, uint8]
of AddressFamily.IPv6:
address_v6*: array[16, uint8]
of AddressFamily.Unix:
address_un*: array[108, uint8]
port*: Port">TransportAddress</a></li>
<li><a class="reference" href="#TransportAddressError"
title="TransportAddressError = object of TransportError
code*: OSErrorCode">TransportAddressError</a></li>
<li><a class="reference" href="#TransportError"
title="TransportError = object of AsyncError">TransportError</a></li>
<li><a class="reference" href="#TransportIncompleteError"
title="TransportIncompleteError = object of TransportError">TransportIncompleteError</a></li>
<li><a class="reference" href="#TransportLimitError"
title="TransportLimitError = object of TransportError">TransportLimitError</a></li>
<li><a class="reference" href="#TransportNoSupport"
title="TransportNoSupport = object of TransportError">TransportNoSupport</a></li>
<li><a class="reference" href="#TransportOsError"
title="TransportOsError = object of TransportError
code*: OSErrorCode">TransportOsError</a></li>
<li><a class="reference" href="#TransportState"
title="TransportState = enum
ReadPending, ReadPaused, ReadClosed, ReadEof, ReadError, WritePending,
WritePaused, WriteClosed, WriteEof, WriteError">TransportState</a></li>
<li><a class="reference" href="#TransportTooManyError"
title="TransportTooManyError = object of TransportError">TransportTooManyError</a></li>
<li><a class="reference" href="#TransportUseClosedError"
title="TransportUseClosedError = object of TransportError">TransportUseClosedError</a></li>
<li><a class="reference" href="#TransportUseEofError"
title="TransportUseEofError = object of TransportError">TransportUseEofError</a></li>
</ul>
</li>
<li>
<a class="reference reference-toplevel" href="#8" id="58">Vars</a>
<ul class="simple simple-toc-section">
<li><a class="reference" href="#AnyAddress"
title="AnyAddress = TransportAddress(family: AddressFamily.IPv4, port: Port(0))">AnyAddress</a></li>
<li><a class="reference" href="#AnyAddress6"
title="AnyAddress6 = TransportAddress(family: AddressFamily.IPv6, port: Port(0))">AnyAddress6</a></li>
</ul>
</li>
<li>
<a class="reference reference-toplevel" href="#10" id="60">Consts</a>
<ul class="simple simple-toc-section">
<li><a class="reference" href="#DefaultDatagramBufferSize"
title="DefaultDatagramBufferSize = 65536">DefaultDatagramBufferSize</a></li>
<li><a class="reference" href="#DefaultStreamBufferSize"
title="DefaultStreamBufferSize = 16384">DefaultStreamBufferSize</a></li>
</ul>
</li>
<li>
<a class="reference reference-toplevel" href="#12" id="62">Procs</a>
<ul class="simple simple-toc-section">
<ul class="simple nested-toc-section">$
<li><a class="reference" href="#%24%2CTransportAddress"
title="`$`(address: TransportAddress): string">`$`(address: TransportAddress): string</a></li>
</ul>
<ul class="simple nested-toc-section">==
<li><a class="reference" href="#%3D%3D%2CTransportAddress%2CTransportAddress"
title="`==`(lhs, rhs: TransportAddress): bool">`==`(lhs, rhs: TransportAddress): bool</a></li>
</ul>
<ul class="simple nested-toc-section">address
<li><a class="reference" href="#address%2CTransportAddress"
title="address(ta: TransportAddress): IpAddress">address(ta: TransportAddress): IpAddress</a></li>
</ul>
<ul class="simple nested-toc-section">fromSAddr
<li><a class="reference" href="#fromSAddr%2Cptr.Sockaddr_storage%2CSockLen%2CTransportAddress"
title="fromSAddr(sa: ptr Sockaddr_storage; sl: SockLen; address: var TransportAddress)">fromSAddr(sa: ptr Sockaddr_storage; sl: SockLen; address: var TransportAddress)</a></li>
</ul>
<ul class="simple nested-toc-section">getAutoAddress
<li><a class="reference" href="#getAutoAddress%2CPort"
title="getAutoAddress(port: Port): TransportAddress">getAutoAddress(port: Port): TransportAddress</a></li>
</ul>
<ul class="simple nested-toc-section">getAutoAddresses
<li><a class="reference" href="#getAutoAddresses%2CPort%2CPort"
title="getAutoAddresses(localPort: Port; remotePort: Port): tuple[
local: TransportAddress, remote: TransportAddress]">getAutoAddresses(localPort: Port; remotePort: Port): tuple[
local: TransportAddress, remote: TransportAddress]</a></li>
</ul>
<ul class="simple nested-toc-section">getDomain
<li><a class="reference" href="#getDomain%2CTransportAddress"
title="getDomain(address: TransportAddress): Domain">getDomain(address: TransportAddress): Domain</a></li>
<li><a class="reference" href="#getDomain%2CAsyncFD"
title="getDomain(socket: AsyncFD): Result[AddressFamily, OSErrorCode]">getDomain(socket: AsyncFD): Result[AddressFamily, OSErrorCode]</a></li>
</ul>
<ul class="simple nested-toc-section">host
<li><a class="reference" href="#host%2CTransportAddress"
title="host(ta: TransportAddress): string">host(ta: TransportAddress): string</a></li>
</ul>
<ul class="simple nested-toc-section">initTAddress
<li><a class="reference" href="#initTAddress%2CIpAddress%2CPort"
title="initTAddress(address: IpAddress; port: Port): TransportAddress">initTAddress(address: IpAddress; port: Port): TransportAddress</a></li>
<li><a class="reference" href="#initTAddress%2Cstring"
title="initTAddress(address: string): TransportAddress">initTAddress(address: string): TransportAddress</a></li>
<li><a class="reference" href="#initTAddress%2Cstring%2Cint"
title="initTAddress(address: string; port: int): TransportAddress">initTAddress(address: string; port: int): TransportAddress</a></li>
<li><a class="reference" href="#initTAddress%2Cstring%2CPort"
title="initTAddress(address: string; port: Port): TransportAddress">initTAddress(address: string; port: Port): TransportAddress</a></li>
</ul>
<ul class="simple nested-toc-section">isAvailable
<li><a class="reference" href="#isAvailable%2CAddressFamily"
title="isAvailable(family: AddressFamily): bool">isAvailable(family: AddressFamily): bool</a></li>
</ul>
<ul class="simple nested-toc-section">raiseTransportError
<li><a class="reference" href="#raiseTransportError%2COSErrorCode"
title="raiseTransportError(ecode: OSErrorCode)">raiseTransportError(ecode: OSErrorCode)</a></li>
</ul>
<ul class="simple nested-toc-section">raiseTransportOsError
<li><a class="reference" href="#raiseTransportOsError%2COSErrorCode"
title="raiseTransportOsError(err: OSErrorCode)">raiseTransportOsError(err: OSErrorCode)</a></li>
</ul>
<ul class="simple nested-toc-section">resolveTAddress
<li><a class="reference" href="#resolveTAddress%2Cstring"
title="resolveTAddress(address: string): seq[TransportAddress]">resolveTAddress(address: string): seq[TransportAddress]</a></li>
<li><a class="reference" href="#resolveTAddress%2Cstring%2CDomain"
title="resolveTAddress(address: string; domain: Domain): seq[TransportAddress]">resolveTAddress(address: string; domain: Domain): seq[TransportAddress]</a></li>
<li><a class="reference" href="#resolveTAddress%2Cstring%2CAddressFamily"
title="resolveTAddress(address: string; family: AddressFamily): seq[TransportAddress]">resolveTAddress(address: string; family: AddressFamily): seq[TransportAddress]</a></li>
<li><a class="reference" href="#resolveTAddress%2Cstring%2CIpAddressFamily"
title="resolveTAddress(address: string; family: IpAddressFamily): seq[TransportAddress]">resolveTAddress(address: string; family: IpAddressFamily): seq[TransportAddress]</a></li>
<li><a class="reference" href="#resolveTAddress%2Cstring%2CPort"
title="resolveTAddress(address: string; port: Port): seq[TransportAddress]">resolveTAddress(address: string; port: Port): seq[TransportAddress]</a></li>
<li><a class="reference" href="#resolveTAddress%2Cstring%2CPort%2CDomain"
title="resolveTAddress(address: string; port: Port; domain: Domain): seq[
TransportAddress]">resolveTAddress(address: string; port: Port; domain: Domain): seq[
TransportAddress]</a></li>
<li><a class="reference" href="#resolveTAddress%2Cstring%2CPort%2CAddressFamily"
title="resolveTAddress(address: string; port: Port; family: AddressFamily): seq[
TransportAddress]">resolveTAddress(address: string; port: Port; family: AddressFamily): seq[
TransportAddress]</a></li>
<li><a class="reference" href="#resolveTAddress%2Cstring%2CPort%2CIpAddressFamily"
title="resolveTAddress(address: string; port: Port; family: IpAddressFamily): seq[
TransportAddress]">resolveTAddress(address: string; port: Port; family: IpAddressFamily): seq[
TransportAddress]</a></li>
</ul>
<ul class="simple nested-toc-section">setDualstack
<li><a class="reference" href="#setDualstack%2CAsyncFD%2CAddressFamily%2CDualStackType"
title="setDualstack(socket: AsyncFD; family: AddressFamily; flag: DualStackType): Result[
void, OSErrorCode]">setDualstack(socket: AsyncFD; family: AddressFamily; flag: DualStackType): Result[
void, OSErrorCode]</a></li>
<li><a class="reference" href="#setDualstack%2CAsyncFD%2CDualStackType"
title="setDualstack(socket: AsyncFD; flag: DualStackType): Result[void, OSErrorCode]">setDualstack(socket: AsyncFD; flag: DualStackType): Result[void, OSErrorCode]</a></li>
</ul>
<ul class="simple nested-toc-section">toHex
<li><a class="reference" href="#toHex%2CTransportAddress"
title="toHex(address: TransportAddress): string">toHex(address: TransportAddress): string</a></li>
</ul>
<ul class="simple nested-toc-section">toIpAddress
<li><a class="reference" href="#toIpAddress%2CTransportAddress"
title="toIpAddress(address: TransportAddress): IpAddress">toIpAddress(address: TransportAddress): IpAddress</a></li>
</ul>
<ul class="simple nested-toc-section">toSAddr
<li><a class="reference" href="#toSAddr%2CTransportAddress%2CSockaddr_storage%2CSockLen"
title="toSAddr(address: TransportAddress; sa: var Sockaddr_storage; sl: var SockLen)">toSAddr(address: TransportAddress; sa: var Sockaddr_storage; sl: var SockLen)</a></li>
</ul>
<ul class="simple nested-toc-section">windowsAnyAddressFix
<li><a class="reference" href="#windowsAnyAddressFix%2CTransportAddress"
title="windowsAnyAddressFix(a: TransportAddress): TransportAddress">windowsAnyAddressFix(a: TransportAddress): TransportAddress</a></li>
</ul>
</ul>
</li>
<li>
<a class="reference reference-toplevel" href="#18" id="68">Templates</a>
<ul class="simple simple-toc-section">
<ul class="simple nested-toc-section">checkClosed
<li><a class="reference" href="#checkClosed.t%2Cuntyped"
title="checkClosed(t: untyped)">checkClosed(t: untyped)</a></li>
<li><a class="reference" href="#checkClosed.t%2Cuntyped%2Cuntyped"
title="checkClosed(t: untyped; future: untyped)">checkClosed(t: untyped; future: untyped)</a></li>
</ul>
<ul class="simple nested-toc-section">checkWriteEof
<li><a class="reference" href="#checkWriteEof.t%2Cuntyped%2Cuntyped"
title="checkWriteEof(t: untyped; future: untyped)">checkWriteEof(t: untyped; future: untyped)</a></li>
</ul>
<ul class="simple nested-toc-section">getConnectionAbortedError
<li><a class="reference" href="#getConnectionAbortedError.t%2COSErrorCode"
title="getConnectionAbortedError(code: OSErrorCode): ref TransportAbortedError">getConnectionAbortedError(code: OSErrorCode): ref TransportAbortedError</a></li>
<li><a class="reference" href="#getConnectionAbortedError.t%2Cstring"
title="getConnectionAbortedError(m: string = &quot;&quot;): ref TransportAbortedError">getConnectionAbortedError(m: string = &quot;&quot;): ref TransportAbortedError</a></li>
</ul>
<ul class="simple nested-toc-section">getError
<li><a class="reference" href="#getError.t%2Cuntyped"
title="getError(t: untyped): ref TransportError">getError(t: untyped): ref TransportError</a></li>
</ul>
<ul class="simple nested-toc-section">getServerUseClosedError
<li><a class="reference" href="#getServerUseClosedError.t"
title="getServerUseClosedError(): ref TransportUseClosedError">getServerUseClosedError(): ref TransportUseClosedError</a></li>
</ul>
<ul class="simple nested-toc-section">getTransportError
<li><a class="reference" href="#getTransportError.t%2COSErrorCode"
title="getTransportError(ecode: OSErrorCode): untyped">getTransportError(ecode: OSErrorCode): untyped</a></li>
</ul>
<ul class="simple nested-toc-section">getTransportOsError
<li><a class="reference" href="#getTransportOsError.t%2Ccint"
title="getTransportOsError(err: cint): ref TransportOsError">getTransportOsError(err: cint): ref TransportOsError</a></li>
<li><a class="reference" href="#getTransportOsError.t%2COSErrorCode"
title="getTransportOsError(err: OSErrorCode): ref TransportOsError">getTransportOsError(err: OSErrorCode): ref TransportOsError</a></li>
</ul>
<ul class="simple nested-toc-section">getTransportTooManyError
<li><a class="reference" href="#getTransportTooManyError.t"
title="getTransportTooManyError(code = OSErrorCode(0)): ref TransportTooManyError">getTransportTooManyError(code = OSErrorCode(0)): ref TransportTooManyError</a></li>
</ul>
<ul class="simple nested-toc-section">getTransportUseClosedError
<li><a class="reference" href="#getTransportUseClosedError.t"
title="getTransportUseClosedError(): ref TransportUseClosedError">getTransportUseClosedError(): ref TransportUseClosedError</a></li>
</ul>
</ul>
</li>
<li>
<a class="reference reference-toplevel" href="#19" id="69">Exports</a>
<ul class="simple simple-toc-section">
</ul>
</li>
</ul>
</div>
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L1"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L1" class="link-seesrc" target="_blank" >Edit</a>
<div class="nine columns" id="content">
<div id="tocRoot"></div>
<p class="module-desc"></p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="../config.html">../config</a>, <a class="reference external" href="../asyncloop.html">../asyncloop</a>, <a class="reference external" href="../osdefs.html">../osdefs</a>, <a class="reference external" href="../oserrno.html">../oserrno</a>, <a class="reference external" href="../handles.html">../handles</a>
</dl></div>
<div class="section" id="7">
<h1><a class="toc-backref" href="#7">Types</a></h1>
<dl class="item">
<div id="AddressFamily">
<dt><pre><a href="common.html#AddressFamily"><span class="Identifier">AddressFamily</span></a> {.<span class="Identifier">pure</span>.} <span class="Other">=</span> <span class="Keyword">enum</span>
<span class="Identifier">None</span><span class="Other">,</span> <span class="Identifier">IPv4</span><span class="Other">,</span> <span class="Identifier">IPv6</span><span class="Other">,</span> <span class="Identifier">Unix</span></pre></dt>
<dd>
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L38"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L38" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="DualStackType">
<dt><pre><a href="common.html#DualStackType"><span class="Identifier">DualStackType</span></a> {.<span class="Identifier">pure</span>.} <span class="Other">=</span> <span class="Keyword">enum</span>
<span class="Identifier">Auto</span><span class="Other">,</span> <span class="Identifier">Enabled</span><span class="Other">,</span> <span class="Identifier">Disabled</span><span class="Other">,</span> <span class="Identifier">Default</span></pre></dt>
<dd>
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L35"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L35" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="ServerCommand">
<dt><pre><a href="common.html#ServerCommand"><span class="Identifier">ServerCommand</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
<span class="Identifier">Start</span><span class="Other">,</span> <span class="Identifier">Pause</span><span class="Other">,</span> <span class="Identifier">Stop</span></pre></dt>
<dd>
Server's commands
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L54"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L54" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="ServerFlags">
<dt><pre><a href="common.html#ServerFlags"><span class="Identifier">ServerFlags</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
<span class="Identifier">ReuseAddr</span><span class="Other">,</span> <span class="Identifier">ReusePort</span><span class="Other">,</span> <span class="Identifier">TcpNoDelay</span><span class="Other">,</span> <span class="Identifier">NoAutoRead</span><span class="Other">,</span> <span class="Identifier">GCUserData</span><span class="Other">,</span> <span class="Identifier">FirstPipe</span><span class="Other">,</span>
<span class="Identifier">NoPipeFlash</span><span class="Other">,</span> <span class="Identifier">Broadcast</span><span class="Other">,</span> <span class="Identifier">V4Mapped</span></pre></dt>
<dd>
Server's flags
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L30"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L30" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="ServerStatus">
<dt><pre><a href="common.html#ServerStatus"><span class="Identifier">ServerStatus</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
<span class="Identifier">Starting</span><span class="Other">,</span> <span class="Identifier">Stopped</span><span class="Other">,</span> <span class="Identifier">Running</span><span class="Other">,</span> <span class="Identifier">Closed</span></pre></dt>
<dd>
Server's statuses
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L60"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L60" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="SocketServer">
<dt><pre><a href="common.html#SocketServer"><span class="Identifier">SocketServer</span></a> <span class="Other">=</span> <span class="Keyword">ref</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <span class="Identifier">RootRef</span>
<span class="Identifier">sock</span><span class="Operator">*</span><span class="Other">:</span> <a href="../internal/asyncengine.html#AsyncFD"><span class="Identifier">AsyncFD</span></a>
<span class="Identifier">local</span><span class="Operator">*</span><span class="Other">:</span> <a href="common.html#TransportAddress"><span class="Identifier">TransportAddress</span></a>
<span class="Identifier">status</span><span class="Operator">*</span><span class="Other">:</span> <a href="common.html#ServerStatus"><span class="Identifier">ServerStatus</span></a>
<span class="Identifier">udata</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">pointer</span>
<span class="Identifier">flags</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">set</span><span class="Other">[</span><a href="common.html#ServerFlags"><span class="Identifier">ServerFlags</span></a><span class="Other">]</span>
<span class="Identifier">bufferSize</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int</span>
<span class="Identifier">loopFuture</span><span class="Operator">*</span><span class="Other">:</span> <a href="../futures.html#Future"><span class="Identifier">Future</span></a><span class="Other">[</span><span class="Identifier">void</span><span class="Other">]</span><span class="Other">.</span><span class="Identifier">Raising</span><span class="Other">(</span><span class="Other">[</span><span class="Other">]</span><span class="Other">)</span>
<span class="Identifier">domain</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">Domain</span>
<span class="Identifier">apending</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">bool</span>
<span class="Identifier">asock</span><span class="Operator">*</span><span class="Other">:</span> <a href="../internal/asyncengine.html#AsyncFD"><span class="Identifier">AsyncFD</span></a>
<span class="Identifier">errorCode</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">OSErrorCode</span>
<span class="Identifier">abuffer</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">array</span><span class="Other">[</span><span class="DecNumber">128</span><span class="Other">,</span> <span class="Identifier">byte</span><span class="Other">]</span>
<span class="Identifier">dualstack</span><span class="Operator">*</span><span class="Other">:</span> <a href="common.html#DualStackType"><span class="Identifier">DualStackType</span></a>
<span class="Keyword">when</span> <span class="Identifier">defined</span><span class="Other">(</span><span class="Identifier">windows</span><span class="Other">)</span><span class="Other">:</span>
<span class="Identifier">aovl</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">CustomOverlapped</span>
</pre></dt>
<dd>
Socket server object
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L69"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L69" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="TransportAbortedError">
<dt><pre><a href="common.html#TransportAbortedError"><span class="Identifier">TransportAbortedError</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="common.html#TransportError"><span class="Identifier">TransportError</span></a>
</pre></dt>
<dd>
Remote client disconnected before server accepts connection
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L121"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L121" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="TransportAddress">
<dt><pre><a href="common.html#TransportAddress"><span class="Identifier">TransportAddress</span></a> <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Keyword">case</span> <span class="Identifier">family</span><span class="Operator">*</span><span class="Other">:</span> <a href="common.html#AddressFamily"><span class="Identifier">AddressFamily</span></a>
<span class="Keyword">of</span> <span class="Identifier">AddressFamily</span><span class="Other">.</span><span class="Identifier">None</span><span class="Other">:</span>
<span class="Keyword">nil</span>
<span class="Keyword">of</span> <span class="Identifier">AddressFamily</span><span class="Other">.</span><span class="Identifier">IPv4</span><span class="Other">:</span>
<span class="Identifier">address_v4</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">array</span><span class="Other">[</span><span class="DecNumber">4</span><span class="Other">,</span> <span class="Identifier">uint8</span><span class="Other">]</span>
<span class="Keyword">of</span> <span class="Identifier">AddressFamily</span><span class="Other">.</span><span class="Identifier">IPv6</span><span class="Other">:</span>
<span class="Identifier">address_v6</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">array</span><span class="Other">[</span><span class="DecNumber">16</span><span class="Other">,</span> <span class="Identifier">uint8</span><span class="Other">]</span>
<span class="Keyword">of</span> <span class="Identifier">AddressFamily</span><span class="Other">.</span><span class="Identifier">Unix</span><span class="Other">:</span>
<span class="Identifier">address_un</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">array</span><span class="Other">[</span><span class="DecNumber">108</span><span class="Other">,</span> <span class="Identifier">uint8</span><span class="Other">]</span>
<span class="Identifier">port</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">Port</span>
</pre></dt>
<dd>
Transport network address
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L41"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L41" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="TransportAddressError">
<dt><pre><a href="common.html#TransportAddressError"><span class="Identifier">TransportAddressError</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="common.html#TransportError"><span class="Identifier">TransportError</span></a>
<span class="Identifier">code</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">OSErrorCode</span>
</pre></dt>
<dd>
Transport's address specific exception
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L110"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L110" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="TransportError">
<dt><pre><a href="common.html#TransportError"><span class="Identifier">TransportError</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="../internal/errors.html#AsyncError"><span class="Identifier">AsyncError</span></a>
</pre></dt>
<dd>
Transport's specific exception
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L101"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L101" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="TransportIncompleteError">
<dt><pre><a href="common.html#TransportIncompleteError"><span class="Identifier">TransportIncompleteError</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="common.html#TransportError"><span class="Identifier">TransportError</span></a>
</pre></dt>
<dd>
Transport's <tt class="docutils literal"><span class="pre"><span class="Identifier">incomplete</span> <span class="Identifier">data</span> <span class="Identifier">received</span></span></tt> exception
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L106"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L106" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="TransportLimitError">
<dt><pre><a href="common.html#TransportLimitError"><span class="Identifier">TransportLimitError</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="common.html#TransportError"><span class="Identifier">TransportError</span></a>
</pre></dt>
<dd>
Transport's <tt class="docutils literal"><span class="pre"><span class="Identifier">data</span> <span class="Identifier">limit</span> <span class="Identifier">reached</span></span></tt> exception
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L108"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L108" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="TransportNoSupport">
<dt><pre><a href="common.html#TransportNoSupport"><span class="Identifier">TransportNoSupport</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="common.html#TransportError"><span class="Identifier">TransportError</span></a>
</pre></dt>
<dd>
Transport's capability not supported exception
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L113"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L113" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="TransportOsError">
<dt><pre><a href="common.html#TransportOsError"><span class="Identifier">TransportOsError</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="common.html#TransportError"><span class="Identifier">TransportError</span></a>
<span class="Identifier">code</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">OSErrorCode</span>
</pre></dt>
<dd>
Transport's OS specific exception
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L103"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L103" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="TransportState">
<dt><pre><a href="common.html#TransportState"><span class="Identifier">TransportState</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
<span class="Identifier">ReadPending</span><span class="Other">,</span> <span class="Identifier">ReadPaused</span><span class="Other">,</span> <span class="Identifier">ReadClosed</span><span class="Other">,</span> <span class="Identifier">ReadEof</span><span class="Other">,</span> <span class="Identifier">ReadError</span><span class="Other">,</span> <span class="Identifier">WritePending</span><span class="Other">,</span>
<span class="Identifier">WritePaused</span><span class="Other">,</span> <span class="Identifier">WriteClosed</span><span class="Other">,</span> <span class="Identifier">WriteEof</span><span class="Other">,</span> <span class="Identifier">WriteError</span></pre></dt>
<dd>
Transport's state
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L124"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L124" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="TransportTooManyError">
<dt><pre><a href="common.html#TransportTooManyError"><span class="Identifier">TransportTooManyError</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="common.html#TransportError"><span class="Identifier">TransportError</span></a>
</pre></dt>
<dd>
Too many open file descriptors exception
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L119"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L119" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="TransportUseClosedError">
<dt><pre><a href="common.html#TransportUseClosedError"><span class="Identifier">TransportUseClosedError</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="common.html#TransportError"><span class="Identifier">TransportError</span></a>
</pre></dt>
<dd>
Usage after transport close exception
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L115"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L115" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="TransportUseEofError">
<dt><pre><a href="common.html#TransportUseEofError"><span class="Identifier">TransportUseEofError</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="common.html#TransportError"><span class="Identifier">TransportError</span></a>
</pre></dt>
<dd>
Usage after transport half-close exception
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L117"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L117" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
</dl></div>
<div class="section" id="8">
<h1><a class="toc-backref" href="#8">Vars</a></h1>
<dl class="item">
<div id="AnyAddress">
<dt><pre><a href="common.html#AnyAddress"><span class="Identifier">AnyAddress</span></a> <span class="Other">=</span> <a href="common.html#TransportAddress"><span class="Identifier">TransportAddress</span></a><span class="Other">(</span><span class="Identifier">family</span><span class="Other">:</span> <span class="DecNumber">AddressFamily.IPv4</span><span class="Other">,</span> <span class="Identifier">port</span><span class="Other">:</span> <span class="Identifier">Port</span><span class="Other">(</span><span class="DecNumber">0</span><span class="Other">)</span><span class="Other">)</span></pre></dt>
<dd>
Default INADDR_ANY address for IPv4
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L138"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L138" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="AnyAddress6">
<dt><pre><a href="common.html#AnyAddress6"><span class="Identifier">AnyAddress6</span></a> <span class="Other">=</span> <a href="common.html#TransportAddress"><span class="Identifier">TransportAddress</span></a><span class="Other">(</span><span class="Identifier">family</span><span class="Other">:</span> <span class="DecNumber">AddressFamily.IPv6</span><span class="Other">,</span> <span class="Identifier">port</span><span class="Other">:</span> <span class="Identifier">Port</span><span class="Other">(</span><span class="DecNumber">0</span><span class="Other">)</span><span class="Other">)</span></pre></dt>
<dd>
Default INADDR_ANY address for IPv6
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L140"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L140" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
</dl></div>
<div class="section" id="10">
<h1><a class="toc-backref" href="#10">Consts</a></h1>
<dl class="item">
<div id="DefaultDatagramBufferSize">
<dt><pre><a href="common.html#DefaultDatagramBufferSize"><span class="Identifier">DefaultDatagramBufferSize</span></a> <span class="Other">=</span> <span class="DecNumber">65536</span></pre></dt>
<dd>
Default buffer size for datagram transports
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L27"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L27" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="DefaultStreamBufferSize">
<dt><pre><a href="common.html#DefaultStreamBufferSize"><span class="Identifier">DefaultStreamBufferSize</span></a> <span class="Other">=</span> <span class="DecNumber">16384</span></pre></dt>
<dd>
Default buffer size for stream transports
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L25"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L25" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
</dl></div>
<div class="section" id="12">
<h1><a class="toc-backref" href="#12">Procs</a></h1>
<dl class="item">
<div id="$,TransportAddress">
<dt><pre><span class="Keyword">proc</span> <a href="#%24%2CTransportAddress"><span class="Identifier">`$`</span></a><span class="Other">(</span><span class="Identifier">address</span><span class="Other">:</span> <a href="common.html#TransportAddress"><span class="Identifier">TransportAddress</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">string</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
Returns string representation of <tt class="docutils literal"><span class="pre">address</span></tt>.
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L175"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L175" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="==,TransportAddress,TransportAddress">
<dt><pre><span class="Keyword">proc</span> <a href="#%3D%3D%2CTransportAddress%2CTransportAddress"><span class="Identifier">`==`</span></a><span class="Other">(</span><span class="Identifier">lhs</span><span class="Other">,</span> <span class="Identifier">rhs</span><span class="Other">:</span> <a href="common.html#TransportAddress"><span class="Identifier">TransportAddress</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">bool</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
Compare two transport addresses <tt class="docutils literal"><span class="pre">lhs</span></tt> and <tt class="docutils literal"><span class="pre">rhs</span></tt>. Return <tt class="docutils literal"><span class="pre">true</span></tt> if addresses are equal.
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L143"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L143" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="address,TransportAddress">
<dt><pre><span class="Keyword">proc</span> <a href="#address%2CTransportAddress"><span class="Identifier">address</span></a><span class="Other">(</span><span class="Identifier">ta</span><span class="Other">:</span> <a href="common.html#TransportAddress"><span class="Identifier">TransportAddress</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">IpAddress</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ValueError</span><span class="Other">]</span><span class="Other">,</span>
<span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<p>Converts <tt class="docutils literal"><span class="pre">TransportAddress</span></tt> to <tt class="docutils literal"><span class="pre">net.IpAddress</span></tt> object.</p>
<p>Note its impossible to convert <tt class="docutils literal"><span class="pre">TransportAddress</span></tt> of <tt class="docutils literal"><span class="pre">Unix</span></tt> family, because <tt class="docutils literal"><span class="pre">IpAddress</span></tt> supports only IPv4, IPv6 addresses.</p>
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L399"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L399" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="fromSAddr,ptr.Sockaddr_storage,SockLen,TransportAddress">
<dt><pre><span class="Keyword">proc</span> <a href="#fromSAddr%2Cptr.Sockaddr_storage%2CSockLen%2CTransportAddress"><span class="Identifier">fromSAddr</span></a><span class="Other">(</span><span class="Identifier">sa</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">Sockaddr_storage</span><span class="Other">;</span> <span class="Identifier">sl</span><span class="Other">:</span> <span class="Identifier">SockLen</span><span class="Other">;</span>
<span class="Identifier">address</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="common.html#TransportAddress"><span class="Identifier">TransportAddress</span></a><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
Set transport address <tt class="docutils literal"><span class="pre">address</span></tt> with value from OS specific socket address storage.
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L335"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L335" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="getAutoAddress,Port">
<dt><pre><span class="Keyword">proc</span> <a href="#getAutoAddress%2CPort"><span class="Identifier">getAutoAddress</span></a><span class="Other">(</span><span class="Identifier">port</span><span class="Other">:</span> <span class="Identifier">Port</span><span class="Other">)</span><span class="Other">:</span> <a href="common.html#TransportAddress"><span class="Identifier">TransportAddress</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L797"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L797" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="getAutoAddresses,Port,Port">
<dt><pre><span class="Keyword">proc</span> <a href="#getAutoAddresses%2CPort%2CPort"><span class="Identifier">getAutoAddresses</span></a><span class="Other">(</span><span class="Identifier">localPort</span><span class="Other">:</span> <span class="Identifier">Port</span><span class="Other">;</span> <span class="Identifier">remotePort</span><span class="Other">:</span> <span class="Identifier">Port</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">tuple</span><span class="Other">[</span>
<span class="Identifier">local</span><span class="Other">:</span> <a href="common.html#TransportAddress"><span class="Identifier">TransportAddress</span></a><span class="Other">,</span> <span class="Identifier">remote</span><span class="Other">:</span> <a href="common.html#TransportAddress"><span class="Identifier">TransportAddress</span></a><span class="Other">]</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L806"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L806" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="getDomain,TransportAddress">
<dt><pre><span class="Keyword">proc</span> <a href="#getDomain%2CTransportAddress"><span class="Identifier">getDomain</span></a><span class="Other">(</span><span class="Identifier">address</span><span class="Other">:</span> <a href="common.html#TransportAddress"><span class="Identifier">TransportAddress</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">Domain</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
Returns OS specific Domain from TransportAddress.
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L160"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L160" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="getDomain,AsyncFD">
<dt><pre><span class="Keyword">proc</span> <a href="#getDomain%2CAsyncFD"><span class="Identifier">getDomain</span></a><span class="Other">(</span><span class="Identifier">socket</span><span class="Other">:</span> <a href="../internal/asyncengine.html#AsyncFD"><span class="Identifier">AsyncFD</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">Result</span><span class="Other">[</span><a href="common.html#AddressFamily"><span class="Identifier">AddressFamily</span></a><span class="Other">,</span> <span class="Identifier">OSErrorCode</span><span class="Other">]</span> {.
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<p>Returns address family which is used to create socket <tt class="docutils literal"><span class="pre">socket</span></tt>.</p>
<p>Note: <tt class="docutils literal"><span class="pre"><span class="Identifier">chronos</span></span></tt> supports only <tt class="docutils literal"><span class="pre"><span class="Identifier">AF_INET</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="Identifier">AF_INET6</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">AF_UNIX</span></span></tt> sockets. For all other types of sockets this procedure returns <tt class="docutils literal"><span class="pre"><span class="Identifier">EAFNOSUPPORT</span><span class="Operator">/</span><span class="Identifier">WSAEAFNOSUPPORT</span></span></tt> error.</p>
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L736"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L736" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="host,TransportAddress">
<dt><pre><span class="Keyword">proc</span> <a href="#host%2CTransportAddress"><span class="Identifier">host</span></a><span class="Other">(</span><span class="Identifier">ta</span><span class="Other">:</span> <a href="common.html#TransportAddress"><span class="Identifier">TransportAddress</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">string</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<p>Returns <tt class="docutils literal"><span class="pre">host</span></tt> of TransportAddress <tt class="docutils literal"><span class="pre">ta</span></tt>.</p>
<p>For IPv4 and IPv6 addresses it will return IP address as string, or empty string for Unix address.</p>
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L413"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L413" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="initTAddress,IpAddress,Port">
<dt><pre><span class="Keyword">proc</span> <a href="#initTAddress%2CIpAddress%2CPort"><span class="Identifier">initTAddress</span></a><span class="Other">(</span><span class="Identifier">address</span><span class="Other">:</span> <span class="Identifier">IpAddress</span><span class="Other">;</span> <span class="Identifier">port</span><span class="Other">:</span> <span class="Identifier">Port</span><span class="Other">)</span><span class="Other">:</span> <a href="common.html#TransportAddress"><span class="Identifier">TransportAddress</span></a> {.
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
Initialize <tt class="docutils literal"><span class="pre">TransportAddress</span></tt> with net.nim <tt class="docutils literal"><span class="pre">IpAddress</span></tt> and port number <tt class="docutils literal"><span class="pre">port</span></tt>.
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L301"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L301" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="initTAddress,string">
<dt><pre><span class="Keyword">proc</span> <a href="#initTAddress%2Cstring"><span class="Identifier">initTAddress</span></a><span class="Other">(</span><span class="Identifier">address</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">)</span><span class="Other">:</span> <a href="common.html#TransportAddress"><span class="Identifier">TransportAddress</span></a> {.
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><a href="common.html#TransportAddressError"><span class="Identifier">TransportAddressError</span></a><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<p>Parses string representation of <tt class="docutils literal"><span class="pre">address</span></tt>. <tt class="docutils literal"><span class="pre">address</span></tt> can be IPv4, IPv6 or Unix domain address.</p>
<p>IPv4 transport address format is <tt class="docutils literal"><span class="pre">a.b.c.d:port</span></tt>. IPv6 transport address format is <tt class="docutils literal"><span class="pre">[::]:port</span></tt>. Unix transport address format is <tt class="docutils literal"><span class="pre">/address</span></tt>.</p>
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L225"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L225" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="initTAddress,string,int">
<dt><pre><span class="Keyword">proc</span> <a href="#initTAddress%2Cstring%2Cint"><span class="Identifier">initTAddress</span></a><span class="Other">(</span><span class="Identifier">address</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">;</span> <span class="Identifier">port</span><span class="Other">:</span> <span class="Identifier">int</span><span class="Other">)</span><span class="Other">:</span> <a href="common.html#TransportAddress"><span class="Identifier">TransportAddress</span></a> {.
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><a href="common.html#TransportAddressError"><span class="Identifier">TransportAddressError</span></a><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
Initialize <tt class="docutils literal"><span class="pre">TransportAddress</span></tt> with IP (IPv4 or IPv6) address <tt class="docutils literal"><span class="pre">address</span></tt> and port number <tt class="docutils literal"><span class="pre">port</span></tt>.
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L293"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L293" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="initTAddress,string,Port">
<dt><pre><span class="Keyword">proc</span> <a href="#initTAddress%2Cstring%2CPort"><span class="Identifier">initTAddress</span></a><span class="Other">(</span><span class="Identifier">address</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">;</span> <span class="Identifier">port</span><span class="Other">:</span> <span class="Identifier">Port</span><span class="Other">)</span><span class="Other">:</span> <a href="common.html#TransportAddress"><span class="Identifier">TransportAddress</span></a> {.
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><a href="common.html#TransportAddressError"><span class="Identifier">TransportAddressError</span></a><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
Initialize <tt class="docutils literal"><span class="pre">TransportAddress</span></tt> with IP (IPv4 or IPv6) address <tt class="docutils literal"><span class="pre">address</span></tt> and port number <tt class="docutils literal"><span class="pre">port</span></tt>.
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L275"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L275" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="isAvailable,AddressFamily">
<dt><pre><span class="Keyword">proc</span> <a href="#isAvailable%2CAddressFamily"><span class="Identifier">isAvailable</span></a><span class="Other">(</span><span class="Identifier">family</span><span class="Other">:</span> <a href="common.html#AddressFamily"><span class="Identifier">AddressFamily</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">bool</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L725"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L725" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="raiseTransportError,OSErrorCode">
<dt><pre><span class="Keyword">proc</span> <a href="#raiseTransportError%2COSErrorCode"><span class="Identifier">raiseTransportError</span></a><span class="Other">(</span><span class="Identifier">ecode</span><span class="Other">:</span> <span class="Identifier">OSErrorCode</span><span class="Other">)</span> {.
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><a href="common.html#TransportAbortedError"><span class="Identifier">TransportAbortedError</span></a><span class="Other">,</span> <a href="common.html#TransportTooManyError"><span class="Identifier">TransportTooManyError</span></a><span class="Other">,</span> <a href="common.html#TransportOsError"><span class="Identifier">TransportOsError</span></a><span class="Other">]</span><span class="Other">,</span>
</span><span class="Identifier">noreturn</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
Raises transport specific OS error.
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L704"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L704" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="raiseTransportOsError,OSErrorCode">
<dt><pre><span class="Keyword">proc</span> <a href="#raiseTransportOsError%2COSErrorCode"><span class="Identifier">raiseTransportOsError</span></a><span class="Other">(</span><span class="Identifier">err</span><span class="Other">:</span> <span class="Identifier">OSErrorCode</span><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><a href="common.html#TransportOsError"><span class="Identifier">TransportOsError</span></a><span class="Other">]</span><span class="Other">,</span>
<span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
Raises transport specific OS error.
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L604"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L604" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="resolveTAddress,string">
<dt><pre><span class="Keyword">proc</span> <a href="#resolveTAddress%2Cstring"><span class="Identifier">resolveTAddress</span></a><span class="Other">(</span><span class="Identifier">address</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="common.html#TransportAddress"><span class="Identifier">TransportAddress</span></a><span class="Other">]</span> {.
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><a href="common.html#TransportAddressError"><span class="Identifier">TransportAddressError</span></a><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<p>Resolve string representation of <tt class="docutils literal"><span class="pre">address</span></tt>.</p>
<p>Supported formats are: IPv4 numeric address <tt class="docutils literal"><span class="pre">a.b.c.d:port</span></tt> IPv6 numeric address <tt class="docutils literal"><span class="pre">[::]:port</span></tt> Hostname address <tt class="docutils literal"><span class="pre">hostname:port</span></tt></p>
<p>If hostname address is detected, then network address translation via DNS will be performed.</p>
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L468"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L468" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="resolveTAddress,string,Domain">
<dt><pre><span class="Keyword">proc</span> <a href="#resolveTAddress%2Cstring%2CDomain"><span class="Identifier">resolveTAddress</span></a><span class="Other">(</span><span class="Identifier">address</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">;</span> <span class="Identifier">domain</span><span class="Other">:</span> <span class="Identifier">Domain</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="common.html#TransportAddress"><span class="Identifier">TransportAddress</span></a><span class="Other">]</span> {.
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><a href="common.html#TransportAddressError"><span class="Identifier">TransportAddressError</span></a><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L446"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L446" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="resolveTAddress,string,AddressFamily">
<dt><pre><span class="Keyword">proc</span> <a href="#resolveTAddress%2Cstring%2CAddressFamily"><span class="Identifier">resolveTAddress</span></a><span class="Other">(</span><span class="Identifier">address</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">;</span> <span class="Identifier">family</span><span class="Other">:</span> <a href="common.html#AddressFamily"><span class="Identifier">AddressFamily</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span>
<a href="common.html#TransportAddress"><span class="Identifier">TransportAddress</span></a><span class="Other">]</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><a href="common.html#TransportAddressError"><span class="Identifier">TransportAddressError</span></a><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<p>Resolve string representation of <tt class="docutils literal"><span class="pre">address</span></tt>.</p>
<p>Supported formats are: IPv4 numeric address <tt class="docutils literal"><span class="pre">a.b.c.d:port</span></tt> IPv6 numeric address <tt class="docutils literal"><span class="pre">[::]:port</span></tt> Hostname address <tt class="docutils literal"><span class="pre">hostname:port</span></tt></p>
<p>If hostname address is detected, then network address translation via DNS will be performed.</p>
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L494"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L494" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="resolveTAddress,string,IpAddressFamily">
<dt><pre><span class="Keyword">proc</span> <a href="#resolveTAddress%2Cstring%2CIpAddressFamily"><span class="Identifier">resolveTAddress</span></a><span class="Other">(</span><span class="Identifier">address</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">;</span> <span class="Identifier">family</span><span class="Other">:</span> <span class="Identifier">IpAddressFamily</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span>
<a href="common.html#TransportAddress"><span class="Identifier">TransportAddress</span></a><span class="Other">]</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">deprecated</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><a href="common.html#TransportAddressError"><span class="Identifier">TransportAddressError</span></a><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<div class="deprecation-message">
<b>Deprecated</b>
</div>
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L531"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L531" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="resolveTAddress,string,Port">
<dt><pre><span class="Keyword">proc</span> <a href="#resolveTAddress%2Cstring%2CPort"><span class="Identifier">resolveTAddress</span></a><span class="Other">(</span><span class="Identifier">address</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">;</span> <span class="Identifier">port</span><span class="Other">:</span> <span class="Identifier">Port</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="common.html#TransportAddress"><span class="Identifier">TransportAddress</span></a><span class="Other">]</span> {.
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><a href="common.html#TransportAddressError"><span class="Identifier">TransportAddressError</span></a><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<p>Resolve string representation of <tt class="docutils literal"><span class="pre">address</span></tt>.</p>
<p>Supported formats are: IPv4 numeric address <tt class="docutils literal"><span class="pre">a.b.c.d:port</span></tt> IPv6 numeric address <tt class="docutils literal"><span class="pre">[::]:port</span></tt> Hostname address <tt class="docutils literal"><span class="pre">hostname:port</span></tt></p>
<p>If hostname address is detected, then network address translation via DNS will be performed.</p>
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L481"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L481" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="resolveTAddress,string,Port,Domain">
<dt><pre><span class="Keyword">proc</span> <a href="#resolveTAddress%2Cstring%2CPort%2CDomain"><span class="Identifier">resolveTAddress</span></a><span class="Other">(</span><span class="Identifier">address</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">;</span> <span class="Identifier">port</span><span class="Other">:</span> <span class="Identifier">Port</span><span class="Other">;</span> <span class="Identifier">domain</span><span class="Other">:</span> <span class="Identifier">Domain</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span>
<a href="common.html#TransportAddress"><span class="Identifier">TransportAddress</span></a><span class="Other">]</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><a href="common.html#TransportAddressError"><span class="Identifier">TransportAddressError</span></a><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L428"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L428" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="resolveTAddress,string,Port,AddressFamily">
<dt><pre><span class="Keyword">proc</span> <a href="#resolveTAddress%2Cstring%2CPort%2CAddressFamily"><span class="Identifier">resolveTAddress</span></a><span class="Other">(</span><span class="Identifier">address</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">;</span> <span class="Identifier">port</span><span class="Other">:</span> <span class="Identifier">Port</span><span class="Other">;</span> <span class="Identifier">family</span><span class="Other">:</span> <a href="common.html#AddressFamily"><span class="Identifier">AddressFamily</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span>
<a href="common.html#TransportAddress"><span class="Identifier">TransportAddress</span></a><span class="Other">]</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><a href="common.html#TransportAddressError"><span class="Identifier">TransportAddressError</span></a><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<p>Resolve string representation of <tt class="docutils literal"><span class="pre">address</span></tt>.</p>
<p><tt class="docutils literal"><span class="pre">address</span></tt> could be dot IPv4/IPv6 address or hostname.</p>
<p>If hostname address is detected, then network address translation via DNS will be performed.</p>
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L514"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L514" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="resolveTAddress,string,Port,IpAddressFamily">
<dt><pre><span class="Keyword">proc</span> <a href="#resolveTAddress%2Cstring%2CPort%2CIpAddressFamily"><span class="Identifier">resolveTAddress</span></a><span class="Other">(</span><span class="Identifier">address</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">;</span> <span class="Identifier">port</span><span class="Other">:</span> <span class="Identifier">Port</span><span class="Other">;</span> <span class="Identifier">family</span><span class="Other">:</span> <span class="Identifier">IpAddressFamily</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span>
<a href="common.html#TransportAddress"><span class="Identifier">TransportAddress</span></a><span class="Other">]</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">deprecated</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><a href="common.html#TransportAddressError"><span class="Identifier">TransportAddressError</span></a><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<div class="deprecation-message">
<b>Deprecated</b>
</div>
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L540"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L540" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="setDualstack,AsyncFD,AddressFamily,DualStackType">
<dt><pre><span class="Keyword">proc</span> <a href="#setDualstack%2CAsyncFD%2CAddressFamily%2CDualStackType"><span class="Identifier">setDualstack</span></a><span class="Other">(</span><span class="Identifier">socket</span><span class="Other">:</span> <a href="../internal/asyncengine.html#AsyncFD"><span class="Identifier">AsyncFD</span></a><span class="Other">;</span> <span class="Identifier">family</span><span class="Other">:</span> <a href="common.html#AddressFamily"><span class="Identifier">AddressFamily</span></a><span class="Other">;</span> <span class="Identifier">flag</span><span class="Other">:</span> <a href="common.html#DualStackType"><span class="Identifier">DualStackType</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">Result</span><span class="Other">[</span>
<span class="Identifier">void</span><span class="Other">,</span> <span class="Identifier">OSErrorCode</span><span class="Other">]</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L768"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L768" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="setDualstack,AsyncFD,DualStackType">
<dt><pre><span class="Keyword">proc</span> <a href="#setDualstack%2CAsyncFD%2CDualStackType"><span class="Identifier">setDualstack</span></a><span class="Other">(</span><span class="Identifier">socket</span><span class="Other">:</span> <a href="../internal/asyncengine.html#AsyncFD"><span class="Identifier">AsyncFD</span></a><span class="Other">;</span> <span class="Identifier">flag</span><span class="Other">:</span> <a href="common.html#DualStackType"><span class="Identifier">DualStackType</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">Result</span><span class="Other">[</span><span class="Identifier">void</span><span class="Other">,</span>
<span class="Identifier">OSErrorCode</span><span class="Other">]</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L787"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L787" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="toHex,TransportAddress">
<dt><pre><span class="Keyword">proc</span> <a href="#toHex%2CTransportAddress"><span class="Identifier">toHex</span></a><span class="Other">(</span><span class="Identifier">address</span><span class="Other">:</span> <a href="common.html#TransportAddress"><span class="Identifier">TransportAddress</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">string</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
Returns hexadecimal representation of <tt class="docutils literal"><span class="pre">address</span></tt>.
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L213"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L213" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="toIpAddress,TransportAddress">
<dt><pre><span class="Keyword">proc</span> <a href="#toIpAddress%2CTransportAddress"><span class="Identifier">toIpAddress</span></a><span class="Other">(</span><span class="Identifier">address</span><span class="Other">:</span> <a href="common.html#TransportAddress"><span class="Identifier">TransportAddress</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">IpAddress</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L204"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L204" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="toSAddr,TransportAddress,Sockaddr_storage,SockLen">
<dt><pre><span class="Keyword">proc</span> <a href="#toSAddr%2CTransportAddress%2CSockaddr_storage%2CSockLen"><span class="Identifier">toSAddr</span></a><span class="Other">(</span><span class="Identifier">address</span><span class="Other">:</span> <a href="common.html#TransportAddress"><span class="Identifier">TransportAddress</span></a><span class="Other">;</span> <span class="Identifier">sa</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">Sockaddr_storage</span><span class="Other">;</span>
<span class="Identifier">sl</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">SockLen</span><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
Set socket OS specific socket address storage with address from transport address <tt class="docutils literal"><span class="pre">address</span></tt>.
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L366"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L366" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="windowsAnyAddressFix,TransportAddress">
<dt><pre><span class="Keyword">proc</span> <a href="#windowsAnyAddressFix%2CTransportAddress"><span class="Identifier">windowsAnyAddressFix</span></a><span class="Other">(</span><span class="Identifier">a</span><span class="Other">:</span> <a href="common.html#TransportAddress"><span class="Identifier">TransportAddress</span></a><span class="Other">)</span><span class="Other">:</span> <a href="common.html#TransportAddress"><span class="Identifier">TransportAddress</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
BSD Sockets on *nix systems are able to perform connections to <tt class="docutils literal"><span class="pre"><span class="FloatNumber">0.0</span><span class="Operator">.</span><span class="FloatNumber">0.0</span></span></tt> or <tt class="docutils literal"><span class="pre"><span class="Punctuation">:</span><span class="Punctuation">:</span><span class="DecNumber">0</span></span></tt> which are equal to <tt class="docutils literal"><span class="pre"><span class="FloatNumber">127.0</span><span class="Operator">.</span><span class="FloatNumber">0.1</span></span></tt> or <tt class="docutils literal"><span class="pre"><span class="Punctuation">:</span><span class="Punctuation">:</span><span class="DecNumber">1</span></span></tt>.
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L549"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L549" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
</dl></div>
<div class="section" id="18">
<h1><a class="toc-backref" href="#18">Templates</a></h1>
<dl class="item">
<div id="checkClosed.t,untyped">
<dt><pre><span class="Keyword">template</span> <a href="#checkClosed.t%2Cuntyped"><span class="Identifier">checkClosed</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Identifier">untyped</span><span class="Other">)</span></pre></dt>
<dd>
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L570"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L570" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="checkClosed.t,untyped,untyped">
<dt><pre><span class="Keyword">template</span> <a href="#checkClosed.t%2Cuntyped%2Cuntyped"><span class="Identifier">checkClosed</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Identifier">untyped</span><span class="Other">;</span> <span class="Identifier">future</span><span class="Other">:</span> <span class="Identifier">untyped</span><span class="Other">)</span></pre></dt>
<dd>
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L574"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L574" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="checkWriteEof.t,untyped,untyped">
<dt><pre><span class="Keyword">template</span> <a href="#checkWriteEof.t%2Cuntyped%2Cuntyped"><span class="Identifier">checkWriteEof</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Identifier">untyped</span><span class="Other">;</span> <span class="Identifier">future</span><span class="Other">:</span> <span class="Identifier">untyped</span><span class="Other">)</span></pre></dt>
<dd>
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L580"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L580" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="getConnectionAbortedError.t,OSErrorCode">
<dt><pre><span class="Keyword">template</span> <a href="#getConnectionAbortedError.t%2COSErrorCode"><span class="Identifier">getConnectionAbortedError</span></a><span class="Other">(</span><span class="Identifier">code</span><span class="Other">:</span> <span class="Identifier">OSErrorCode</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ref</span> <a href="common.html#TransportAbortedError"><span class="Identifier">TransportAbortedError</span></a></pre></dt>
<dd>
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L651"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L651" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="getConnectionAbortedError.t,string">
<dt><pre><span class="Keyword">template</span> <a href="#getConnectionAbortedError.t%2Cstring"><span class="Identifier">getConnectionAbortedError</span></a><span class="Other">(</span><span class="Identifier">m</span><span class="Other">:</span> <span class="Identifier">string</span> <span class="Other">=</span> <span class="StringLit">&quot;&quot;</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ref</span> <a href="common.html#TransportAbortedError"><span class="Identifier">TransportAbortedError</span></a></pre></dt>
<dd>
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L643"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L643" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="getError.t,untyped">
<dt><pre><span class="Keyword">template</span> <a href="#getError.t%2Cuntyped"><span class="Identifier">getError</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Identifier">untyped</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ref</span> <a href="common.html#TransportError"><span class="Identifier">TransportError</span></a></pre></dt>
<dd>
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L586"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L586" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="getServerUseClosedError.t">
<dt><pre><span class="Keyword">template</span> <a href="#getServerUseClosedError.t"><span class="Identifier">getServerUseClosedError</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ref</span> <a href="common.html#TransportUseClosedError"><span class="Identifier">TransportUseClosedError</span></a></pre></dt>
<dd>
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L591"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L591" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="getTransportError.t,OSErrorCode">
<dt><pre><span class="Keyword">template</span> <a href="#getTransportError.t%2COSErrorCode"><span class="Identifier">getTransportError</span></a><span class="Other">(</span><span class="Identifier">ecode</span><span class="Other">:</span> <span class="Identifier">OSErrorCode</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">untyped</span></pre></dt>
<dd>
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L686"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L686" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="getTransportOsError.t,cint">
<dt><pre><span class="Keyword">template</span> <a href="#getTransportOsError.t%2Ccint"><span class="Identifier">getTransportOsError</span></a><span class="Other">(</span><span class="Identifier">err</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ref</span> <a href="common.html#TransportOsError"><span class="Identifier">TransportOsError</span></a></pre></dt>
<dd>
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L601"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L601" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="getTransportOsError.t,OSErrorCode">
<dt><pre><span class="Keyword">template</span> <a href="#getTransportOsError.t%2COSErrorCode"><span class="Identifier">getTransportOsError</span></a><span class="Other">(</span><span class="Identifier">err</span><span class="Other">:</span> <span class="Identifier">OSErrorCode</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ref</span> <a href="common.html#TransportOsError"><span class="Identifier">TransportOsError</span></a></pre></dt>
<dd>
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L597"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L597" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="getTransportTooManyError.t">
<dt><pre><span class="Keyword">template</span> <a href="#getTransportTooManyError.t"><span class="Identifier">getTransportTooManyError</span></a><span class="Other">(</span><span class="Identifier">code</span> <span class="Other">=</span> <span class="Identifier">OSErrorCode</span><span class="Other">(</span><span class="DecNumber">0</span><span class="Other">)</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ref</span> <a href="common.html#TransportTooManyError"><span class="Identifier">TransportTooManyError</span></a></pre></dt>
<dd>
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L609"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L609" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="getTransportUseClosedError.t">
<dt><pre><span class="Keyword">template</span> <a href="#getTransportUseClosedError.t"><span class="Identifier">getTransportUseClosedError</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ref</span> <a href="common.html#TransportUseClosedError"><span class="Identifier">TransportUseClosedError</span></a></pre></dt>
<dd>
&nbsp;&nbsp;<a
href="https://github.com/status-im/nim-chronos/tree/master/chronos/transports/common.nim#L594"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/status-im/nim-chronos/edit/devel/chronos/transports/common.nim#L594" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
</dl></div>
<div class="section" id="19">
<h1><a class="toc-backref" href="#19">Exports</a></h1>
<dl class="item">
<a href="../timer.html#==,Duration,Duration"><span class="Identifier">==</span></a>, <a href="../internal/asyncengine.html#==,AsyncFD,AsyncFD"><span class="Identifier">==</span></a>, <a href="../timer.html#==,Moment,Moment"><span class="Identifier">==</span></a>, <a href="../osdefs.html#==,SocketHandle,int"><span class="Identifier">==</span></a>, <a href="../osdefs.html#==,SocketHandle,SocketHandle"><span class="Identifier">==</span></a>, <a href="../srcloc.html#$,ptr.SrcLoc"><span class="Identifier">$</span></a>, <a href="../timer.html#$,Duration"><span class="Identifier">$</span></a>, <a href="../timer.html#$,Moment"><span class="Identifier">$</span></a>
</dl></div>
</div>
</div>
<div class="row">
<div class="twelve-columns footer">
<span class="nim-sprite"></span>
<br/>
<small style="color: var(--hint);">Made with Nim. Generated: 2025-07-07 12:42:20 UTC</small>
</div>
</div>
</div>
</div>
</body>
</html>