ecolab.h
Go to the documentation of this file.
1 /*
2  @copyright Russell Standish 2000-2013
3  @author Russell Standish
4  This file is part of EcoLab
5 
6  Open source licensed under the MIT license. See LICENSE for details.
7 */
8 
12 #ifndef ECOLAB_H
13 #define ECOLAB_H
14 #include <stdlib.h>
15 
16 // mpi.h must appear before any standard library stuff
17 #ifdef MPI_SUPPORT
18 #include <mpi.h>
19 #endif
20 
21 /* list of definitions to enable the "hacked" (by insert-friend)
22  versions of standard headers to compile */
23 
24 namespace classdesc
25 {
26  class pack_t;
27 //class unpack_t;
28  typedef pack_t unpack_t;
29  class TCL_obj_t;
30 }
31 
32 #define THROW_PTR_EXCEPTION //Allows more generously for types containing pointers
33 
34 #ifdef MEMDEBUG
35 #define Realloc Realloc
36 namespace ecolab {char *Realloc(char *p, size_t sz);}
37 using ecolab::Realloc;
38 #endif
39 #include "pack.h"
40 typedef classdesc::string eco_string;
41 
42 #include "classdesc_access.h"
43 
44 #include <stdlib.h>
45 #include <float.h>
46 #include <math.h>
47 #include <assert.h>
48 #include <string.h>
49 #include <limits.h>
50 #include <unistd.h>
51 #include <isa_base.h>
52 
53 #include "eco_strstream.h"
54 
55 #include "tcl++.h"
56 
57 #ifdef BLT
58 extern "C" {
59 #include <blt.h>
60 int Blt_Init(Tcl_Interp*);
61 }
62 #endif
63 
64 namespace ecolab
65 {
66  using classdesc::pack_t;
67  using classdesc::unpack_t;
68  using classdesc::xdr_pack;
69  using classdesc::isa_t;
70  using classdesc::is_array;
71 }
72 
73 #include "TCL_obj_base.h"
74 #include "TCL_obj_stl.h"
75 #include "random.h"
76 
77 #ifdef MPI_SUPPORT
78 #include <classdescMP.h>
79 namespace ecolab
80 {
81  using classdesc::MPIbuf;
83  using classdesc::bcast;
84  using classdesc::send;
85  using classdesc::isend;
86 }
87 #endif
88 
89 #endif /* ECOLAB_H */
descriptor access to a class&#39;s privates
MPIbuf manipulator to broadcast the MPIbuf&#39;s contents to all processes.
Definition: classdescMP.h:58
MPIbuf manipulator to send the MPIbuf&#39;s contents to a remote process.
Definition: classdescMP.h:37
Basic C++ TCL access.
MPIbuf manipulator to asyncronously send the MPIbuf&#39;s contents to a remote process.
Definition: classdescMP.h:47
buffer object providing MPI functionality
Definition: classdescMP.h:75
An EcoLab string stream class.
Definition: classdesc.h:623
used for managing groups of messages
Definition: classdescMP.h:174
TCL_obj support for STL containers.
std::set< const std::type_info * > isa_t
data structure for storing inheritance relationships
Definition: isa_base.h:23
TCL access descriptor.
MPI parallel processing library.
inheritance relationship descriptor
Contains definitions related to classdesc functionality.
Definition: arrays.h:2514
Definition: pack_base.h:124
_OPENMP
Definition: accessor.h:16