_,W_r      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopq  Safe-Inferred+)hostname and port (ex. "localhost:11211")statistic property list Safe-Inferred+rRead data from a handler a I/O handler data lengthrr Safe-Inferred+ Safe-Inferred+'response messages from memcached serverResponse parser by attoparsec.%Response header parser by attoparsec.Parse a response.%Parse a response but only its header.s(Convert a response to bytestring chunks. tuvwxyzs{    tuvwxyzs{ Safe-Inferred+Send a message send socket FlushAllOpReceive a message^You may need to specify the return type when you call this function like the code shown below. +mresp <- recv socket :: IO (Maybe Response) Safe-Inferred+1parse option strings2parse a option string3 update the value of an operation4"get the value size of an operation5get the key of an operation6)true if an operation is an update command7)true if an operation is a storage command8+true if an operation is a retrieval command9'true if an operation has noreply option:Parse an operation.;'Parse an operation but only its header.<command parser by attoparsec=#command header parser by attoparsec|'convert a response to bytestring chunks3} !"#$%~&'()*+,-./0123456789:;<=|! !"#$%&'()*+,-./0123456789:;<=!/0.-,+*)('&%$#"! 68972154:;<=3D.-,+*)('&%$#"! ~~}/0123456789:;<=|None+24> Value classA Key classC9Client is a handler corresponding to a memcached session.D-Get the hostname and port pair from a handlerEGet the socket from a handlerF2Open a client session and return a client handler.GClose a client session.HConnect and execute an action.I4Connect to one of given hosts and execute an action. import Network.Memcache main = do mValue <- withClient "127.0.0.1:11211" $ \client -> get client "key" case mValue of Nothing -> putStrLn "(no value)" Just value -> putStrLn value?Note that this function doesn't retry the action when it fails.JMConnect to the given hosts one by one and execute the action for each client.If you'd like to clear all the data in your cluster, you can use this function to issue "flush_all" command to each memcache node. e main = do ret <- forEachClient ["192.168.0.1:11211", "192.168.0.2:11211"] $ flushAll print retK Set an itemLSet an item with exptimeM Cas an itemNCas an item with exptimeO Add an itemPAdd an item with exptimeQReplace an itemRReplace an item with exptimeS Get an itemTGet an item and its versionUDelete an itemVIncrement an itemWDecrement an itemXFlush all itemsYAcquire statistic information8To get each statistic value from the resulted list, use Network.Memcache.Stats module.Z,Acquire statistic information with arguments8To get each statistic value from the resulted list, use Network.Memcache.Stats module.'>?@ABCDEF node key (eg. "127.0.0.1:11211")client handlerGa client handlerHa node0an action to be executed with a memcache sessionthe result of the given actionI a node list0an action to be executed with a memcache sessionthe result of the given actionJ a node list0an action to be executed with a memcache sessionthe result of the given actionKa client handlera keya value!true if the value has been storedLa client handlera keya valueexptime!true if the value has been storedMa client handlera keya value$a version number got by gets command!true if the value has been storedNa client handlera keya value$a version number got by gets commandexptime!true if the value has been storedOa client handlera keya valuePa client handlera keya valueexptimeQa client handlera keya value!true if the value has been storedRa client handlera keya valueexptime!true if the value has been storedSa client handlera key(the value corresponding to the given keyTa client handlera key3the value and version pair corresponding to the keyUa client handlera key!true if the item has been deletedVa client handlera keydeltaa resulted valueWa client handlera keydeltaa resulted valueXa client handler OK if all items has been removedYa client handlera property listZa client handler argumentsa property list>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ!CDEAB>?@FGDEHIJKLMNOPQRSTUVWXYZ!>?@ABCDEFGHIJKLMNOPQRSTUVWXYZNone+[get any stats value as a string\ pid (32u)] uptime (32u)^time (32u) unix time_version (string)`pointer_size (32)arusage_user (32u.32u)brusage_system (32u.32u)ccurr_items (32u)dtotal_items (32u)e bytes (64u)fcurr_connections (32u)gtotal_connections (32u)hconnection_structures (32u)i cmd_get (64u)j cmd_set (64u)kget_hits (64u)lget_misses (64u)mevictions (64u)nbytes_read (64u)obytes_written (64u)plimit_maxbytes (32u)q threads (32u)[\]^_`abcdefghijklmnopq[\]^_`abcdefghijklmnopq[\]^_`abcdefghijklmnopq[\]^_`abcdefghijklmnopq *Kiyoshi Ikehara <kiyoshi.ikehara@gree.net>None+:>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopq     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~memcache-haskell-0.0.10Network.Memcache.TypesNetwork.Memcache.ClassNetwork.Memcache.ResponseNetwork.Memcache.IONetwork.Memcache.OpNetwork.Memcache.ClientNetwork.Memcache.StatsNetwork.Memcache.IO.InternalNetwork.MemcacheNodekey StatsListMessage parseHeadertoChunks recvContentResponseCodeStatVersion ClientError ServerErrorErrorTouchedFoundDeletedNotFoundExists NotStoredStoredEndValueOkresponseParserresponseHeaderParser parseResponseparseResponseHeadersendrecvOpStatsOpQuitOp VersionOp FlushAllOpPingOpTouchOpDecrOpIncrOpDeleteOpGetsOpGetOp PrependOpAppendOp ReplaceOpAddOpCasOpSetOpOptionNoreply toOptionstoOption updateOpValuebytesOfkeyOf isWriteOp isStorageOpisReadOp isNoreplyOpparseOp parseOpHeaderopParseropHeaderParserserializeValuedeserializeValueKeytoBSClient clientNodekey clientSocket openClient closeClient withClient withClients forEachClientsetsetExcascasExaddaddExreplace replaceExgetgetsdeleteincrdecrflushAllstats statsWithArgsgetValuegetPid getUptimegetTime getVersiongetPointerSize getRusageUsergetRusageSystem getCurrItems getTotalItemsgetBytesgetCurrConnectionsgetTotalConnectionsgetConnectionStructures getCmdGet getCmdSet getGetHits getGetMisses getEvictions getBytesReadgetBytesWrittengetLimitMaxbytes getThreads readBytes_resKey_resFlag_resLen _resValue _resVersionresponseParser'parseResponse'$fMessageResponseargsvalue'keysversionkeyflagsexptimebytesvalueoptionsBytesTValueTparseOp' opParser' $fMessageOp $fReadOption $fShowOptionMemcachedClientset'opExretrievehostnameAndPortignoreException$fValueByteString $fValue[]$fKeyByteString$fKey[] getValueAs