module Network.Rserve.Constants where import Data.Binary import Data.Bits cmds :: [(String, Word32)] cmds = [("login", cmdLogin), ("voidEval", cmdVoidEval), ("eval", cmdEval), ("shutdown", cmdShutdown), ("openFile", cmdOpenFile), ("createFile", cmdCreateFile), ("closeFile", cmdCloseFile), ("readFile", cmdReadFile), ("writeFile", cmdWriteFile), ("removeFile", cmdRemoveFile), ("setSexp", cmdSetSexp), ("assignSexp", cmdAssignSexp), ("detachSession", cmdDetachSession), ("detachedVoidEval", cmdDetachedVoidEval), ("attachSession", cmdAttachSession)] cmdLogin :: Word32 cmdLogin = 0x0001 cmdVoidEval :: Word32 cmdVoidEval = 0x0002 cmdEval :: Word32 cmdEval = 0x0003 cmdShutdown :: Word32 cmdShutdown = 0x0004 cmdOpenFile :: Word32 cmdOpenFile = 0x0010 cmdCreateFile ::Word32 cmdCreateFile = 0x0011 cmdCloseFile :: Word32 cmdCloseFile = 0x0012 cmdReadFile :: Word32 cmdReadFile = 0x0013 cmdWriteFile :: Word32 cmdWriteFile = 0x0014 cmdRemoveFile ::Word32 cmdRemoveFile = 0x0015 cmdSetSexp :: Word32 cmdSetSexp = 0x0020 cmdAssignSexp :: Word32 cmdAssignSexp = 0x0021 cmdDetachSession :: Word32 cmdDetachSession = 0x0030 cmdDetachedVoidEval :: Word32 cmdDetachedVoidEval = 0x0031 cmdAttachSession :: Word32 cmdAttachSession = 0x0032 cmdResp :: Word32 cmdResp = 0x10000 cmdStat :: Word32 -> Word32 cmdStat x = (x `shiftR` 24) .&. 127 respOK :: Word32 respOK = cmdResp .|. 0x0001 respErr :: Word32 respErr = cmdResp .|. 0x0002 errAuthFailed :: Word32 errAuthFailed = 0x41 errConnBroken :: Word32 errConnBroken = 0x42 errInvCmd :: Word32 errInvCmd = 0x43 errInvPar :: Word32 errInvPar = 0x44 errRerror :: Word32 errRerror = 0x45 errIOerror :: Word32 errIOerror = 0x46 errNotOpen :: Word32 errNotOpen = 0x47 errAccessDenied :: Word32 errAccessDenied = 0x48 errUnsupportedCmd :: Word32 errUnsupportedCmd = 0x49 errDataOverflow :: Word32 errDataOverflow = 0x4b errObjectTooBig :: Word32 errObjectTooBig = 0x4c errOutOfMem :: Word32 errOutOfMem = 0x4d errCtrlClosed :: Word32 errCtrlClosed = 0x4e errSessionBusy :: Word32 errSessionBusy = 0x50 errDetachFailed :: Word32 errDetachFailed = 0x51 errorStats :: [(Word32, String)] errorStats = [(errAuthFailed,"errAuthFailed"), (errConnBroken,"errConnBroken"), (errInvCmd,"errInvCmd"), (errInvPar,"errInvPar"), (errRerror,"errRerror"), (errIOerror,"errIOerror"), (errNotOpen,"errNotOpen"), (errAccessDenied,"errAccessDenied"), (errUnsupportedCmd,"errUnsupportedCmd"), (errDataOverflow,"errDataOverflow"), (errObjectTooBig,"errObjectTooBig"), (errOutOfMem,"errOutOfMem"), (errCtrlClosed,"errCtrlClosed"), (errSessionBusy,"errSessionBusy"), (errDetachFailed,"errDetachFailed")] dtInt :: Word8 dtInt = 1 dtChar :: Word8 dtChar = 2 dtDouble :: Word8 dtDouble = 3 dtString :: Word8 dtString = 4 dtBytestream:: Word8 dtBytestream = 5 dtSexp :: Word8 dtSexp = 10 dtArray :: Word8 dtArray = 11 dtLarge :: Word8 dtLarge = 64 xtNull:: Word8 xtNull = 0 xtInt:: Word8 xtInt = 1 xtDouble:: Word8 xtDouble = 2 xtStr:: Word8 xtStr = 3 xtLang:: Word8 xtLang = 4 xtSym:: Word8 xtSym = 5 xtBool:: Word8 xtBool = 6 xtS4:: Word8 xtS4 = 7 xtVector:: Word8 xtVector = 16 xtList:: Word8 xtList = 17 xtClos:: Word8 xtClos = 18 xtSymName:: Word8 xtSymName = 19 xtListNotag:: Word8 xtListNotag = 20 xtListTag:: Word8 xtListTag = 21 xtVectorExp:: Word8 xtVectorExp = 26 xtVectorStr:: Word8 xtVectorStr = 27 xtArrayInt:: Word8 xtArrayInt = 32 xtArrayDouble:: Word8 xtArrayDouble = 33 xtArrayStr:: Word8 xtArrayStr = 34 xtArrayBool:: Word8 xtArrayBool = 36 xtArrayCplx:: Word8 xtArrayCplx = 38 xtHasAttr:: Word8 xtHasAttr = 128 xtUnknown:: Word8 xtUnknown = 48