ESScript  Revision_4488
weipa.h
Go to the documentation of this file.
1 
2 /*****************************************************************************
3 *
4 * Copyright (c) 2003-2013 by University of Queensland
5 * http://www.uq.edu.au
6 *
7 * Primary Business: Queensland, Australia
8 * Licensed under the Open Software License version 3.0
9 * http://www.opensource.org/licenses/osl-3.0.php
10 *
11 * Development until 2012 by Earth Systems Science Computational Center (ESSCC)
12 * Development since 2012 by School of Earth Sciences
13 *
14 *****************************************************************************/
15 
16 #ifndef __WEIPA_H__
17 #define __WEIPA_H__
18 
19 #include <string>
20 #include <vector>
21 #include <map>
22 #include <boost/shared_ptr.hpp>
23 
24 #ifdef ESYS_MPI
25 #define HAVE_MPI 1
26 #endif
27 
28 #if HAVE_MPI
29 #include <mpi.h>
30 #endif
31 
32 #define WEIPA_DLL_API
33 
34 #ifdef _WIN32
35 # ifndef WEIPA_STATIC_LIB
36 # undef WEIPA_DLL_API
37 # ifdef WEIPA_EXPORTS
38 # define WEIPA_DLL_API __declspec(dllexport)
39 # else
40 # define WEIPA_DLL_API __declspec(dllimport)
41 # endif
42 # endif
43 #endif
44 
45 namespace weipa {
46 
47 class DataVar;
48 class DomainChunk;
49 class ElementData;
50 class EscriptDataset;
51 class NodeData;
52 
53 typedef std::vector<float> FloatVec;
54 typedef std::vector<int> IntVec;
55 typedef std::vector<std::string> StringVec;
56 typedef std::vector<float*> CoordArray;
57 typedef std::map<int, size_t> IndexMap;
58 
59 typedef boost::shared_ptr<DataVar> DataVar_ptr;
60 typedef boost::shared_ptr<DomainChunk> DomainChunk_ptr;
61 typedef boost::shared_ptr<ElementData> ElementData_ptr;
62 typedef boost::shared_ptr<EscriptDataset> EscriptDataset_ptr;
63 typedef boost::shared_ptr<NodeData> NodeData_ptr;
64 
65 typedef boost::shared_ptr<const DomainChunk> const_DomainChunk_ptr;
66 typedef boost::shared_ptr<const EscriptDataset> const_EscriptDataset_ptr;
67 
68 } // namespace weipa
69 
70 #endif // __WEIPA_H__
71