module Network.XmlRpc.Introspect where
import Network.XmlRpc.Client
import Network.XmlRpc.Internals
type Signature = ([Type],Type)
type Help = String
type MethodInfo = (String,[Signature],Help)
listMethods :: String -> IO [String]
listMethods url = remote url "system.listMethods"
methodSignature :: String -> String -> IO [[String]]
methodSignature url = remote url "system.methodSignature"
methodHelp :: String -> String -> IO String
methodHelp url = remote url "system.methodHelp"
signatures :: String -> String -> IO [Signature]
signatures url name = do
sigs <- methodSignature url name
return [ (map read as,read r) | (r:as) <- sigs ]
methodInfo :: String -> String -> IO MethodInfo
methodInfo url name = do
sigs <- signatures url name
help <- methodHelp url name
return (name, sigs, help)