source: tags/1.0/src/core/RpBindingsDict.h @ 1017

Last change on this file since 1017 was 1011, checked in by dkearney, 16 years ago

updated rappture's bindings and units dictionaries for compiling on 64bit platforms. previously (on our 32bit systems), we used integers as dictionary keys. This did not cause a problem because our pointers were also 32bits wide. On the 64bit platforms we test on, the integers are 32bits, but the pointers (and longs) are 64bits wide. The short term solution is to change our dictionary key to a long int, as was done in this changeset. the long term solution, if you choose to accept, is to swap out our RpDict? class for something more robust like the blt hash table.

File size: 1.3 KB
Line 
1/*
2 * ----------------------------------------------------------------------
3 *  INTERFACE: Common Rappture Dictionary Header
4 *
5 * ======================================================================
6 *  AUTHOR:  Derrick S. Kearney, Purdue University
7 *  Copyright (c) 2004-2005  Purdue Research Foundation
8 *
9 *  See the file "license.terms" for information on usage and
10 *  redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
11 * ======================================================================
12 */
13
14#ifndef _RpBINDINGS_DICT_H
15#define _RpBINDINGS_DICT_H
16
17#include "RpDict.h"
18#include "RpUnits.h"
19
20#ifdef __cplusplus
21extern "C" {
22#endif
23
24// forward declarations so we can compile the object file
25class RpLibrary;
26/*
27class RpUnits;
28*/
29
30#define DICT_TEMPLATE_L <long,RpLibrary*>
31#define DICT_TEMPLATE_U <long,std::string>
32
33// global declaration of library and units dictionaries
34// for languages that cannot return rappture objects.
35// (fortran, matlab, ...)
36
37extern RpDict DICT_TEMPLATE_L ObjDict_Lib;
38extern RpDict DICT_TEMPLATE_U ObjDictUnits;
39
40
41int storeObject_Lib(RpLibrary* objectName, int key=0);
42int storeObject_UnitsStr(std::string objectName);
43
44RpLibrary* getObject_Lib(int objKey);
45const RpUnits* getObject_UnitsStr(int objKey);
46
47void cleanLibDict();
48void cleanUnitsDict();
49
50#ifdef __cplusplus
51}
52#endif
53
54#endif // _RpBINDINGS_DICT_H
Note: See TracBrowser for help on using the repository browser.