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 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
|
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3//EN">
<HTML><HEAD>
<TITLE>IBM Visualization Data Explorer Programmer's Reference</TITLE>
<META HTTP-EQUIV="abstract" CONTENT="IBM Visualization Data Explorer
Programmer's Reference">
<META HTTP-EQUIV="contact" CONTENT="IBM Visualization Data Explorer
(ibmdx@watson.ibm.com)">
<META HTTP-EQUIV="owner" CONTENT="IBM Visualization Data Explorer
(ibmdx@watson.ibm.com)">
<META HTTP-EQUIV="updated" CONTENT="Tue, 16 Sep 1997 ">
<META HTTP-EQUIV="review" CONTENT="Fri, 14 Aug 1998 ">
<META HTTP-EQUIV="keywords" CONTENT="GRAPHICS VISUALIZATION VISUAL PROGRAM DATA
MINING">
<meta http-equiv="content-type" content="text/html;charset=ISO-8859-1">
</HEAD><BODY BGCOLOR="#FFFFFF">
<A NAME="Top_Of_Page"></A>
<H1>IBM Visualization Data Explorer Programmer's Reference</H1>
<B>[ <A HREF="#Bot_Of_Page">Bottom of Page</A> | <A
HREF="progu303.htm">Previous Page</A> | <A HREF="progu305.htm">Next
Page</A> | <A HREF="../proguide.htm#ToC">Table of Contents</A> | <A
HREF="progu097.htm#PToC20">Partial Table of Contents</A> | <A
HREF="progu344.htm#HDRINDEX_START">Index</A> ]</B><HR><P>
<H3><A NAME="HDRDXSCEV" HREF="progu097.htm#PToC_398">DXSetCacheEntry,
DXSetCacheEntryV</A></H3>
<A NAME="IDX2048"></A>
<A NAME="IDX2049"></A>
<A NAME="IDX2050"></A>
<A NAME="IDX2051"></A>
<P><STRONG>Function</STRONG>
<P>
Set a cache entry.
<P><STRONG>Syntax</STRONG>
<BR>
<TT><STRONG><BR>
#include <dx/dx.h><BR>
<P><BR>
Error DXSetCacheEntry(Object out, double cost,<BR>
char *function, int key, int n, ...)<BR>
Error DXSetCacheEntryV(Object out, double cost,<BR>
char *function, int key, int n, Object *in)<BR>
</STRONG></TT><BR>
<P><STRONG>Functional Details</STRONG>
<P>
Create or alter a cache entry to store a reference to
<TT><STRONG>out</STRONG></TT>.
The cache entry is indexed by a key created from
<TT><STRONG>function</STRONG></TT>,
<TT><STRONG>key</STRONG></TT>,
<TT><STRONG>n</STRONG></TT>,
and the Objects in
the Array
<TT><STRONG>in</STRONG></TT>.
The parameter <TT><STRONG>function</STRONG></TT> makes the key unique to the
caller; <TT><STRONG>key</STRONG></TT> allows the caller to have multiple
cache entries with the same <TT><STRONG>function</STRONG></TT>, and
<TT><STRONG>n</STRONG></TT> and <TT><STRONG>in</STRONG></TT> allow the
cache entry to be related to the Objects that were
used to create it.
Setting a cache entry to <TT><STRONG>NULL</STRONG></TT> removes the entry
and deletes the Object.
<P>
<P>
The <TT><STRONG>out</STRONG></TT> parameter must be a Data Explorer Object.
Private Objects may be used to store arbitrary user data in the cache.
<P>
The entry may be automatically deleted at any time because of memory
constraints unless <TT><STRONG>cost</STRONG></TT> is set to a value equal
to or greater than <TT><STRONG>CACHE_PERMANENT</STRONG></TT>.
<P><B>Notes: </B><OL>
<P><LI>Because Data Explorer modules follow pure function semantics, the cache
should <I>not</I> be used to store a state that affects the
output of the module.
A module must always be able to recreate the Object from the same set
of inputs; the cache should be used only as an optimization tool.
<P><LI>On a multiprocessor machine, processor local information should
<I>not</I> be stored in the cache, since its contents
may be retrieved on another processor.
<P><LI>The cache is local to one machine and cannot be used to
communicate information between modules on different
machines when running in distributed mode.
</OL>
<P>
Because Objects in the cache are candidates for deletion at any time,
<TT><STRONG>DXReference</STRONG></TT> should be called before caching
an Object if that Object is to be used later.
<P>
If you have called DXReference on the Object before putting it in the
cache, call <TT><STRONG>DXDelete</STRONG></TT> when the Object is no
longer being used; the latter call will not delete the
Object from the cache.
(To delete an Object from the cache, set the cache entry to
<TT><STRONG>NULL</STRONG></TT> with <TT><STRONG>DXSetCacheEntry</STRONG></TT>.)
<P>
<P><STRONG>Return Value</STRONG>
<P>
Return <TT><STRONG>OK</STRONG></TT> or return <TT><STRONG>NULL</STRONG></TT> and
set an error code.
<P><STRONG>See Also</STRONG>
<P>
<TT><STRONG>
<A HREF="progu130.htm#HDRDXDEL">DXDelete</A>,
<A HREF="progu159.htm#HDRDXGCEV">DXGetCacheEntry, DXGetCacheEntryV</A>,
<A HREF="progu190.htm#HDRDXGSOT">DXGetObjectTag, DXSetObjectTag</A>,
<A HREF="progu257.htm#HDRDXNP">DXNewPrivate</A>,
<A HREF="progu288.htm#HDRDXREF">DXReference</A>
</STRONG></TT>
<P>
<A HREF="progu059.htm#HDRCACHE">13.5 , "Cache"</A>.
<P><P>
<P><HR><B>[ <A HREF="#Top_Of_Page">Top of Page</A> | <A
HREF="progu303.htm">Previous Page</A> | <A HREF="progu305.htm">Next
Page</A> | <A HREF="../proguide.htm#ToC">Table of Contents</A> | <A
HREF="progu097.htm#PToC20">Partial Table of Contents</A> | <A
HREF="progu344.htm#HDRINDEX_START">Index</A> ]</B> <br><b>[<a
href="../allguide.htm">Data Explorer Documentation</a> | <a
href="../qikguide.htm">QuickStart Guide</a> | <a
href="../usrguide.htm">User's Guide</a> | <a
href="../refguide.htm">User's Reference</a> | <a
href="../proguide.htm">Programmer's Reference</a> | <a
href="../insguide.htm">Installation and Configuration
Guide</a> ]</b><br><p><b>[<a
href="http://www.research.ibm.com/dx">Data Explorer Home
Page</a>]</b><p><HR ALIGN=LEFT WIDTH=600><b>[<A
HREF="http://www.ibm.com/">IBM Home Page</A> | <A
HREF="http://www.ibm.com/Orders/">Order</A> | <A
HREF="http://www.ibm.com/Search/">Search</A> | <A
HREF="http://www.ibm.com/Assist/">Contact IBM</A> | <A
HREF="http://www.ibm.com/Legal/">Legal</A> ]</b><hr><p>
<A NAME="Bot_Of_Page"></A>
</BODY></HTML>
|