File: cockpit-cache.xml

package info (click to toggle)
cockpit 239-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 67,268 kB
  • sloc: javascript: 245,474; ansic: 72,273; python: 23,634; xml: 6,155; sh: 2,919; makefile: 923; sed: 5
file content (70 lines) | stat: -rw-r--r-- 2,489 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
	"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<refentry id="cockpit-cache">
  <refnamediv>
    <refname>cockpit.js: Object Cache</refname>
    <refpurpose>Caching and sharing data</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
  <para>If the same information is displayed by multiple components in Cockpit,
    <code>cockpit.cache()</code> provides a way to share data between them. The shared
    data should be simple objects, arrays, and values, and not contain functions or
    other objects.</para>
</refsynopsisdiv>

  <refsection id="cockpit-cache-func">
    <title>cockpit.cache()</title>
<programlisting>
cache = cockpit.cache(key, provider, consumer)
</programlisting>

    <para>Create a new cache object. The <code>key</code> should be a globally unique string
      that describes the data being cached. This string must describe the data, across all
      machines and all versions of cockpit. It is customary to include a version number in
      the <code>key</code> string.</para>

<programlisting>
function provider(result, key) {
    result("myvalue");

    return {
        close: function() {
            /* closed */
        }
    };
}
</programlisting>

    <para>The <code>provider</code> is a function that will be invoked to start retrieving
      data for the cache. It will be passed a <code>result</code> function as its first
      argument. The <code>result</code> should be invoked whenever new data is available.
      The <code>key</code> argument matches the key string the cache was created with.</para>

    <para>The <code>provider</code> can return an object with a <code>close</code> method.
      This method will be invoked when the cache no longer needs data from the provider.</para>

<programlisting>
function consumer(value, key) {
    /* ... */
}
</programlisting>

    <para>The <code>consumer</code> is a function that will be passed new values when they
      are available, whether they come from the <code>provider</code> or a source in a
      different component/frame.</para>

  </refsection>

  <refsection id="cockpit-cache-close">
    <title>cache.close()</title>
<programlisting>
cache.close()
</programlisting>

    <para>Close a cache and stop calling its <code>consumer</code>. If the <code>provider</code>
      was invoked, then the <code>close()</code> method it returned will be invoked.</para>
  </refsection>

</refentry>