Hello community,

here is the log from the commit of package ghc-streaming-commons for 
openSUSE:Factory checked in at 2015-09-17 09:19:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-streaming-commons (Old)
 and      /work/SRC/openSUSE:Factory/.ghc-streaming-commons.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ghc-streaming-commons"

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/ghc-streaming-commons/ghc-streaming-commons.changes  
    2015-08-10 09:15:57.000000000 +0200
+++ 
/work/SRC/openSUSE:Factory/.ghc-streaming-commons.new/ghc-streaming-commons.changes
 2015-09-17 09:19:37.000000000 +0200
@@ -1,0 +2,6 @@
+Sun Sep 13 13:00:44 UTC 2015 - mimi...@gmail.com
+
+- update to 0.1.13
+* Make size of read buffer configurable, change default size to 32 kiB
+
+-------------------------------------------------------------------

Old:
----
  streaming-commons-0.1.12.1.tar.gz

New:
----
  streaming-commons-0.1.13.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ghc-streaming-commons.spec ++++++
--- /var/tmp/diff_new_pack.RhmyZX/_old  2015-09-17 09:19:37.000000000 +0200
+++ /var/tmp/diff_new_pack.RhmyZX/_new  2015-09-17 09:19:37.000000000 +0200
@@ -21,7 +21,7 @@
 %bcond_with tests
 
 Name:           ghc-streaming-commons
-Version:        0.1.12.1
+Version:        0.1.13
 Release:        0
 Summary:        Common lower-level functions needed by various streaming data 
libraries
 License:        MIT

++++++ streaming-commons-0.1.12.1.tar.gz -> streaming-commons-0.1.13.tar.gz 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/streaming-commons-0.1.12.1/ChangeLog.md 
new/streaming-commons-0.1.13/ChangeLog.md
--- old/streaming-commons-0.1.12.1/ChangeLog.md 2015-05-15 06:29:28.000000000 
+0200
+++ new/streaming-commons-0.1.13/ChangeLog.md   2015-09-10 17:21:38.000000000 
+0200
@@ -1,3 +1,7 @@
+## 0.1.13
+
+* Make size of read buffer configurable, change default size to 32 kiB 
[#23](https://github.com/fpco/streaming-commons/pull/23)
+
 ## 0.1.12.1
 
 * Fix up `acceptSafe` as [mentioned by 
Kazu](https://github.com/yesodweb/wai/issues/361#issuecomment-102204803)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/streaming-commons-0.1.12.1/Data/Streaming/Network/Internal.hs 
new/streaming-commons-0.1.13/Data/Streaming/Network/Internal.hs
--- old/streaming-commons-0.1.12.1/Data/Streaming/Network/Internal.hs   
2015-05-15 06:29:28.000000000 +0200
+++ new/streaming-commons-0.1.13/Data/Streaming/Network/Internal.hs     
2015-09-10 17:21:38.000000000 +0200
@@ -24,6 +24,7 @@
     , serverSocket :: !(Maybe Socket) -- ^ listening socket
     , serverAfterBind :: !(Socket -> IO ())
     , serverNeedLocalAddr :: !Bool
+    , serverReadBufferSize :: !Int
     }
 
 -- | Settings for a TCP client, specifying how to connect to the server.
@@ -31,6 +32,7 @@
     { clientPort :: !Int
     , clientHost :: !ByteString
     , clientAddrFamily :: !Family
+    , clientReadBufferSize :: !Int
     }
 
 -- | Which host to bind.
@@ -71,11 +73,13 @@
 data ServerSettingsUnix = ServerSettingsUnix
     { serverPath :: !FilePath
     , serverAfterBindUnix :: !(Socket -> IO ())
+    , serverReadBufferSizeUnix :: !Int
     }
 
 -- | Settings for a Unix domain sockets client.
 data ClientSettingsUnix = ClientSettingsUnix
     { clientPath :: !FilePath
+    , clientReadBufferSizeUnix :: !Int
     }
 
 -- | The data passed to a Unix domain sockets @Application@.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/streaming-commons-0.1.12.1/Data/Streaming/Network.hs 
new/streaming-commons-0.1.13/Data/Streaming/Network.hs
--- old/streaming-commons-0.1.12.1/Data/Streaming/Network.hs    2015-05-15 
06:29:28.000000000 +0200
+++ new/streaming-commons-0.1.13/Data/Streaming/Network.hs      2015-09-10 
17:21:38.000000000 +0200
@@ -37,6 +37,7 @@
     , setAddrFamily
     , setAfterBind
     , setNeedLocalAddr
+    , setReadBufferSize
 #if !WINDOWS
     , setPath
 #endif
@@ -46,6 +47,7 @@
     , getAddrFamily
     , getAfterBind
     , getNeedLocalAddr
+    , getReadBufferSize
 #if !WINDOWS
     , getPath
 #endif
@@ -272,6 +274,9 @@
 bindRandomPortUDP :: HostPreference -> IO (Int, Socket)
 bindRandomPortUDP = bindRandomPortGen NS.Datagram
 
+defaultReadBufferSize :: Int
+defaultReadBufferSize = 32768
+
 #if !WINDOWS
 -- | Attempt to connect to the given Unix domain socket path.
 getSocketUnix :: FilePath -> IO Socket
@@ -313,6 +318,7 @@
 serverSettingsUnix path = ServerSettingsUnix
     { serverPath = path
     , serverAfterBindUnix = const $ return ()
+    , serverReadBufferSizeUnix = defaultReadBufferSize
     }
 
 -- | Smart constructor.
@@ -321,6 +327,7 @@
     -> ClientSettingsUnix
 clientSettingsUnix path = ClientSettingsUnix
     { clientPath = path
+    , clientReadBufferSizeUnix = defaultReadBufferSize
     }
 #endif
 
@@ -359,6 +366,7 @@
     , serverSocket = Nothing
     , serverAfterBind = const $ return ()
     , serverNeedLocalAddr = False
+    , serverReadBufferSize = defaultReadBufferSize
     }
 
 -- | Create a server settings that uses an already available listening socket.
@@ -372,6 +380,7 @@
     , serverSocket = Just lsocket
     , serverAfterBind = const $ return ()
     , serverNeedLocalAddr = False
+    , serverReadBufferSize = defaultReadBufferSize
     }
 
 -- | Smart constructor.
@@ -390,6 +399,7 @@
     { clientPort = port
     , clientHost = host
     , clientAddrFamily = NS.AF_UNSPEC
+    , clientReadBufferSize = defaultReadBufferSize
     }
 
 -- | Attempt to connect to the given host/port/address family.
@@ -525,10 +535,27 @@
 setAfterBind :: HasAfterBind a => (Socket -> IO ()) -> a -> a
 setAfterBind p = runIdentity . afterBindLens (const (Identity p))
 
+class HasReadBufferSize a where
+    readBufferSizeLens :: Functor f => (Int -> f Int) -> a -> f a
+instance HasReadBufferSize ServerSettings where
+    readBufferSizeLens f ss = fmap (\p -> ss { serverReadBufferSize = p }) (f 
(serverReadBufferSize ss))
+instance HasReadBufferSize ClientSettings where
+    readBufferSizeLens f cs = fmap (\p -> cs { clientReadBufferSize = p }) (f 
(clientReadBufferSize cs))
+#if !WINDOWS
+instance HasReadBufferSize ServerSettingsUnix where
+    readBufferSizeLens f ss = fmap (\p -> ss { serverReadBufferSizeUnix = p }) 
(f (serverReadBufferSizeUnix ss))
+#endif
+
+getReadBufferSize :: HasReadBufferSize a => a -> Int
+getReadBufferSize = getConstant . readBufferSizeLens Constant
+
+setReadBufferSize :: HasReadBufferSize a => Int -> a -> a
+setReadBufferSize p = runIdentity . readBufferSizeLens (const (Identity p))
+
 type ConnectionHandle = Socket -> NS.SockAddr -> Maybe NS.SockAddr -> IO ()
 
 runTCPServerWithHandle :: ServerSettings -> ConnectionHandle -> IO a
-runTCPServerWithHandle (ServerSettings port host msocket afterBind 
needLocalAddr) handle =
+runTCPServerWithHandle (ServerSettings port host msocket afterBind 
needLocalAddr _) handle =
     case msocket of
         Nothing -> E.bracket (bindPortTCP port host) NS.sClose inner
         Just lsocket -> inner lsocket
@@ -555,7 +582,7 @@
 runTCPServer settings app = runTCPServerWithHandle settings app'
   where app' socket addr mlocal =
           let ad = AppData
-                { appRead' = safeRecv socket 4096
+                { appRead' = safeRecv socket $ getReadBufferSize settings
                 , appWrite' = sendAll socket
                 , appSockAddr' = addr
                 , appLocalAddr' = mlocal
@@ -567,11 +594,11 @@
 
 -- | Run an @Application@ by connecting to the specified server.
 runTCPClient :: ClientSettings -> (AppData -> IO a) -> IO a
-runTCPClient (ClientSettings port host addrFamily) app = E.bracket
+runTCPClient (ClientSettings port host addrFamily readBufferSize) app = 
E.bracket
     (getSocketFamilyTCP host port addrFamily)
     (NS.sClose . fst)
     (\(s, address) -> app AppData
-        { appRead' = safeRecv s 4096
+        { appRead' = safeRecv s readBufferSize
         , appWrite' = sendAll s
         , appSockAddr' = address
         , appLocalAddr' = Nothing
@@ -621,7 +648,7 @@
 -- new listening socket, accept connections on it, and spawn a new thread for
 -- each connection.
 runUnixServer :: ServerSettingsUnix -> (AppDataUnix -> IO ()) -> IO a
-runUnixServer (ServerSettingsUnix path afterBind) app = E.bracket
+runUnixServer (ServerSettingsUnix path afterBind readBufferSize) app = 
E.bracket
     (bindPath path)
     NS.sClose
     (\socket -> do
@@ -633,7 +660,7 @@
         (\(socket, _) -> NS.sClose socket)
         $ \(socket, _) -> do
             let ad = AppDataUnix
-                    { appReadUnix = safeRecv socket 4096
+                    { appReadUnix = safeRecv socket readBufferSize
                     , appWriteUnix = sendAll socket
                     }
             _ <- E.mask $ \restore -> forkIO
@@ -643,11 +670,11 @@
 
 -- | Run an @Application@ by connecting to the specified server.
 runUnixClient :: ClientSettingsUnix -> (AppDataUnix -> IO a) -> IO a
-runUnixClient (ClientSettingsUnix path) app = E.bracket
+runUnixClient (ClientSettingsUnix path readBufferSize) app = E.bracket
     (getSocketUnix path)
     NS.sClose
     (\sock -> app AppDataUnix
-        { appReadUnix = safeRecv sock 4096
+        { appReadUnix = safeRecv sock readBufferSize
         , appWriteUnix = sendAll sock
         })
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/streaming-commons-0.1.12.1/streaming-commons.cabal 
new/streaming-commons-0.1.13/streaming-commons.cabal
--- old/streaming-commons-0.1.12.1/streaming-commons.cabal      2015-05-15 
06:29:28.000000000 +0200
+++ new/streaming-commons-0.1.13/streaming-commons.cabal        2015-09-10 
17:21:38.000000000 +0200
@@ -1,5 +1,5 @@
 name:                streaming-commons
-version:             0.1.12.1
+version:             0.1.13
 synopsis:            Common lower-level functions needed by various streaming 
data libraries
 description:         Provides low-dependency functionality commonly needed by 
various streaming data libraries, such as conduit and pipes.
 homepage:            https://github.com/fpco/streaming-commons


Reply via email to