<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Class: rpc</title>
    
    
    <script src="scripts/prettify/prettify.js"></script>
    <script src="scripts/prettify/lang-css.js"></script>
    <script src="scripts/jquery.min.js"></script>
    <!--[if lt IE 9]>
      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
    <link type="text/css" rel="stylesheet" href="styles/bootstrap.min.css">
    <link type="text/css" rel="stylesheet" href="styles/jaguar.css">
    
    
    <script>
    var config = {"monospaceLinks":true,"cleverLinks":true,"default":{"outputSourceFiles":true}};
    </script>
    

    
</head>
<body>
<div id="wrap" class="clearfix">
    
<div class="navigation">
    <h3 class="applicationName"><a href="index.html"></a></h3>

    <div class="search">
        <input id="search" type="text" class="form-control input-sm" placeholder="Search Documentations">
    </div>
    <ul class="list">
    
        <li class="item" data-name="LuCI">
            <span class="title">
                <a href="LuCI.html">LuCI</a>
                
            </span>
            <ul class="members itemMembers">
            
            <span class="subtitle">Members</span>
            
                <li data-name="LuCI#env"><a href="LuCI.html#env">env</a></li>
            
            </ul>
            <ul class="typedefs itemMembers">
            
            <span class="subtitle">Typedefs</span>
            
                <li data-name="LuCI.requestCallbackFn"><a href="LuCI.html#.requestCallbackFn">requestCallbackFn</a></li>
            
            </ul>
            <ul class="typedefs itemMembers">
            
            </ul>
            <ul class="methods itemMembers">
            
            <span class="subtitle">Methods</span>
            
                <li data-name="LuCI#bind"><a href="LuCI.html#bind">bind</a></li>
            
                <li data-name="LuCI#error"><a href="LuCI.html#error">error</a></li>
            
                <li data-name="LuCI#get"><a href="LuCI.html#get">get</a></li>
            
                <li data-name="LuCI#halt"><a href="LuCI.html#halt">halt</a></li>
            
                <li data-name="LuCI#hasSystemFeature"><a href="LuCI.html#hasSystemFeature">hasSystemFeature</a></li>
            
                <li data-name="LuCI#isObject"><a href="LuCI.html#isObject">isObject</a></li>
            
                <li data-name="LuCI#location"><a href="LuCI.html#location">location</a></li>
            
                <li data-name="LuCI#media"><a href="LuCI.html#media">media</a></li>
            
                <li data-name="LuCI#path"><a href="LuCI.html#path">path</a></li>
            
                <li data-name="LuCI#poll"><a href="LuCI.html#poll">poll</a></li>
            
                <li data-name="LuCI#post"><a href="LuCI.html#post">post</a></li>
            
                <li data-name="LuCI#raise"><a href="LuCI.html#raise">raise</a></li>
            
                <li data-name="LuCI#require"><a href="LuCI.html#require">require</a></li>
            
                <li data-name="LuCI#resolveDefault"><a href="LuCI.html#resolveDefault">resolveDefault</a></li>
            
                <li data-name="LuCI#resource"><a href="LuCI.html#resource">resource</a></li>
            
                <li data-name="LuCI#run"><a href="LuCI.html#run">run</a></li>
            
                <li data-name="LuCI#sortedKeys"><a href="LuCI.html#sortedKeys">sortedKeys</a></li>
            
                <li data-name="LuCI#stop"><a href="LuCI.html#stop">stop</a></li>
            
                <li data-name="LuCI#toArray"><a href="LuCI.html#toArray">toArray</a></li>
            
                <li data-name="LuCI#url"><a href="LuCI.html#url">url</a></li>
            
            </ul>
            <ul class="events itemMembers">
            
            </ul>
        </li>
    
        <li class="item" data-name="LuCI.Class">
            <span class="title">
                <a href="LuCI.Class.html">LuCI.Class</a>
                
            </span>
            <ul class="members itemMembers">
            
            </ul>
            <ul class="typedefs itemMembers">
            
            </ul>
            <ul class="typedefs itemMembers">
            
            </ul>
            <ul class="methods itemMembers">
            
            <span class="subtitle">Methods</span>
            
                <li data-name="LuCI.Class.extend"><a href="LuCI.Class.html#.extend">extend</a></li>
            
                <li data-name="LuCI.Class.instantiate"><a href="LuCI.Class.html#.instantiate">instantiate</a></li>
            
                <li data-name="LuCI.Class.isSubclass"><a href="LuCI.Class.html#.isSubclass">isSubclass</a></li>
            
                <li data-name="LuCI.Class.singleton"><a href="LuCI.Class.html#.singleton">singleton</a></li>
            
                <li data-name="LuCI.Class#super"><a href="LuCI.Class.html#super">super</a></li>
            
                <li data-name="LuCI.Class#varargs"><a href="LuCI.Class.html#varargs">varargs</a></li>
            
            </ul>
            <ul class="events itemMembers">
            
            </ul>
        </li>
    
        <li class="item" data-name="LuCI.dom">
            <span class="title">
                <a href="LuCI.dom.html">LuCI.dom</a>
                
            </span>
            <ul class="members itemMembers">
            
            </ul>
            <ul class="typedefs itemMembers">
            
            <span class="subtitle">Typedefs</span>
            
                <li data-name="LuCI.dom~ignoreCallbackFn"><a href="LuCI.dom.html#~ignoreCallbackFn">ignoreCallbackFn</a></li>
            
            </ul>
            <ul class="typedefs itemMembers">
            
            </ul>
            <ul class="methods itemMembers">
            
            <span class="subtitle">Methods</span>
            
                <li data-name="LuCI.dom#append"><a href="LuCI.dom.html#append">append</a></li>
            
                <li data-name="LuCI.dom#attr"><a href="LuCI.dom.html#attr">attr</a></li>
            
                <li data-name="LuCI.dom#bindClassInstance"><a href="LuCI.dom.html#bindClassInstance">bindClassInstance</a></li>
            
                <li data-name="LuCI.dom#callClassMethod"><a href="LuCI.dom.html#callClassMethod">callClassMethod</a></li>
            
                <li data-name="LuCI.dom#content"><a href="LuCI.dom.html#content">content</a></li>
            
                <li data-name="LuCI.dom#create"><a href="LuCI.dom.html#create">create</a></li>
            
                <li data-name="LuCI.dom#data"><a href="LuCI.dom.html#data">data</a></li>
            
                <li data-name="LuCI.dom#elem"><a href="LuCI.dom.html#elem">elem</a></li>
            
                <li data-name="LuCI.dom#findClassInstance"><a href="LuCI.dom.html#findClassInstance">findClassInstance</a></li>
            
                <li data-name="LuCI.dom#isEmpty"><a href="LuCI.dom.html#isEmpty">isEmpty</a></li>
            
                <li data-name="LuCI.dom#matches"><a href="LuCI.dom.html#matches">matches</a></li>
            
                <li data-name="LuCI.dom#parent"><a href="LuCI.dom.html#parent">parent</a></li>
            
                <li data-name="LuCI.dom#parse"><a href="LuCI.dom.html#parse">parse</a></li>
            
            </ul>
            <ul class="events itemMembers">
            
            </ul>
        </li>
    
        <li class="item" data-name="LuCI.fs">
            <span class="title">
                <a href="LuCI.fs.html">LuCI.fs</a>
                
            </span>
            <ul class="members itemMembers">
            
            </ul>
            <ul class="typedefs itemMembers">
            
            <span class="subtitle">Typedefs</span>
            
                <li data-name="LuCI.fs.FileExecResult"><a href="LuCI.fs.html#.FileExecResult">FileExecResult</a></li>
            
                <li data-name="LuCI.fs.FileStatEntry"><a href="LuCI.fs.html#.FileStatEntry">FileStatEntry</a></li>
            
            </ul>
            <ul class="typedefs itemMembers">
            
            </ul>
            <ul class="methods itemMembers">
            
            <span class="subtitle">Methods</span>
            
                <li data-name="LuCI.fs#exec"><a href="LuCI.fs.html#exec">exec</a></li>
            
                <li data-name="LuCI.fs#exec_direct"><a href="LuCI.fs.html#exec_direct">exec_direct</a></li>
            
                <li data-name="LuCI.fs#lines"><a href="LuCI.fs.html#lines">lines</a></li>
            
                <li data-name="LuCI.fs#list"><a href="LuCI.fs.html#list">list</a></li>
            
                <li data-name="LuCI.fs#read"><a href="LuCI.fs.html#read">read</a></li>
            
                <li data-name="LuCI.fs#read_direct"><a href="LuCI.fs.html#read_direct">read_direct</a></li>
            
                <li data-name="LuCI.fs#remove"><a href="LuCI.fs.html#remove">remove</a></li>
            
                <li data-name="LuCI.fs#stat"><a href="LuCI.fs.html#stat">stat</a></li>
            
                <li data-name="LuCI.fs#trimmed"><a href="LuCI.fs.html#trimmed">trimmed</a></li>
            
                <li data-name="LuCI.fs#write"><a href="LuCI.fs.html#write">write</a></li>
            
            </ul>
            <ul class="events itemMembers">
            
            </ul>
        </li>
    
        <li class="item" data-name="LuCI.Headers">
            <span class="title">
                <a href="LuCI.Headers.html">LuCI.Headers</a>
                
            </span>
            <ul class="members itemMembers">
            
            </ul>
            <ul class="typedefs itemMembers">
            
            </ul>
            <ul class="typedefs itemMembers">
            
            </ul>
            <ul class="methods itemMembers">
            
            <span class="subtitle">Methods</span>
            
                <li data-name="LuCI.Headers#get"><a href="LuCI.Headers.html#get">get</a></li>
            
                <li data-name="LuCI.Headers#has"><a href="LuCI.Headers.html#has">has</a></li>
            
            </ul>
            <ul class="events itemMembers">
            
            </ul>
        </li>
    
        <li class="item" data-name="LuCI.Network">
            <span class="title">
                <a href="LuCI.Network.html">LuCI.Network</a>
                
            </span>
            <ul class="members itemMembers">
            
            </ul>
            <ul class="typedefs itemMembers">
            
            <span class="subtitle">Typedefs</span>
            
                <li data-name="LuCI.Network.SwitchTopology"><a href="LuCI.Network.html#.SwitchTopology">SwitchTopology</a></li>
            
                <li data-name="LuCI.Network.WifiEncryption"><a href="LuCI.Network.html#.WifiEncryption">WifiEncryption</a></li>
            
                <li data-name="LuCI.Network.WifiPeerEntry"><a href="LuCI.Network.html#.WifiPeerEntry">WifiPeerEntry</a></li>
            
                <li data-name="LuCI.Network.WifiRateEntry"><a href="LuCI.Network.html#.WifiRateEntry">WifiRateEntry</a></li>
            
                <li data-name="LuCI.Network.WifiScanResult"><a href="LuCI.Network.html#.WifiScanResult">WifiScanResult</a></li>
            
            </ul>
            <ul class="typedefs itemMembers">
            
            </ul>
            <ul class="methods itemMembers">
            
            <span class="subtitle">Methods</span>
            
                <li data-name="LuCI.Network#addNetwork"><a href="LuCI.Network.html#addNetwork">addNetwork</a></li>
            
                <li data-name="LuCI.Network#addWifiNetwork"><a href="LuCI.Network.html#addWifiNetwork">addWifiNetwork</a></li>
            
                <li data-name="LuCI.Network#deleteNetwork"><a href="LuCI.Network.html#deleteNetwork">deleteNetwork</a></li>
            
                <li data-name="LuCI.Network#deleteWifiNetwork"><a href="LuCI.Network.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
            
                <li data-name="LuCI.Network#flushCache"><a href="LuCI.Network.html#flushCache">flushCache</a></li>
            
                <li data-name="LuCI.Network#formatWifiEncryption"><a href="LuCI.Network.html#formatWifiEncryption">formatWifiEncryption</a></li>
            
                <li data-name="LuCI.Network#getDevice"><a href="LuCI.Network.html#getDevice">getDevice</a></li>
            
                <li data-name="LuCI.Network#getDevices"><a href="LuCI.Network.html#getDevices">getDevices</a></li>
            
                <li data-name="LuCI.Network#getDSLModemType"><a href="LuCI.Network.html#getDSLModemType">getDSLModemType</a></li>
            
                <li data-name="LuCI.Network#getHostHints"><a href="LuCI.Network.html#getHostHints">getHostHints</a></li>
            
                <li data-name="LuCI.Network#getIfnameOf"><a href="LuCI.Network.html#getIfnameOf">getIfnameOf</a></li>
            
                <li data-name="LuCI.Network#getNetwork"><a href="LuCI.Network.html#getNetwork">getNetwork</a></li>
            
                <li data-name="LuCI.Network#getNetworks"><a href="LuCI.Network.html#getNetworks">getNetworks</a></li>
            
                <li data-name="LuCI.Network#getProtocol"><a href="LuCI.Network.html#getProtocol">getProtocol</a></li>
            
                <li data-name="LuCI.Network#getProtocols"><a href="LuCI.Network.html#getProtocols">getProtocols</a></li>
            
                <li data-name="LuCI.Network#getSwitchTopologies"><a href="LuCI.Network.html#getSwitchTopologies">getSwitchTopologies</a></li>
            
                <li data-name="LuCI.Network#getWAN6Networks"><a href="LuCI.Network.html#getWAN6Networks">getWAN6Networks</a></li>
            
                <li data-name="LuCI.Network#getWANNetworks"><a href="LuCI.Network.html#getWANNetworks">getWANNetworks</a></li>
            
                <li data-name="LuCI.Network#getWifiDevice"><a href="LuCI.Network.html#getWifiDevice">getWifiDevice</a></li>
            
                <li data-name="LuCI.Network#getWifiDevices"><a href="LuCI.Network.html#getWifiDevices">getWifiDevices</a></li>
            
                <li data-name="LuCI.Network#getWifiNetwork"><a href="LuCI.Network.html#getWifiNetwork">getWifiNetwork</a></li>
            
                <li data-name="LuCI.Network#getWifiNetworks"><a href="LuCI.Network.html#getWifiNetworks">getWifiNetworks</a></li>
            
                <li data-name="LuCI.Network#isIgnoredDevice"><a href="LuCI.Network.html#isIgnoredDevice">isIgnoredDevice</a></li>
            
                <li data-name="LuCI.Network#maskToPrefix"><a href="LuCI.Network.html#maskToPrefix">maskToPrefix</a></li>
            
                <li data-name="LuCI.Network#prefixToMask"><a href="LuCI.Network.html#prefixToMask">prefixToMask</a></li>
            
                <li data-name="LuCI.Network#registerErrorCode"><a href="LuCI.Network.html#registerErrorCode">registerErrorCode</a></li>
            
                <li data-name="LuCI.Network#registerPatternVirtual"><a href="LuCI.Network.html#registerPatternVirtual">registerPatternVirtual</a></li>
            
                <li data-name="LuCI.Network#registerProtocol"><a href="LuCI.Network.html#registerProtocol">registerProtocol</a></li>
            
                <li data-name="LuCI.Network#renameNetwork"><a href="LuCI.Network.html#renameNetwork">renameNetwork</a></li>
            
            </ul>
            <ul class="events itemMembers">
            
            </ul>
        </li>
    
        <li class="item" data-name="LuCI.Network.Device">
            <span class="title">
                <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
                
            </span>
            <ul class="members itemMembers">
            
            </ul>
            <ul class="typedefs itemMembers">
            
            </ul>
            <ul class="typedefs itemMembers">
            
            </ul>
            <ul class="methods itemMembers">
            
            <span class="subtitle">Methods</span>
            
                <li data-name="LuCI.Network.Device#getBridgeID"><a href="LuCI.Network.Device.html#getBridgeID">getBridgeID</a></li>
            
                <li data-name="LuCI.Network.Device#getBridgeSTP"><a href="LuCI.Network.Device.html#getBridgeSTP">getBridgeSTP</a></li>
            
                <li data-name="LuCI.Network.Device#getI18n"><a href="LuCI.Network.Device.html#getI18n">getI18n</a></li>
            
                <li data-name="LuCI.Network.Device#getIP6Addrs"><a href="LuCI.Network.Device.html#getIP6Addrs">getIP6Addrs</a></li>
            
                <li data-name="LuCI.Network.Device#getIPAddrs"><a href="LuCI.Network.Device.html#getIPAddrs">getIPAddrs</a></li>
            
                <li data-name="LuCI.Network.Device#getMAC"><a href="LuCI.Network.Device.html#getMAC">getMAC</a></li>
            
                <li data-name="LuCI.Network.Device#getMTU"><a href="LuCI.Network.Device.html#getMTU">getMTU</a></li>
            
                <li data-name="LuCI.Network.Device#getName"><a href="LuCI.Network.Device.html#getName">getName</a></li>
            
                <li data-name="LuCI.Network.Device#getNetwork"><a href="LuCI.Network.Device.html#getNetwork">getNetwork</a></li>
            
                <li data-name="LuCI.Network.Device#getNetworks"><a href="LuCI.Network.Device.html#getNetworks">getNetworks</a></li>
            
                <li data-name="LuCI.Network.Device#getPorts"><a href="LuCI.Network.Device.html#getPorts">getPorts</a></li>
            
                <li data-name="LuCI.Network.Device#getRXBytes"><a href="LuCI.Network.Device.html#getRXBytes">getRXBytes</a></li>
            
                <li data-name="LuCI.Network.Device#getRXPackets"><a href="LuCI.Network.Device.html#getRXPackets">getRXPackets</a></li>
            
                <li data-name="LuCI.Network.Device#getShortName"><a href="LuCI.Network.Device.html#getShortName">getShortName</a></li>
            
                <li data-name="LuCI.Network.Device#getTXBytes"><a href="LuCI.Network.Device.html#getTXBytes">getTXBytes</a></li>
            
                <li data-name="LuCI.Network.Device#getTXPackets"><a href="LuCI.Network.Device.html#getTXPackets">getTXPackets</a></li>
            
                <li data-name="LuCI.Network.Device#getType"><a href="LuCI.Network.Device.html#getType">getType</a></li>
            
                <li data-name="LuCI.Network.Device#getTypeI18n"><a href="LuCI.Network.Device.html#getTypeI18n">getTypeI18n</a></li>
            
                <li data-name="LuCI.Network.Device#getWifiNetwork"><a href="LuCI.Network.Device.html#getWifiNetwork">getWifiNetwork</a></li>
            
                <li data-name="LuCI.Network.Device#isBridge"><a href="LuCI.Network.Device.html#isBridge">isBridge</a></li>
            
                <li data-name="LuCI.Network.Device#isBridgePort"><a href="LuCI.Network.Device.html#isBridgePort">isBridgePort</a></li>
            
                <li data-name="LuCI.Network.Device#isUp"><a href="LuCI.Network.Device.html#isUp">isUp</a></li>
            
            </ul>
            <ul class="events itemMembers">
            
            </ul>
        </li>
    
        <li class="item" data-name="LuCI.Network.Hosts">
            <span class="title">
                <a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>
                
            </span>
            <ul class="members itemMembers">
            
            </ul>
            <ul class="typedefs itemMembers">
            
            </ul>
            <ul class="typedefs itemMembers">
            
            </ul>
            <ul class="methods itemMembers">
            
            <span class="subtitle">Methods</span>
            
                <li data-name="LuCI.Network.Hosts#getHostnameByIP6Addr"><a href="LuCI.Network.Hosts.html#getHostnameByIP6Addr">getHostnameByIP6Addr</a></li>
            
                <li data-name="LuCI.Network.Hosts#getHostnameByIPAddr"><a href="LuCI.Network.Hosts.html#getHostnameByIPAddr">getHostnameByIPAddr</a></li>
            
                <li data-name="LuCI.Network.Hosts#getHostnameByMACAddr"><a href="LuCI.Network.Hosts.html#getHostnameByMACAddr">getHostnameByMACAddr</a></li>
            
                <li data-name="LuCI.Network.Hosts#getIP6AddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIP6AddrByMACAddr">getIP6AddrByMACAddr</a></li>
            
                <li data-name="LuCI.Network.Hosts#getIPAddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIPAddrByMACAddr">getIPAddrByMACAddr</a></li>
            
                <li data-name="LuCI.Network.Hosts#getMACAddrByIP6Addr"><a href="LuCI.Network.Hosts.html#getMACAddrByIP6Addr">getMACAddrByIP6Addr</a></li>
            
                <li data-name="LuCI.Network.Hosts#getMACAddrByIPAddr"><a href="LuCI.Network.Hosts.html#getMACAddrByIPAddr">getMACAddrByIPAddr</a></li>
            
                <li data-name="LuCI.Network.Hosts#getMACHints"><a href="LuCI.Network.Hosts.html#getMACHints">getMACHints</a></li>
            
            </ul>
            <ul class="events itemMembers">
            
            </ul>
        </li>
    
        <li class="item" data-name="LuCI.Network.Protocol">
            <span class="title">
                <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
                
            </span>
            <ul class="members itemMembers">
            
            </ul>
            <ul class="typedefs itemMembers">
            
            </ul>
            <ul class="typedefs itemMembers">
            
            </ul>
            <ul class="methods itemMembers">
            
            <span class="subtitle">Methods</span>
            
                <li data-name="LuCI.Network.Protocol#addDevice"><a href="LuCI.Network.Protocol.html#addDevice">addDevice</a></li>
            
                <li data-name="LuCI.Network.Protocol#containsDevice"><a href="LuCI.Network.Protocol.html#containsDevice">containsDevice</a></li>
            
                <li data-name="LuCI.Network.Protocol#deleteDevice"><a href="LuCI.Network.Protocol.html#deleteDevice">deleteDevice</a></li>
            
                <li data-name="LuCI.Network.Protocol#get"><a href="LuCI.Network.Protocol.html#get">get</a></li>
            
                <li data-name="LuCI.Network.Protocol#getDevice"><a href="LuCI.Network.Protocol.html#getDevice">getDevice</a></li>
            
                <li data-name="LuCI.Network.Protocol#getDevices"><a href="LuCI.Network.Protocol.html#getDevices">getDevices</a></li>
            
                <li data-name="LuCI.Network.Protocol#getDNS6Addrs"><a href="LuCI.Network.Protocol.html#getDNS6Addrs">getDNS6Addrs</a></li>
            
                <li data-name="LuCI.Network.Protocol#getDNSAddrs"><a href="LuCI.Network.Protocol.html#getDNSAddrs">getDNSAddrs</a></li>
            
                <li data-name="LuCI.Network.Protocol#getErrors"><a href="LuCI.Network.Protocol.html#getErrors">getErrors</a></li>
            
                <li data-name="LuCI.Network.Protocol#getExpiry"><a href="LuCI.Network.Protocol.html#getExpiry">getExpiry</a></li>
            
                <li data-name="LuCI.Network.Protocol#getGateway6Addr"><a href="LuCI.Network.Protocol.html#getGateway6Addr">getGateway6Addr</a></li>
            
                <li data-name="LuCI.Network.Protocol#getGatewayAddr"><a href="LuCI.Network.Protocol.html#getGatewayAddr">getGatewayAddr</a></li>
            
                <li data-name="LuCI.Network.Protocol#getI18n"><a href="LuCI.Network.Protocol.html#getI18n">getI18n</a></li>
            
                <li data-name="LuCI.Network.Protocol#getIfname"><a href="LuCI.Network.Protocol.html#getIfname">getIfname</a></li>
            
                <li data-name="LuCI.Network.Protocol#getIP6Addr"><a href="LuCI.Network.Protocol.html#getIP6Addr">getIP6Addr</a></li>
            
                <li data-name="LuCI.Network.Protocol#getIP6Addrs"><a href="LuCI.Network.Protocol.html#getIP6Addrs">getIP6Addrs</a></li>
            
                <li data-name="LuCI.Network.Protocol#getIP6Prefix"><a href="LuCI.Network.Protocol.html#getIP6Prefix">getIP6Prefix</a></li>
            
                <li data-name="LuCI.Network.Protocol#getIPAddr"><a href="LuCI.Network.Protocol.html#getIPAddr">getIPAddr</a></li>
            
                <li data-name="LuCI.Network.Protocol#getIPAddrs"><a href="LuCI.Network.Protocol.html#getIPAddrs">getIPAddrs</a></li>
            
                <li data-name="LuCI.Network.Protocol#getL2Device"><a href="LuCI.Network.Protocol.html#getL2Device">getL2Device</a></li>
            
                <li data-name="LuCI.Network.Protocol#getL3Device"><a href="LuCI.Network.Protocol.html#getL3Device">getL3Device</a></li>
            
                <li data-name="LuCI.Network.Protocol#getMetric"><a href="LuCI.Network.Protocol.html#getMetric">getMetric</a></li>
            
                <li data-name="LuCI.Network.Protocol#getName"><a href="LuCI.Network.Protocol.html#getName">getName</a></li>
            
                <li data-name="LuCI.Network.Protocol#getNetmask"><a href="LuCI.Network.Protocol.html#getNetmask">getNetmask</a></li>
            
                <li data-name="LuCI.Network.Protocol#getOpkgPackage"><a href="LuCI.Network.Protocol.html#getOpkgPackage">getOpkgPackage</a></li>
            
                <li data-name="LuCI.Network.Protocol#getProtocol"><a href="LuCI.Network.Protocol.html#getProtocol">getProtocol</a></li>
            
                <li data-name="LuCI.Network.Protocol#getType"><a href="LuCI.Network.Protocol.html#getType">getType</a></li>
            
                <li data-name="LuCI.Network.Protocol#getUptime"><a href="LuCI.Network.Protocol.html#getUptime">getUptime</a></li>
            
                <li data-name="LuCI.Network.Protocol#getZoneName"><a href="LuCI.Network.Protocol.html#getZoneName">getZoneName</a></li>
            
                <li data-name="LuCI.Network.Protocol#isAlias"><a href="LuCI.Network.Protocol.html#isAlias">isAlias</a></li>
            
                <li data-name="LuCI.Network.Protocol#isBridge"><a href="LuCI.Network.Protocol.html#isBridge">isBridge</a></li>
            
                <li data-name="LuCI.Network.Protocol#isDynamic"><a href="LuCI.Network.Protocol.html#isDynamic">isDynamic</a></li>
            
                <li data-name="LuCI.Network.Protocol#isEmpty"><a href="LuCI.Network.Protocol.html#isEmpty">isEmpty</a></li>
            
                <li data-name="LuCI.Network.Protocol#isFloating"><a href="LuCI.Network.Protocol.html#isFloating">isFloating</a></li>
            
                <li data-name="LuCI.Network.Protocol#isInstalled"><a href="LuCI.Network.Protocol.html#isInstalled">isInstalled</a></li>
            
                <li data-name="LuCI.Network.Protocol#isUp"><a href="LuCI.Network.Protocol.html#isUp">isUp</a></li>
            
                <li data-name="LuCI.Network.Protocol#isVirtual"><a href="LuCI.Network.Protocol.html#isVirtual">isVirtual</a></li>
            
                <li data-name="LuCI.Network.Protocol#set"><a href="LuCI.Network.Protocol.html#set">set</a></li>
            
            </ul>
            <ul class="events itemMembers">
            
            </ul>
        </li>
    
        <li class="item" data-name="LuCI.Network.WifiDevice">
            <span class="title">
                <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
                
            </span>
            <ul class="members itemMembers">
            
            </ul>
            <ul class="typedefs itemMembers">
            
            </ul>
            <ul class="typedefs itemMembers">
            
            </ul>
            <ul class="methods itemMembers">
            
            <span class="subtitle">Methods</span>
            
                <li data-name="LuCI.Network.WifiDevice#addWifiNetwork"><a href="LuCI.Network.WifiDevice.html#addWifiNetwork">addWifiNetwork</a></li>
            
                <li data-name="LuCI.Network.WifiDevice#deleteWifiNetwork"><a href="LuCI.Network.WifiDevice.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
            
                <li data-name="LuCI.Network.WifiDevice#get"><a href="LuCI.Network.WifiDevice.html#get">get</a></li>
            
                <li data-name="LuCI.Network.WifiDevice#getHTModes"><a href="LuCI.Network.WifiDevice.html#getHTModes">getHTModes</a></li>
            
                <li data-name="LuCI.Network.WifiDevice#getHWModes"><a href="LuCI.Network.WifiDevice.html#getHWModes">getHWModes</a></li>
            
                <li data-name="LuCI.Network.WifiDevice#getI18n"><a href="LuCI.Network.WifiDevice.html#getI18n">getI18n</a></li>
            
                <li data-name="LuCI.Network.WifiDevice#getName"><a href="LuCI.Network.WifiDevice.html#getName">getName</a></li>
            
                <li data-name="LuCI.Network.WifiDevice#getScanList"><a href="LuCI.Network.WifiDevice.html#getScanList">getScanList</a></li>
            
                <li data-name="LuCI.Network.WifiDevice#getWifiNetwork"><a href="LuCI.Network.WifiDevice.html#getWifiNetwork">getWifiNetwork</a></li>
            
                <li data-name="LuCI.Network.WifiDevice#getWifiNetworks"><a href="LuCI.Network.WifiDevice.html#getWifiNetworks">getWifiNetworks</a></li>
            
                <li data-name="LuCI.Network.WifiDevice#isDisabled"><a href="LuCI.Network.WifiDevice.html#isDisabled">isDisabled</a></li>
            
                <li data-name="LuCI.Network.WifiDevice#isUp"><a href="LuCI.Network.WifiDevice.html#isUp">isUp</a></li>
            
                <li data-name="LuCI.Network.WifiDevice#set"><a href="LuCI.Network.WifiDevice.html#set">set</a></li>
            
            </ul>
            <ul class="events itemMembers">
            
            </ul>
        </li>
    
        <li class="item" data-name="LuCI.Network.WifiNetwork">
            <span class="title">
                <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
                
            </span>
            <ul class="members itemMembers">
            
            </ul>
            <ul class="typedefs itemMembers">
            
            </ul>
            <ul class="typedefs itemMembers">
            
            </ul>
            <ul class="methods itemMembers">
            
            <span class="subtitle">Methods</span>
            
                <li data-name="LuCI.Network.WifiNetwork#disconnectClient"><a href="LuCI.Network.WifiNetwork.html#disconnectClient">disconnectClient</a></li>
            
                <li data-name="LuCI.Network.WifiNetwork#get"><a href="LuCI.Network.WifiNetwork.html#get">get</a></li>
            
                <li data-name="LuCI.Network.WifiNetwork#getActiveBSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveBSSID">getActiveBSSID</a></li>
            
                <li data-name="LuCI.Network.WifiNetwork#getActiveEncryption"><a href="LuCI.Network.WifiNetwork.html#getActiveEncryption">getActiveEncryption</a></li>
            
                <li data-name="LuCI.Network.WifiNetwork#getActiveMode"><a href="LuCI.Network.WifiNetwork.html#getActiveMode">getActiveMode</a></li>
            
                <li data-name="LuCI.Network.WifiNetwork#getActiveModeI18n"><a href="LuCI.Network.WifiNetwork.html#getActiveModeI18n">getActiveModeI18n</a></li>
            
                <li data-name="LuCI.Network.WifiNetwork#getActiveSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveSSID">getActiveSSID</a></li>
            
                <li data-name="LuCI.Network.WifiNetwork#getAssocList"><a href="LuCI.Network.WifiNetwork.html#getAssocList">getAssocList</a></li>
            
                <li data-name="LuCI.Network.WifiNetwork#getBitRate"><a href="LuCI.Network.WifiNetwork.html#getBitRate">getBitRate</a></li>
            
                <li data-name="LuCI.Network.WifiNetwork#getBSSID"><a href="LuCI.Network.WifiNetwork.html#getBSSID">getBSSID</a></li>
            
                <li data-name="LuCI.Network.WifiNetwork#getChannel"><a href="LuCI.Network.WifiNetwork.html#getChannel">getChannel</a></li>
            
                <li data-name="LuCI.Network.WifiNetwork#getCountryCode"><a href="LuCI.Network.WifiNetwork.html#getCountryCode">getCountryCode</a></li>
            
                <li data-name="LuCI.Network.WifiNetwork#getDevice"><a href="LuCI.Network.WifiNetwork.html#getDevice">getDevice</a></li>
            
                <li data-name="LuCI.Network.WifiNetwork#getFrequency"><a href="LuCI.Network.WifiNetwork.html#getFrequency">getFrequency</a></li>
            
                <li data-name="LuCI.Network.WifiNetwork#getI18n"><a href="LuCI.Network.WifiNetwork.html#getI18n">getI18n</a></li>
            
                <li data-name="LuCI.Network.WifiNetwork#getID"><a href="LuCI.Network.WifiNetwork.html#getID">getID</a></li>
            
                <li data-name="LuCI.Network.WifiNetwork#getIfname"><a href="LuCI.Network.WifiNetwork.html#getIfname">getIfname</a></li>
            
                <li data-name="LuCI.Network.WifiNetwork#getMeshID"><a href="LuCI.Network.WifiNetwork.html#getMeshID">getMeshID</a></li>
            
                <li data-name="LuCI.Network.WifiNetwork#getMode"><a href="LuCI.Network.WifiNetwork.html#getMode">getMode</a></li>
            
                <li data-name="LuCI.Network.WifiNetwork#getName"><a href="LuCI.Network.WifiNetwork.html#getName">getName</a></li>
            
                <li data-name="LuCI.Network.WifiNetwork#getNetwork"><a href="LuCI.Network.WifiNetwork.html#getNetwork">getNetwork</a></li>
            
                <li data-name="LuCI.Network.WifiNetwork#getNetworkNames"><a href="LuCI.Network.WifiNetwork.html#getNetworkNames">getNetworkNames</a></li>
            
                <li data-name="LuCI.Network.WifiNetwork#getNetworks"><a href="LuCI.Network.WifiNetwork.html#getNetworks">getNetworks</a></li>
            
                <li data-name="LuCI.Network.WifiNetwork#getNoise"><a href="LuCI.Network.WifiNetwork.html#getNoise">getNoise</a></li>
            
                <li data-name="LuCI.Network.WifiNetwork#getShortName"><a href="LuCI.Network.WifiNetwork.html#getShortName">getShortName</a></li>
            
                <li data-name="LuCI.Network.WifiNetwork#getSignal"><a href="LuCI.Network.WifiNetwork.html#getSignal">getSignal</a></li>
            
                <li data-name="LuCI.Network.WifiNetwork#getSignalLevel"><a href="LuCI.Network.WifiNetwork.html#getSignalLevel">getSignalLevel</a></li>
            
                <li data-name="LuCI.Network.WifiNetwork#getSignalPercent"><a href="LuCI.Network.WifiNetwork.html#getSignalPercent">getSignalPercent</a></li>
            
                <li data-name="LuCI.Network.WifiNetwork#getSSID"><a href="LuCI.Network.WifiNetwork.html#getSSID">getSSID</a></li>
            
                <li data-name="LuCI.Network.WifiNetwork#getTXPower"><a href="LuCI.Network.WifiNetwork.html#getTXPower">getTXPower</a></li>
            
                <li data-name="LuCI.Network.WifiNetwork#getTXPowerOffset"><a href="LuCI.Network.WifiNetwork.html#getTXPowerOffset">getTXPowerOffset</a></li>
            
                <li data-name="LuCI.Network.WifiNetwork#getWifiDevice"><a href="LuCI.Network.WifiNetwork.html#getWifiDevice">getWifiDevice</a></li>
            
                <li data-name="LuCI.Network.WifiNetwork#getWifiDeviceName"><a href="LuCI.Network.WifiNetwork.html#getWifiDeviceName">getWifiDeviceName</a></li>
            
                <li data-name="LuCI.Network.WifiNetwork#isClientDisconnectSupported"><a href="LuCI.Network.WifiNetwork.html#isClientDisconnectSupported">isClientDisconnectSupported</a></li>
            
                <li data-name="LuCI.Network.WifiNetwork#isDisabled"><a href="LuCI.Network.WifiNetwork.html#isDisabled">isDisabled</a></li>
            
                <li data-name="LuCI.Network.WifiNetwork#isUp"><a href="LuCI.Network.WifiNetwork.html#isUp">isUp</a></li>
            
                <li data-name="LuCI.Network.WifiNetwork#set"><a href="LuCI.Network.WifiNetwork.html#set">set</a></li>
            
            </ul>
            <ul class="events itemMembers">
            
            </ul>
        </li>
    
        <li class="item" data-name="LuCI.Poll">
            <span class="title">
                <a href="LuCI.Poll.html">LuCI.Poll</a>
                
            </span>
            <ul class="members itemMembers">
            
            </ul>
            <ul class="typedefs itemMembers">
            
            </ul>
            <ul class="typedefs itemMembers">
            
            </ul>
            <ul class="methods itemMembers">
            
            <span class="subtitle">Methods</span>
            
                <li data-name="LuCI.Poll#active"><a href="LuCI.Poll.html#active">active</a></li>
            
                <li data-name="LuCI.Poll#add"><a href="LuCI.Poll.html#add">add</a></li>
            
                <li data-name="LuCI.Poll#remove"><a href="LuCI.Poll.html#remove">remove</a></li>
            
                <li data-name="LuCI.Poll#start"><a href="LuCI.Poll.html#start">start</a></li>
            
                <li data-name="LuCI.Poll#stop"><a href="LuCI.Poll.html#stop">stop</a></li>
            
            </ul>
            <ul class="events itemMembers">
            
            </ul>
        </li>
    
        <li class="item" data-name="LuCI.Request">
            <span class="title">
                <a href="LuCI.Request.html">LuCI.Request</a>
                
            </span>
            <ul class="members itemMembers">
            
            </ul>
            <ul class="typedefs itemMembers">
            
            <span class="subtitle">Typedefs</span>
            
                <li data-name="LuCI.Request.interceptorFn"><a href="LuCI.Request.html#.interceptorFn">interceptorFn</a></li>
            
                <li data-name="LuCI.Request.RequestOptions"><a href="LuCI.Request.html#.RequestOptions">RequestOptions</a></li>
            
            </ul>
            <ul class="typedefs itemMembers">
            
            </ul>
            <ul class="methods itemMembers">
            
            <span class="subtitle">Methods</span>
            
                <li data-name="LuCI.Request#addInterceptor"><a href="LuCI.Request.html#addInterceptor">addInterceptor</a></li>
            
                <li data-name="LuCI.Request#expandURL"><a href="LuCI.Request.html#expandURL">expandURL</a></li>
            
                <li data-name="LuCI.Request#get"><a href="LuCI.Request.html#get">get</a></li>
            
                <li data-name="LuCI.Request#post"><a href="LuCI.Request.html#post">post</a></li>
            
                <li data-name="LuCI.Request#removeInterceptor"><a href="LuCI.Request.html#removeInterceptor">removeInterceptor</a></li>
            
                <li data-name="LuCI.Request#request"><a href="LuCI.Request.html#request">request</a></li>
            
            </ul>
            <ul class="events itemMembers">
            
            </ul>
        </li>
    
        <li class="item" data-name="LuCI.Request.poll">
            <span class="title">
                <a href="LuCI.Request.poll.html">LuCI.Request.poll</a>
                
            </span>
            <ul class="members itemMembers">
            
            </ul>
            <ul class="typedefs itemMembers">
            
            <span class="subtitle">Typedefs</span>
            
                <li data-name="LuCI.Request.poll~callbackFn"><a href="LuCI.Request.poll.html#~callbackFn">callbackFn</a></li>
            
            </ul>
            <ul class="typedefs itemMembers">
            
            </ul>
            <ul class="methods itemMembers">
            
            <span class="subtitle">Methods</span>
            
                <li data-name="LuCI.Request.poll#active"><a href="LuCI.Request.poll.html#active">active</a></li>
            
                <li data-name="LuCI.Request.poll#add"><a href="LuCI.Request.poll.html#add">add</a></li>
            
                <li data-name="LuCI.Request.poll#remove"><a href="LuCI.Request.poll.html#remove">remove</a></li>
            
                <li data-name="LuCI.Request.poll#start"><a href="LuCI.Request.poll.html#start">start</a></li>
            
                <li data-name="LuCI.Request.poll#stop"><a href="LuCI.Request.poll.html#stop">stop</a></li>
            
            </ul>
            <ul class="events itemMembers">
            
            </ul>
        </li>
    
        <li class="item" data-name="LuCI.Response">
            <span class="title">
                <a href="LuCI.Response.html">LuCI.Response</a>
                
            </span>
            <ul class="members itemMembers">
            
            <span class="subtitle">Members</span>
            
                <li data-name="LuCI.Response#duration"><a href="LuCI.Response.html#duration">duration</a></li>
            
                <li data-name="LuCI.Response#headers"><a href="LuCI.Response.html#headers">headers</a></li>
            
                <li data-name="LuCI.Response#ok"><a href="LuCI.Response.html#ok">ok</a></li>
            
                <li data-name="LuCI.Response#status"><a href="LuCI.Response.html#status">status</a></li>
            
                <li data-name="LuCI.Response#statusText"><a href="LuCI.Response.html#statusText">statusText</a></li>
            
                <li data-name="LuCI.Response#url"><a href="LuCI.Response.html#url">url</a></li>
            
            </ul>
            <ul class="typedefs itemMembers">
            
            </ul>
            <ul class="typedefs itemMembers">
            
            </ul>
            <ul class="methods itemMembers">
            
            <span class="subtitle">Methods</span>
            
                <li data-name="LuCI.Response#blob"><a href="LuCI.Response.html#blob">blob</a></li>
            
                <li data-name="LuCI.Response#clone"><a href="LuCI.Response.html#clone">clone</a></li>
            
                <li data-name="LuCI.Response#json"><a href="LuCI.Response.html#json">json</a></li>
            
                <li data-name="LuCI.Response#text"><a href="LuCI.Response.html#text">text</a></li>
            
            </ul>
            <ul class="events itemMembers">
            
            </ul>
        </li>
    
        <li class="item" data-name="LuCI.rpc">
            <span class="title">
                <a href="LuCI.rpc.html">LuCI.rpc</a>
                
            </span>
            <ul class="members itemMembers">
            
            </ul>
            <ul class="typedefs itemMembers">
            
            <span class="subtitle">Typedefs</span>
            
                <li data-name="LuCI.rpc.DeclareOptions"><a href="LuCI.rpc.html#.DeclareOptions">DeclareOptions</a></li>
            
                <li data-name="LuCI.rpc~filterFn"><a href="LuCI.rpc.html#~filterFn">filterFn</a></li>
            
                <li data-name="LuCI.rpc~interceptorFn"><a href="LuCI.rpc.html#~interceptorFn">interceptorFn</a></li>
            
                <li data-name="LuCI.rpc~invokeFn"><a href="LuCI.rpc.html#~invokeFn">invokeFn</a></li>
            
            </ul>
            <ul class="typedefs itemMembers">
            
            </ul>
            <ul class="methods itemMembers">
            
            <span class="subtitle">Methods</span>
            
                <li data-name="LuCI.rpc#addInterceptor"><a href="LuCI.rpc.html#addInterceptor">addInterceptor</a></li>
            
                <li data-name="LuCI.rpc#declare"><a href="LuCI.rpc.html#declare">declare</a></li>
            
                <li data-name="LuCI.rpc#getBaseURL"><a href="LuCI.rpc.html#getBaseURL">getBaseURL</a></li>
            
                <li data-name="LuCI.rpc#getSessionID"><a href="LuCI.rpc.html#getSessionID">getSessionID</a></li>
            
                <li data-name="LuCI.rpc#getStatusText"><a href="LuCI.rpc.html#getStatusText">getStatusText</a></li>
            
                <li data-name="LuCI.rpc#list"><a href="LuCI.rpc.html#list">list</a></li>
            
                <li data-name="LuCI.rpc#removeInterceptor"><a href="LuCI.rpc.html#removeInterceptor">removeInterceptor</a></li>
            
                <li data-name="LuCI.rpc#setBaseURL"><a href="LuCI.rpc.html#setBaseURL">setBaseURL</a></li>
            
                <li data-name="LuCI.rpc#setSessionID"><a href="LuCI.rpc.html#setSessionID">setSessionID</a></li>
            
            </ul>
            <ul class="events itemMembers">
            
            </ul>
        </li>
    
        <li class="item" data-name="LuCI.uci">
            <span class="title">
                <a href="LuCI.uci.html">LuCI.uci</a>
                
            </span>
            <ul class="members itemMembers">
            
            </ul>
            <ul class="typedefs itemMembers">
            
            <span class="subtitle">Typedefs</span>
            
                <li data-name="LuCI.uci.ChangeRecord"><a href="LuCI.uci.html#.ChangeRecord">ChangeRecord</a></li>
            
                <li data-name="LuCI.uci.SectionObject"><a href="LuCI.uci.html#.SectionObject">SectionObject</a></li>
            
                <li data-name="LuCI.uci~sectionsFn"><a href="LuCI.uci.html#~sectionsFn">sectionsFn</a></li>
            
            </ul>
            <ul class="typedefs itemMembers">
            
            </ul>
            <ul class="methods itemMembers">
            
            <span class="subtitle">Methods</span>
            
                <li data-name="LuCI.uci#add"><a href="LuCI.uci.html#add">add</a></li>
            
                <li data-name="LuCI.uci#apply"><a href="LuCI.uci.html#apply">apply</a></li>
            
                <li data-name="LuCI.uci#changes"><a href="LuCI.uci.html#changes">changes</a></li>
            
                <li data-name="LuCI.uci#createSID"><a href="LuCI.uci.html#createSID">createSID</a></li>
            
                <li data-name="LuCI.uci#get"><a href="LuCI.uci.html#get">get</a></li>
            
                <li data-name="LuCI.uci#get_first"><a href="LuCI.uci.html#get_first">get_first</a></li>
            
                <li data-name="LuCI.uci#load"><a href="LuCI.uci.html#load">load</a></li>
            
                <li data-name="LuCI.uci#move"><a href="LuCI.uci.html#move">move</a></li>
            
                <li data-name="LuCI.uci#remove"><a href="LuCI.uci.html#remove">remove</a></li>
            
                <li data-name="LuCI.uci#resolveSID"><a href="LuCI.uci.html#resolveSID">resolveSID</a></li>
            
                <li data-name="LuCI.uci#save"><a href="LuCI.uci.html#save">save</a></li>
            
                <li data-name="LuCI.uci#sections"><a href="LuCI.uci.html#sections">sections</a></li>
            
                <li data-name="LuCI.uci#set"><a href="LuCI.uci.html#set">set</a></li>
            
                <li data-name="LuCI.uci#set_first"><a href="LuCI.uci.html#set_first">set_first</a></li>
            
                <li data-name="LuCI.uci#unload"><a href="LuCI.uci.html#unload">unload</a></li>
            
                <li data-name="LuCI.uci#unset"><a href="LuCI.uci.html#unset">unset</a></li>
            
                <li data-name="LuCI.uci#unset_first"><a href="LuCI.uci.html#unset_first">unset_first</a></li>
            
            </ul>
            <ul class="events itemMembers">
            
            </ul>
        </li>
    
        <li class="item" data-name="LuCI.view">
            <span class="title">
                <a href="LuCI.view.html">LuCI.view</a>
                
            </span>
            <ul class="members itemMembers">
            
            </ul>
            <ul class="typedefs itemMembers">
            
            </ul>
            <ul class="typedefs itemMembers">
            
            </ul>
            <ul class="methods itemMembers">
            
            <span class="subtitle">Methods</span>
            
                <li data-name="LuCI.view#addFooter"><a href="LuCI.view.html#addFooter">addFooter</a></li>
            
                <li data-name="LuCI.view#handleReset"><a href="LuCI.view.html#handleReset">handleReset</a></li>
            
                <li data-name="LuCI.view#handleSave"><a href="LuCI.view.html#handleSave">handleSave</a></li>
            
                <li data-name="LuCI.view#handleSaveApply"><a href="LuCI.view.html#handleSaveApply">handleSaveApply</a></li>
            
                <li data-name="LuCI.view#load"><a href="LuCI.view.html#load">load</a></li>
            
                <li data-name="LuCI.view#render"><a href="LuCI.view.html#render">render</a></li>
            
            </ul>
            <ul class="events itemMembers">
            
            </ul>
        </li>
    
        <li class="item" data-name="LuCI.XHR">
            <span class="title">
                <a href="LuCI.XHR.html">LuCI.XHR</a>
                
            </span>
            <ul class="members itemMembers">
            
            </ul>
            <ul class="typedefs itemMembers">
            
            </ul>
            <ul class="typedefs itemMembers">
            
            </ul>
            <ul class="methods itemMembers">
            
            <span class="subtitle">Methods</span>
            
                <li data-name="LuCI.XHR#abort"><a href="LuCI.XHR.html#abort">abort</a></li>
            
                <li data-name="LuCI.XHR#busy"><a href="LuCI.XHR.html#busy">busy</a></li>
            
                <li data-name="LuCI.XHR#cancel"><a href="LuCI.XHR.html#cancel">cancel</a></li>
            
                <li data-name="LuCI.XHR#get"><a href="LuCI.XHR.html#get">get</a></li>
            
                <li data-name="LuCI.XHR#post"><a href="LuCI.XHR.html#post">post</a></li>
            
                <li data-name="LuCI.XHR#send_form"><a href="LuCI.XHR.html#send_form">send_form</a></li>
            
            </ul>
            <ul class="events itemMembers">
            
            </ul>
        </li>
    
    </ul>
</div>
    <div class="main">
        <h1 class="page-title" data-filename="LuCI.rpc.html">Class: rpc</h1>
        



<section>
    
<header>
    <h2>
        <span class="ancestors"><a href="LuCI.html">LuCI</a>.</span>
    
    rpc
    </h2>
    
        <div class="class-description"><p>The <code>LuCI.rpc</code> class provides high level ubus JSON-RPC abstractions
and means for listing and invoking remove RPC methods.</p></div>
    
</header>  

<article>
    <div class="container-overview">
    
    
    
        
<dt>
    <div class="nameContainer">
        <h4 class="name" id="rpc">
            
            new LuCI.rpc<span class="signature">()</span>
        </h4>
    
        
        <div class="tag-source">
            <a href="rpc.js.html">rpc.js</a>, <a href="rpc.js.html#line8">line 8</a>
        </div>
        
    </div>

    
</dt>
<dd>
    
    

    
    
    
    
    
    
    
<dl class="details">
    
        
    
    
    

    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
</dl>

    
    

    

    
    
    
    
    
    
    
</dd>

    
    </div>
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        <h3 class="subsection-title">Methods</h3>
        
        <dl>
            
<dt>
    <div class="nameContainer">
        <h4 class="name" id="addInterceptor">
            
            addInterceptor<span class="signature">(interceptorFn)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{<a href="LuCI.rpc.html#~interceptorFn">LuCI.rpc~interceptorFn</a>}</span>
        </h4>
    
        
        <div class="tag-source">
            <a href="rpc.js.html">rpc.js</a>, <a href="rpc.js.html#line454">line 454</a>
        </div>
        
    </div>

    
</dt>
<dd>
    
    
    <div class="description">
        <p>Registers a new interceptor function.</p>
    </div>
    

    
    
    
    
    
        

<table class="params">
    <thead>
	<tr>
		
		<th>Name</th>
		
		
		<th>Type</th>
		
		
		
		<th class="last">Description</th>
	</tr>
	</thead>
	
	<tbody>
	
	
        <tr>
            
                <td class="name"><code>interceptorFn</code></td>
            
            
            <td class="type">
            
                
<span class="param-type"><a href="LuCI.rpc.html#~interceptorFn">LuCI.rpc~interceptorFn</a></span>


            
            </td>
            
            
            
            <td class="description last">
                
                <p>The inteceptor function to register.</p></td>
        </tr>
	
	
	</tbody>
</table>
    
    
    
<dl class="details">
    
        
    
    
    

    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
</dl>

    
    

    

    
    
    
    
    
    <h5>Returns:</h5>
    


<table class="params">
    <thead>
    <tr>
        
        <th>Type</th>
        <th class="last">Description</th>
    </tr>
    </thead>
    <tbody>
    
        <tr>
            
            <td class="type">
            
                        <a href="LuCI.rpc.html#~interceptorFn">LuCI.rpc~interceptorFn</a>
                        
                    
            </td>
            <td class="description last">Returns the given function value.</td>
        </tr>
    
    </tbody>
</table>

    
    
    
</dd>

        
            
<dt>
    <div class="nameContainer">
        <h4 class="name" id="declare">
            
            declare<span class="signature">(options)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{<a href="LuCI.rpc.html#~invokeFn">LuCI.rpc~invokeFn</a>}</span>
        </h4>
    
        
        <div class="tag-source">
            <a href="rpc.js.html">rpc.js</a>, <a href="rpc.js.html#line292">line 292</a>
        </div>
        
    </div>

    
</dt>
<dd>
    
    
    <div class="description">
        <p>Describes a remote RPC call procedure and returns a function
implementing it.</p>
    </div>
    

    
    
    
    
    
        

<table class="params">
    <thead>
	<tr>
		
		<th>Name</th>
		
		
		<th>Type</th>
		
		
		
		<th class="last">Description</th>
	</tr>
	</thead>
	
	<tbody>
	
	
        <tr>
            
                <td class="name"><code>options</code></td>
            
            
            <td class="type">
            
                
<span class="param-type"><a href="LuCI.rpc.html#.DeclareOptions">LuCI.rpc.DeclareOptions</a></span>


            
            </td>
            
            
            
            <td class="description last">
                
                <p>If any object names are given, this function will return the method
signatures of each given object.</p></td>
        </tr>
	
	
	</tbody>
</table>
    
    
    
<dl class="details">
    
        
    
    
    

    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
</dl>

    
    

    

    
    
    
    
    
    <h5>Returns:</h5>
    


<table class="params">
    <thead>
    <tr>
        
        <th>Type</th>
        <th class="last">Description</th>
    </tr>
    </thead>
    <tbody>
    
        <tr>
            
            <td class="type">
            
                        <a href="LuCI.rpc.html#~invokeFn">LuCI.rpc~invokeFn</a>
                        
                    
            </td>
            <td class="description last">Returns a new function implementing the method call described in
<code>options</code>.</td>
        </tr>
    
    </tbody>
</table>

    
    
    
</dd>

        
            
<dt>
    <div class="nameContainer">
        <h4 class="name" id="getBaseURL">
            
            getBaseURL<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
        </h4>
    
        
        <div class="tag-source">
            <a href="rpc.js.html">rpc.js</a>, <a href="rpc.js.html#line367">line 367</a>
        </div>
        
    </div>

    
</dt>
<dd>
    
    
    <div class="description">
        <p>Returns the current RPC base URL.</p>
    </div>
    

    
    
    
    
    
    
    
<dl class="details">
    
        
    
    
    

    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
</dl>

    
    

    

    
    
    
    
    
    <h5>Returns:</h5>
    


<table class="params">
    <thead>
    <tr>
        
        <th>Type</th>
        <th class="last">Description</th>
    </tr>
    </thead>
    <tbody>
    
        <tr>
            
            <td class="type">
            
                        string
                        
                    
            </td>
            <td class="description last">Returns the RPC URL endpoint to issue requests against.</td>
        </tr>
    
    </tbody>
</table>

    
    
    
</dd>

        
            
<dt>
    <div class="nameContainer">
        <h4 class="name" id="getSessionID">
            
            getSessionID<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
        </h4>
    
        
        <div class="tag-source">
            <a href="rpc.js.html">rpc.js</a>, <a href="rpc.js.html#line346">line 346</a>
        </div>
        
    </div>

    
</dt>
<dd>
    
    
    <div class="description">
        <p>Returns the current RPC session id.</p>
    </div>
    

    
    
    
    
    
    
    
<dl class="details">
    
        
    
    
    

    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
</dl>

    
    

    

    
    
    
    
    
    <h5>Returns:</h5>
    


<table class="params">
    <thead>
    <tr>
        
        <th>Type</th>
        <th class="last">Description</th>
    </tr>
    </thead>
    <tbody>
    
        <tr>
            
            <td class="type">
            
                        string
                        
                    
            </td>
            <td class="description last">Returns the 32 byte session ID string used for authenticating remote
requests.</td>
        </tr>
    
    </tbody>
</table>

    
    
    
</dd>

        
            
<dt>
    <div class="nameContainer">
        <h4 class="name" id="getStatusText">
            
            getStatusText<span class="signature">(statusCode)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
        </h4>
    
        
        <div class="tag-source">
            <a href="rpc.js.html">rpc.js</a>, <a href="rpc.js.html#line391">line 391</a>
        </div>
        
    </div>

    
</dt>
<dd>
    
    
    <div class="description">
        <p>Translates a numeric <code>ubus</code> error code into a human readable
description.</p>
    </div>
    

    
    
    
    
    
        

<table class="params">
    <thead>
	<tr>
		
		<th>Name</th>
		
		
		<th>Type</th>
		
		
		
		<th class="last">Description</th>
	</tr>
	</thead>
	
	<tbody>
	
	
        <tr>
            
                <td class="name"><code>statusCode</code></td>
            
            
            <td class="type">
            
                
<span class="param-type">number</span>


            
            </td>
            
            
            
            <td class="description last">
                
                <p>The numeric status code.</p></td>
        </tr>
	
	
	</tbody>
</table>
    
    
    
<dl class="details">
    
        
    
    
    

    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
</dl>

    
    

    

    
    
    
    
    
    <h5>Returns:</h5>
    


<table class="params">
    <thead>
    <tr>
        
        <th>Type</th>
        <th class="last">Description</th>
    </tr>
    </thead>
    <tbody>
    
        <tr>
            
            <td class="type">
            
                        string
                        
                    
            </td>
            <td class="description last">Returns the textual description of the code.</td>
        </tr>
    
    </tbody>
</table>

    
    
    
</dd>

        
            
<dt>
    <div class="nameContainer">
        <h4 class="name" id="list">
            
            list<span class="signature">(<span class="optional">objectNames</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;(Array.&lt;string>|Object.&lt;string, Object.&lt;string, Object.&lt;string, string>>>)>}</span>
        </h4>
    
        
        <div class="tag-source">
            <a href="rpc.js.html">rpc.js</a>, <a href="rpc.js.html#line140">line 140</a>
        </div>
        
    </div>

    
</dt>
<dd>
    
    
    <div class="description">
        <p>Lists available remote ubus objects or the method signatures of
specific objects.</p>
<p>This function has two signatures and is sensitive to the number of
arguments passed to it:</p>
<ul>
<li><code>list()</code> -
Returns an array containing the names of all remote <code>ubus</code> objects</li>
<li><code>list(&quot;objname&quot;, ...)</code>
Returns method signatures for each given <code>ubus</code> object name.</li>
</ul>
    </div>
    

    
    
    
    
    
        

<table class="params">
    <thead>
	<tr>
		
		<th>Name</th>
		
		
		<th>Type</th>
		
		
		
		<th class="last">Description</th>
	</tr>
	</thead>
	
	<tbody>
	
	
        <tr>
            
                <td class="name"><code>objectNames</code></td>
            
            
            <td class="type">
            
                
<span class="param-type">string</span>


            
            </td>
            
            
            
            <td class="description last">
                
                    
                        <span class="optional">optional</span>
                    
                    
                        
                    
                        <span class="repeatable">repeatable</span>
                    
                
                <p>If any object names are given, this function will return the method
signatures of each given object.</p></td>
        </tr>
	
	
	</tbody>
</table>
    
    
    
<dl class="details">
    
        
    
    
    

    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
</dl>

    
    

    

    
    
    
    
    
    <h5>Returns:</h5>
    


<table class="params">
    <thead>
    <tr>
        
        <th>Type</th>
        <th class="last">Description</th>
    </tr>
    </thead>
    <tbody>
    
        <tr>
            
            <td class="type">
            
                        Promise.&lt;(Array.&lt;string>|Object.&lt;string, Object.&lt;string, Object.&lt;string, string>>>)>
                        
                    
            </td>
            <td class="description last">When invoked without arguments, this function will return a promise
resolving to an array of <code>ubus</code> object names. When invoked with one or
more arguments, a promise resolving to an object describing the method
signatures of each requested <code>ubus</code> object name will be returned.</td>
        </tr>
    
    </tbody>
</table>

    
    
    
</dd>

        
            
<dt>
    <div class="nameContainer">
        <h4 class="name" id="removeInterceptor">
            
            removeInterceptor<span class="signature">(interceptorFn)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
        </h4>
    
        
        <div class="tag-source">
            <a href="rpc.js.html">rpc.js</a>, <a href="rpc.js.html#line470">line 470</a>
        </div>
        
    </div>

    
</dt>
<dd>
    
    
    <div class="description">
        <p>Removes a registered interceptor function.</p>
    </div>
    

    
    
    
    
    
        

<table class="params">
    <thead>
	<tr>
		
		<th>Name</th>
		
		
		<th>Type</th>
		
		
		
		<th class="last">Description</th>
	</tr>
	</thead>
	
	<tbody>
	
	
        <tr>
            
                <td class="name"><code>interceptorFn</code></td>
            
            
            <td class="type">
            
                
<span class="param-type"><a href="LuCI.rpc.html#~interceptorFn">LuCI.rpc~interceptorFn</a></span>


            
            </td>
            
            
            
            <td class="description last">
                
                <p>The inteceptor function to remove.</p></td>
        </tr>
	
	
	</tbody>
</table>
    
    
    
<dl class="details">
    
        
    
    
    

    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
</dl>

    
    

    

    
    
    
    
    
    <h5>Returns:</h5>
    


<table class="params">
    <thead>
    <tr>
        
        <th>Type</th>
        <th class="last">Description</th>
    </tr>
    </thead>
    <tbody>
    
        <tr>
            
            <td class="type">
            
                        boolean
                        
                    
            </td>
            <td class="description last">Returns <code>true</code> if the given function has been removed or <code>false</code>
if it has not been found.</td>
        </tr>
    
    </tbody>
</table>

    
    
    
</dd>

        
            
<dt>
    <div class="nameContainer">
        <h4 class="name" id="setBaseURL">
            
            setBaseURL<span class="signature">(sid)</span>
        </h4>
    
        
        <div class="tag-source">
            <a href="rpc.js.html">rpc.js</a>, <a href="rpc.js.html#line377">line 377</a>
        </div>
        
    </div>

    
</dt>
<dd>
    
    
    <div class="description">
        <p>Set the RPC base URL to use.</p>
    </div>
    

    
    
    
    
    
        

<table class="params">
    <thead>
	<tr>
		
		<th>Name</th>
		
		
		<th>Type</th>
		
		
		
		<th class="last">Description</th>
	</tr>
	</thead>
	
	<tbody>
	
	
        <tr>
            
                <td class="name"><code>sid</code></td>
            
            
            <td class="type">
            
                
<span class="param-type">string</span>


            
            </td>
            
            
            
            <td class="description last">
                
                <p>Sets the RPC URL endpoint to issue requests against.</p></td>
        </tr>
	
	
	</tbody>
</table>
    
    
    
<dl class="details">
    
        
    
    
    

    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
</dl>

    
    

    

    
    
    
    
    
    
    
</dd>

        
            
<dt>
    <div class="nameContainer">
        <h4 class="name" id="setSessionID">
            
            setSessionID<span class="signature">(sid)</span>
        </h4>
    
        
        <div class="tag-source">
            <a href="rpc.js.html">rpc.js</a>, <a href="rpc.js.html#line357">line 357</a>
        </div>
        
    </div>

    
</dt>
<dd>
    
    
    <div class="description">
        <p>Set the RPC session id to use.</p>
    </div>
    

    
    
    
    
    
        

<table class="params">
    <thead>
	<tr>
		
		<th>Name</th>
		
		
		<th>Type</th>
		
		
		
		<th class="last">Description</th>
	</tr>
	</thead>
	
	<tbody>
	
	
        <tr>
            
                <td class="name"><code>sid</code></td>
            
            
            <td class="type">
            
                
<span class="param-type">string</span>


            
            </td>
            
            
            
            <td class="description last">
                
                <p>Sets the 32 byte session ID string used for authenticating remote
requests.</p></td>
        </tr>
	
	
	</tbody>
</table>
    
    
    
<dl class="details">
    
        
    
    
    

    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
</dl>

    
    

    

    
    
    
    
    
    
    
</dd>

        </dl>
    
    
    
        <h3 class="subsection-title">Type Definitions</h3>
        
        <dl>
                
<dt>
    <div class="nameContainer">
        <h4 class="name" id=".DeclareOptions">LuCI.rpc.DeclareOptions<span class="type-signature type object">Object</span> </h4>
    </div>
    
    
</dt>
<dd>
    
    
    
<dl class="details">
    
        
        <h5 class="subsection-title">Properties:</h5>
        
        <dl>

<table class="props">
    <thead>
	<tr>
		
		<th>Name</th>
		
		
		<th>Type</th>
		
		
		<th>Argument</th>
		
		
		
		
		<th class="last">Description</th>
	</tr>
	</thead>
	
	<tbody>
	
	
        <tr>
            
                <td class="name"><code>object</code></td>
            
            
            <td class="type">
            
                
<span class="param-type">string</span>


            
            </td>
            
            
                <td class="attributes">
                
                    
                
                </td>
            
            
            
            
            <td class="description last"><p>The name of the remote <code>ubus</code> object to invoke.</p></td>
        </tr>
	
	
	
        <tr>
            
                <td class="name"><code>method</code></td>
            
            
            <td class="type">
            
                
<span class="param-type">string</span>


            
            </td>
            
            
                <td class="attributes">
                
                    
                
                </td>
            
            
            
            
            <td class="description last"><p>The name of the remote <code>ubus</code> method to invoke.</p></td>
        </tr>
	
	
	
        <tr>
            
                <td class="name"><code>params</code></td>
            
            
            <td class="type">
            
                
<span class="param-type">Array.&lt;string></span>


            
            </td>
            
            
                <td class="attributes">
                
                    &lt;optional><br>
                
                    
                
                </td>
            
            
            
            
            <td class="description last"><p>Lists the named parameters expected by the remote <code>ubus</code> RPC method.
The arguments passed to the resulting generated method call function
will be mapped to named parameters in the order they appear in this
array.</p>
<p>Extraneous parameters passed to the generated function will not be
sent to the remote procedure but are passed to the
<a href="LuCI.rpc.html#~filterFn"><code>filter function</code></a> if one is specified.</p>
<p>Examples:</p>
<ul>
<li><code>params: [ &quot;foo&quot;, &quot;bar&quot; ]</code> -
When the resulting call function is invoked with <code>fn(true, false)</code>,
the corresponding args object sent to the remote procedure will be
<code>{ foo: true, bar: false }</code>.</li>
<li><code>params: [ &quot;test&quot; ], filter: function(reply, args, extra) { ... }</code> -
When the resultung generated function is invoked with
<code>fn(&quot;foo&quot;, &quot;bar&quot;, &quot;baz&quot;)</code> then <code>{ &quot;test&quot;: &quot;foo&quot; }</code> will be sent as
argument to the remote procedure and the filter function will be
invoked with <code>filterFn(reply, [ &quot;foo&quot; ], &quot;bar&quot;, &quot;baz&quot;)</code></li>
</ul></td>
        </tr>
	
	
	
        <tr>
            
                <td class="name"><code>expect</code></td>
            
            
            <td class="type">
            
                
<span class="param-type">Object.&lt;string, *></span>


            
            </td>
            
            
                <td class="attributes">
                
                    &lt;optional><br>
                
                    
                
                </td>
            
            
            
            
            <td class="description last"><p>Describes the expected return data structure. The given object is
supposed to contain a single key selecting the value to use from
the returned <code>ubus</code> reply object. The value of the sole key within
the <code>expect</code> object is used to infer the expected type of the received
<code>ubus</code> reply data.</p>
<p>If the received data does not contain <code>expect</code>'s key, or if the
type of the data differs from the type of the value in the expect
object, the expect object's value is returned as default instead.</p>
<p>The key in the <code>expect</code> object may be an empty string (<code>''</code>) in which
case the entire reply object is selected instead of one of its subkeys.</p>
<p>If the <code>expect</code> option is omitted, the received reply will be returned
as-is, regardless of its format or type.</p>
<p>Examples:</p>
<ul>
<li><code>expect: { '': { error: 'Invalid response' } }</code> -
This requires the entire <code>ubus</code> reply to be a plain JavaScript
object. If the reply isn't an object but e.g. an array or a numeric
error code instead, it will get replaced with
<code>{ error: 'Invalid response' }</code> instead.</li>
<li><code>expect: { results: [] }</code> -
This requires the received <code>ubus</code> reply to be an object containing
a key <code>results</code> with an array as value. If the received reply does
not contain such a key, or if <code>reply.results</code> points to a non-array
value, the empty array (<code>[]</code>) will be used instead.</li>
<li><code>expect: { success: false }</code> -
This requires the received <code>ubus</code> reply to be an object containing
a key <code>success</code> with a boolean value. If the reply does not contain
<code>success</code> or if <code>reply.success</code> is not a boolean value, <code>false</code> will
be returned as default instead.</li>
</ul></td>
        </tr>
	
	
	
        <tr>
            
                <td class="name"><code>filter</code></td>
            
            
            <td class="type">
            
                
<span class="param-type"><a href="LuCI.rpc.html#~filterFn">LuCI.rpc~filterFn</a></span>


            
            </td>
            
            
                <td class="attributes">
                
                    &lt;optional><br>
                
                    
                
                </td>
            
            
            
            
            <td class="description last"><p>Specfies an optional filter function which is invoked to transform the
received reply data before it is returned to the caller.</p></td>
        </tr>
	
	
	</tbody>
</table></dl>
        
    
        
    
    
    

    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
</dl>

    
    
</dd>

            
                
<dt>
    <div class="nameContainer">
        <h4 class="name" id="~filterFn">
            
            filterFn<span class="signature">(data, args, extraArgs)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{*}</span>
        </h4>
    
        
        <div class="tag-source">
            <a href="rpc.js.html">rpc.js</a>, <a href="rpc.js.html#line231">line 231</a>
        </div>
        
    </div>

    
</dt>
<dd>
    
    
    <div class="description">
        <p>The filter function is invoked to transform a received <code>ubus</code> RPC call
reply before returning it to the caller.</p>
    </div>
    

    
    
    
    
    
        

<table class="params">
    <thead>
	<tr>
		
		<th>Name</th>
		
		
		<th>Type</th>
		
		
		
		<th class="last">Description</th>
	</tr>
	</thead>
	
	<tbody>
	
	
        <tr>
            
                <td class="name"><code>data</code></td>
            
            
            <td class="type">
            
                
<span class="param-type">*</span>


            
            </td>
            
            
            
            <td class="description last">
                
                    
                    
                        
                    
                
                <p>The received <code>ubus</code> reply data or a subset of it as described in the
<code>expect</code> option of the RPC call declaration. In case of remote call
errors, <code>data</code> is numeric <code>ubus</code> error code instead.</p></td>
        </tr>
	
	
	
        <tr>
            
                <td class="name"><code>args</code></td>
            
            
            <td class="type">
            
                
<span class="param-type">Array.&lt;*></span>


            
            </td>
            
            
            
            <td class="description last">
                
                    
                    
                        
                    
                
                <p>The arguments the RPC method has been invoked with.</p></td>
        </tr>
	
	
	
        <tr>
            
                <td class="name"><code>extraArgs</code></td>
            
            
            <td class="type">
            
                
<span class="param-type">*</span>


            
            </td>
            
            
            
            <td class="description last">
                
                    
                    
                        
                    
                        <span class="repeatable">repeatable</span>
                    
                
                <p>All extraneous arguments passed to the RPC method exceeding the number
of arguments describes in the RPC call declaration.</p></td>
        </tr>
	
	
	</tbody>
</table>
    
    
    
<dl class="details">
    
        
    
    
    

    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
</dl>

    
    

    

    
    
    
    
    
    <h5>Returns:</h5>
    


<table class="params">
    <thead>
    <tr>
        
        <th>Type</th>
        <th class="last">Description</th>
    </tr>
    </thead>
    <tbody>
    
        <tr>
            
            <td class="type">
            
                        *
                        
                    
            </td>
            <td class="description last">The return value of the filter function will be returned to the caller
of the RPC method as-is.</td>
        </tr>
    
    </tbody>
</table>

    
    
    
</dd>

            
                
<dt>
    <div class="nameContainer">
        <h4 class="name" id="~interceptorFn">
            
            interceptorFn<span class="signature">(msg, req)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;*>|*}</span>
        </h4>
    
        
        <div class="tag-source">
            <a href="rpc.js.html">rpc.js</a>, <a href="rpc.js.html#line408">line 408</a>
        </div>
        
    </div>

    
</dt>
<dd>
    
    
    <div class="description">
        <p>Registered interceptor functions are invoked before the standard reply
parsing and handling logic.</p>
<p>By returning rejected promises, interceptor functions can cause the
invocation function to fail, regardless of the received reply.</p>
<p>Interceptors may also modify their message argument in-place to
rewrite received replies before they're processed by the standard
response handling code.</p>
<p>A common use case for such functions is to detect failing RPC replies
due to expired authentication in order to trigger a new login.</p>
    </div>
    

    
    
    
    
    
        

<table class="params">
    <thead>
	<tr>
		
		<th>Name</th>
		
		
		<th>Type</th>
		
		
		
		<th class="last">Description</th>
	</tr>
	</thead>
	
	<tbody>
	
	
        <tr>
            
                <td class="name"><code>msg</code></td>
            
            
            <td class="type">
            
                
<span class="param-type">*</span>


            
            </td>
            
            
            
            <td class="description last">
                
                <p>The unprocessed, JSON decoded remote RPC method call reply.</p>
<p>Since interceptors run before the standard parsing logic, the reply
data is not verified for correctness or filtered according to
<code>expect</code> and <code>filter</code> specifications in the declarations.</p></td>
        </tr>
	
	
	
        <tr>
            
                <td class="name"><code>req</code></td>
            
            
            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>
            
            
            
            <td class="description last">
                
                <p>The related request object which is an extended variant of the
declaration object, allowing access to internals of the invocation
function such as <code>filter</code>, <code>expect</code> or <code>params</code> values.</p></td>
        </tr>
	
	
	</tbody>
</table>
    
    
    
<dl class="details">
    
        
    
    
    

    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
</dl>

    
    

    

    
    
    
    
    
    <h5>Returns:</h5>
    


<table class="params">
    <thead>
    <tr>
        
        <th>Type</th>
        <th class="last">Description</th>
    </tr>
    </thead>
    <tbody>
    
        <tr>
            
            <td class="type">
            
                        Promise.&lt;*>
                         | 
                    
                        *
                        
                    
            </td>
            <td class="description last">Interceptor functions may return a promise to defer response
processing until some delayed work completed. Any values the returned
promise resolves to are ignored.
When the returned promise rejects with an error, the invocation
function will fail too, forwarding the error to the caller.</td>
        </tr>
    
    </tbody>
</table>

    
    
    
</dd>

            
                
<dt>
    <div class="nameContainer">
        <h4 class="name" id="~invokeFn">
            
            invokeFn<span class="signature">(params)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;*>}</span>
        </h4>
    
        
        <div class="tag-source">
            <a href="rpc.js.html">rpc.js</a>, <a href="rpc.js.html#line254">line 254</a>
        </div>
        
    </div>

    
</dt>
<dd>
    
    
    <div class="description">
        <p>The generated invocation function is returned by
<a href="LuCI.rpc.html#declare"><code>rpc.declare()</code></a> and encapsulates a single
RPC method call.</p>
<p>Calling this function will execute a remote <code>ubus</code> HTTP call request
using the arguments passed to it as arguments and return a promise
resolving to the received reply values.</p>
    </div>
    

    
    
    
    
    
        

<table class="params">
    <thead>
	<tr>
		
		<th>Name</th>
		
		
		<th>Type</th>
		
		
		
		<th class="last">Description</th>
	</tr>
	</thead>
	
	<tbody>
	
	
        <tr>
            
                <td class="name"><code>params</code></td>
            
            
            <td class="type">
            
                
<span class="param-type">*</span>


            
            </td>
            
            
            
            <td class="description last">
                
                    
                    
                        
                    
                        <span class="repeatable">repeatable</span>
                    
                
                <p>The parameters to pass to the remote procedure call. The given
positional arguments will be named to named RPC parameters according
to the names specified in the <code>params</code> array of the method declaration.</p>
<p>Any additional parameters exceeding the amount of arguments in the
<code>params</code> declaration are passed as private extra arguments to the
declared filter function.</p></td>
        </tr>
	
	
	</tbody>
</table>
    
    
    
<dl class="details">
    
        
    
    
    

    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
</dl>

    
    

    

    
    
    
    
    
    <h5>Returns:</h5>
    


<table class="params">
    <thead>
    <tr>
        
        <th>Type</th>
        <th class="last">Description</th>
    </tr>
    </thead>
    <tbody>
    
        <tr>
            
            <td class="type">
            
                        Promise.&lt;*>
                        
                    
            </td>
            <td class="description last">Returns a promise resolving to the result data of the remote <code>ubus</code>
RPC method invocation, optionally substituted and filtered according
to the <code>expect</code> and <code>filter</code> declarations.</td>
        </tr>
    
    </tbody>
</table>

    
    
    
</dd>

            </dl>
    
    
    

    
</article>

</section>  





        

        <footer>
            Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Wed Feb 12 2020 11:56:59 GMT+0100 (Central European Standard Time)
        </footer>
    </div>
</div>
<script>prettyPrint();</script>
<script src="scripts/jaguar.js"></script>
</body>
</html>