14      !"#$%&'()*+,-./ 0 1 2 3 PHandlerParams data type which is passed to individual connection.(c) 2015, Peter TrakoBSD3peter.trsko@gmail.comunstable (internal module)4DeriveDataTypeable, DeriveGeneric, NoImplicitPreludeSafe+0dAdditional parameters passed to connection handler that aren't part of specific connection context.Since version 0.1.3.See  for details._Lens for accessing read buffer size that handler should use when reading data from connection.Since version 0.1.3.4  = 32768 {Package streaming-commons < 0.1.13 used value 4096, streaming-commons == 0.1.13 used 32768, which is 8 * 4096, based on: 3https://github.com/fpco/streaming-commons/issues/22 issue #2244;Helper functions that aren't provided by streaming-commons.(c) 2014-2015, Peter TrakoBSD3peter.trsko@gmail.comunstable (internal module)(CPP, FlexibleContexts, NoImplicitPreludeNone4 Wrapper for  N with a type signature that is more natural for implementing a TCP specific  .$Definition changed in version 0.1.3.  Simplified   and  % that provides only construction of ' and passing it to a callback function.$Definition changed in version 0.1.3.  Wrapper for 5 that takes # instead of individual parameters.  Construct 8 that are passed to individual TCP connection handlers.Since version 0.1.3.  Wrapper for  V with a type signature that is more natural for implementing a UNIX Socket specific  .$Definition changed in version 0.1.3.  Simplified   and  % that provides only construction of ' and passing it to a callback function.$Definition changed in version 0.1.3. Construct @ that are passed to individual UNIX socket connection handlers.Since version 0.1.3.-Parameters passed down to connection handler ( -> m r) as part of definition of . Since version 0.1.3. ,Buffer size used while reading from socket. Since version 0.1.3. -Parameters passed down to connection handler ( -> m r) as part of definition of . Since version 0.1.3. ,Buffer size used while reading from socket. Since version 0.1.3.    &Resource pool construction parameters.(c) 2014, Peter TrakoBSD3peter.trsko@gmail.comunstable (internal module)6DeriveDataTypeable, NoImplicitPrelude, RecordWildCardsSafe+0SParameters of resource pool that describe things like its internal structure. See  for details. Instance for 6 introduced in version 0.2.}Lens for accessing stripe count. The number of distinct sub-pools to maintain. The smallest acceptable value is 1 (default).Lens for accessing amount of time for which an unused resource is kept open. The smallest acceptable value is 0.5 seconds (default).vLens for accessing maximum number of resources to keep open per stripe. The smallest acceptable value is 1 (default).?Check if all parameters for underlying resource pool are valid: >= 16 Number of connection sub-pools. Keeping it set to 1 is good for most applications. >= 1J Maximum number of connections in each stripe. Totally there can be  * $ open connections simultaneously. >= 0.5 Property specified for how long connection will be kept alive after it is released by back to the pool before it is automatically closed. Value is in seconds.For more details see .Since version 0.1.1.0.7  = 1  = 0.5  = 1 Parameters to validate.*Either error message or the same value of  passed as a first argument.7  7=ConnectionPool data type which is a specialized Pool wrapper.(c) 2014-2015, Peter TrakoBSD3peter.trsko@gmail.comunstable (internal module)DeriveDataTypeable, DeriveGeneric, FunctionalDependencies, FlexibleContexts, MultiParamTypeClasses, NamedFieldPuns, NoImplicitPrelude, RecordWildCardsNone+0479 Since version 0.2.Lens for accessing  wrapped in a data type.Simple specialized wrapper for 8.,Definition changed in version 0.1.3 and 0.2.  Instance for 6 introduced in version 0.2.See  for details.$Since version 0.1.3; changed in 0.2.See  for details.Since version 0.1.3.,Lens for accessing underlying resource pool 8 (connection, connectionInfo). Where  connection$ represents network connection and connectionInfoX is a protocol specific information associated with the same network connection as the  connection is.$Since version 0.1.3; changed in 0.2.Lens for accessing parameters passed down to connection handler. These information will usually be implementation specific. E.g. for  5https://hackage.haskell.org/package/streaming-commonsstreaming-commonsT >= 1.13 we use this to pass around read buffer size, for more details see module *Data.ConnectionPool.Internal.HandlerParams.Since version 0.1.3. Specialized wrapper for 9%, see its documentation for details.Definition changed in version 0.1.3 and version 0.2.!Specialized wrapper for :.Changed in version 0.2."Specialized wrapper for ;.Since version 0.2.#Destroy all connections that might be still open in a connection pool. This is useful when one needs to release all resources at once and not to wait for idle timeout to be reached.For more details see <.Since version 0.1.1.0.=Since version 0.1.3.  8Data type passed down to individual connection handlers.Since version 0.1.3./Acquire a connection which is represented by a  connection. There might be additional information associated with specific connection that we pass as a sencond value in a tuple. Such information are considered read only and aren't passed to release function (see next argument).Changed in version 0.2./Release a connection which is represented by a  connection.Changed in version 0.2.Data type representing all 9$ parameters that describe internal 8 parameters.OCreated connection pool that is parametrised by additional connection details.!"#=  !"#  #!"  !"#==Family of connection pools specialized by transport protocol.(c) 2014-2015, Peter TrakoBSD3peter.trsko@gmail.comstablefCPP, DeriveDataTypeable, PolyKinds, StandaloneDeriving, NoImplicitPrelude, TypeFamiliesSafe'*+>L$>Family of connection pools parametrised by transport protocol.EDefinition changed version 0.2 to be kind polymorphic (only on GHC >= 87.10) and became part of stable API by being moved in to Data.ConnectionPool.Family module.$$$$1Type class for common connection pool operations.(c) 2015, Peter TrakoBSD3peter.trsko@gmail.comunstablePCPP, FlexibleContexts, NoImplicitPrelude, PolyKinds, TypeFamiliesSafe'4>L%Type class for common connection pool operations. It intentionally doesn't handle connection pool creation, which is best left to dedicated smart constructors.Since version 0.2.&-Data passed to individual connection handler.'fTemporarily take a connection from a pool, run handler with it, and return it to the pool afterwards.Since version 0.2.( Similar to 'I, but only performs action if a connection could be taken from the pool without blocking. Otherwise, tryWithResource returns immediately with Nothing (ie. the action function is not called). Conversely, if a connection can be acquired from the pool without blocking, the action is performed and it's result is returned, wrapped in a Just.Since version 0.2.)Destroy all connections that might be still open in a connection pool. This is useful when one needs to release all resources at once and not to wait for idle timeout to be reached.Since version 0.2.%&'()%&'()%&'()%&'()=Family of connection pools specialized by transport protocol.(c) 2014-2015, Peter TrakoBSD3peter.trsko@gmail.comunstable (internal module)CPP, DeriveDataTypeable, DeriveGeneric, FlexibleInstances, MultiParamTypeClasses, NoImplicitPrelude, PolyKinds, StandaloneDeriving, TypeFamiliesNone '*+0357>L*<Type tag used to specialize connection pool for TCP clients. Instance for 6 introduced in version 0.2.+'Create connection pool for TCP clients.,Temporarily take a TCP connection from a pool, run client with it, and return it to the pool afterwards. For details how connections are allocated see .- Similar to 'M, but only performs action if a TCP connection could be taken from the pool without blocking. Otherwise, tryWithResource returns immediately with > (ie. the action function is not called). Conversely, if a connection can be acquired from the pool without blocking, the action is performed and it's result is returned, wrapped in a Just.Since version 0.2..Destroy all TCP connections that might be still open in a connection pool. This is useful when one needs to release all resources at once and not to wait for idle timeout to be reached.For more details see .Since version 0.1.1.0.?Defined using: ' = , ) = . Since version 0.2.@Since version 0.2.A Connection pool for TCP clients.,Definition changed in version 0.1.3 and 0.2. Instances for 6 and B introduced in version 0.2. *C+,-.?@A$*C+,-.$*+,-.*+,-.?@AC =Family of connection pools specialized by transport protocol.(c) 2014-2015, Peter TrakoBSD3peter.trsko@gmail.comunstable (internal module)CPP, DeriveDataTypeable, DeriveGeneric, FlexibleInstances, MultiParamTypeClasses, NoImplicitPrelude, PolyKinds, StandaloneDeriving, TupleSections, TypeFamiliesNone '*+0357>FL/DType tag used to specialize connection pool for UNIX Socket clients. Instance for 6 introduced in version 0.2.00Create connection pool for UNIX Sockets clients.1Temporarily take a UNIX Sockets connection from a pool, run client with it, and return it to the pool afterwards. For details how connections are allocated see .2 Similar to 'V, but only performs action if a UNIX Sockets connection could be taken from the pool without blocking. Otherwise, tryWithResource returns immediately with Nothing (ie. the action function is not called). Conversely, if a connection can be acquired from the pool without blocking, the action is performed and it's result is returned, wrapped in a Just.Since version 0.2.3Destroy all UNIX Sockets connections that might be still open in a connection pool. This is useful when one needs to release all resources at once and not to wait for idle timeout to be reached.For more details see .Since version 0.1.1.0.DDefined using: ' = 1 ) = 3 Since version 0.2.ESince version 0.2.F(Connection pool for UNIX Socket clients.,Definition changed in version 0.1.3 and 0.2. Instances for 6 and B introduced in version 0.2. /G0123DEF$/G0123$/0123/0123DEFG1Connection pools for various transport protocols.(c) 2014-2015, Peter TrakoBSD3peter.trsko@gmail.comunstableCPP, NoImplicitPreludeNone$%&'()*+,-./0123$*+,-./0123%&'()H !"#$%%&'()*+,-.//01234 56/78 569:;<= > ? @ A BC DEFGHIIIIJIKELMNOPEQRS T U V WXconne_8SMz4KzmXx2ITk1Hi6UDrKData.ConnectionPool*Data.ConnectionPool.Internal.HandlerParams&Data.ConnectionPool.Internal.Streaming/Data.ConnectionPool.Internal.ResourcePoolParams+Data.ConnectionPool.Internal.ConnectionPoolData.ConnectionPool.FamilyData.ConnectionPool.Class Data.ConnectionPool.Internal.TCP!Data.ConnectionPool.Internal.UnixwithConnectionData.Streaming.Network runTCPClient runTCPServer runUnixClient runUnixServer Data.Pool createPool withResourcePooldestroyAllResourcesstrea_DGqjBf0vAJlDggX4NRDaSwData.Streaming.Network.InternalClientSettingsClientSettingsUnix AppDataUnixAppData HandlerParams_readBufferSizereadBufferSize runTcpApp runTcpAppImplacquireTcpClientConnectionfromClientSettings runUnixApprunUnixAppImplfromClientSettingsUnixResourcePoolParams_numberOfStripes_resourceIdleTimeout_numberOfResourcesPerStripenumberOfStripesresourceIdleTimeoutnumberOfResourcesPerStripevalidateResourcePoolParamsHasConnectionPoolconnectionPoolConnectionPool _resourcePool_handlerParams resourcePool handlerParamscreateConnectionPooltryWithConnectiondestroyAllConnectionsConnectionPoolFor HandlerData TcpClientcreateTcpClientPoolwithTcpClientConnectiontryWithTcpClientConnectiondestroyAllTcpClientConnections UnixClientcreateUnixClientPoolwithUnixClientConnectiontryWithUnixClientConnectiondestroyAllUnixClientConnections$fDefaultHandlerParamsgetSocketFamilyTCPbase GHC.GenericsGeneric$fDefaultResourcePoolParamsresou_GmuxlcCyhScKJ6c0kSnwTztryWithResource$fShowConnectionPoolGHC.BaseNothing$fConnectionPoolFor*TcpClient<$fHasConnectionPoolHandlerParamsSocketSockAddrConnectionPoolTFCo:R:ConnectionPool*TcpClientGHC.ShowShowTcpConnectionPool$fConnectionPoolFor*UnixClient6$fHasConnectionPoolHandlerParamsSocket()ConnectionPool TFCo:R:ConnectionPool*UnixClientUnixConnectionPool