IBM Visualization Data Explorer Programmer's Reference

[ Bottom of Page | Previous Page | Next Page | Table of Contents | Partial Table of Contents | Index ]

DXSetCacheEntry, DXSetCacheEntryV

Function

Set a cache entry.

Syntax

#include <dx/dx.h>


Error DXSetCacheEntry(Object out, double cost,
char *function, int key, int n, ...)
Error DXSetCacheEntryV(Object out, double cost,
char *function, int key, int n, Object *in)

Functional Details

Create or alter a cache entry to store a reference to out. The cache entry is indexed by a key created from function, key, n, and the Objects in the Array in. The parameter function makes the key unique to the caller; key allows the caller to have multiple cache entries with the same function, and n and in allow the cache entry to be related to the Objects that were used to create it. Setting a cache entry to NULL removes the entry and deletes the Object.

The out parameter must be a Data Explorer Object. Private Objects may be used to store arbitrary user data in the cache.

The entry may be automatically deleted at any time because of memory constraints unless cost is set to a value equal to or greater than CACHE_PERMANENT.

Notes:

  1. Because Data Explorer modules follow pure function semantics, the cache should not 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.

  2. On a multiprocessor machine, processor local information should not be stored in the cache, since its contents may be retrieved on another processor.

  3. The cache is local to one machine and cannot be used to communicate information between modules on different machines when running in distributed mode.

Because Objects in the cache are candidates for deletion at any time, DXReference should be called before caching an Object if that Object is to be used later.

If you have called DXReference on the Object before putting it in the cache, call DXDelete 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 NULL with DXSetCacheEntry.)

Return Value

Return OK or return NULL and set an error code.

See Also

DXDelete, DXGetCacheEntry, DXGetCacheEntryV, DXGetObjectTag, DXSetObjectTag, DXNewPrivate, DXReference

13.5 , "Cache".


[ Top of Page | Previous Page | Next Page | Table of Contents | Partial Table of Contents | Index ]
[Data Explorer Documentation | QuickStart Guide | User's Guide | User's Reference | Programmer's Reference | Installation and Configuration Guide ]

[Data Explorer Home Page]


[IBM Home Page | Order | Search | Contact IBM | Legal ]