ESYS13  Revision_
weipa.h
Go to the documentation of this file.
00001 
00002 /*******************************************************
00003 *
00004 * Copyright (c) 2003-2012 by University of Queensland
00005 * Earth Systems Science Computational Center (ESSCC)
00006 * http://www.uq.edu.au/esscc
00007 *
00008 * Primary Business: Queensland, Australia
00009 * Licensed under the Open Software License version 3.0
00010 * http://www.opensource.org/licenses/osl-3.0.php
00011 *
00012 *******************************************************/
00013 
00014 #ifndef __WEIPA_H__
00015 #define __WEIPA_H__
00016 
00017 #include <string>
00018 #include <vector>
00019 #include <map>
00020 #include <boost/shared_ptr.hpp>
00021 
00022 #ifdef ESYS_MPI
00023 #define HAVE_MPI 1
00024 #endif
00025 
00026 #if HAVE_MPI
00027 #include <mpi.h>
00028 #endif
00029 
00030 #define WEIPA_DLL_API
00031 
00032 #ifdef _WIN32
00033 #   ifndef WEIPA_STATIC_LIB
00034 #       undef WEIPA_DLL_API
00035 #       ifdef WEIPA_EXPORTS
00036 #           define WEIPA_DLL_API __declspec(dllexport)
00037 #       else
00038 #           define WEIPA_DLL_API __declspec(dllimport)
00039 #       endif
00040 #   endif
00041 #endif
00042 
00043 namespace weipa {
00044 
00045 class DataVar;
00046 class DomainChunk;
00047 class ElementData;
00048 class EscriptDataset;
00049 class NodeData;
00050 
00051 typedef std::vector<float>       FloatVec;
00052 typedef std::vector<int>         IntVec;
00053 typedef std::vector<std::string> StringVec;
00054 typedef std::vector<float*>      CoordArray;
00055 typedef std::map<int, size_t>    IndexMap;
00056 
00057 typedef boost::shared_ptr<DataVar>        DataVar_ptr;
00058 typedef boost::shared_ptr<DomainChunk>    DomainChunk_ptr;
00059 typedef boost::shared_ptr<ElementData>    ElementData_ptr;
00060 typedef boost::shared_ptr<EscriptDataset> EscriptDataset_ptr;
00061 typedef boost::shared_ptr<NodeData>       NodeData_ptr;
00062 
00063 typedef boost::shared_ptr<const DomainChunk>    const_DomainChunk_ptr;
00064 typedef boost::shared_ptr<const EscriptDataset> const_EscriptDataset_ptr;
00065 
00066 } // namespace weipa
00067 
00068 #endif // __WEIPA_H__
00069