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 :: String -> IO [String]
listMethods String
url = forall a. Remote a => String -> String -> a
remote String
url String
"system.listMethods"
methodSignature :: String -> String -> IO [[String]]
methodSignature :: String -> String -> IO [[String]]
methodSignature String
url = forall a. Remote a => String -> String -> a
remote String
url String
"system.methodSignature"
methodHelp :: String -> String -> IO String
methodHelp :: String -> String -> IO String
methodHelp String
url = forall a. Remote a => String -> String -> a
remote String
url String
"system.methodHelp"
signatures :: String -> String -> IO [Signature]
signatures :: String -> String -> IO [Signature]
signatures String
url String
name = do
[[String]]
sigs <- String -> String -> IO [[String]]
methodSignature String
url String
name
forall (m :: * -> *) a. Monad m => a -> m a
return [ (forall a b. (a -> b) -> [a] -> [b]
map forall a. Read a => String -> a
read [String]
as,forall a. Read a => String -> a
read String
r) | (String
r:[String]
as) <- [[String]]
sigs ]
methodInfo :: String -> String -> IO MethodInfo
methodInfo :: String -> String -> IO MethodInfo
methodInfo String
url String
name = do
[Signature]
sigs <- String -> String -> IO [Signature]
signatures String
url String
name
String
help <- String -> String -> IO String
methodHelp String
url String
name
forall (m :: * -> *) a. Monad m => a -> m a
return (String
name, [Signature]
sigs, String
help)