1 // -*- c++ -*-
2 //
3 // Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
4 //                         University Research and Technology
5 //                         Corporation.  All rights reserved.
6 // Copyright (c) 2004-2005 The University of Tennessee and The University
7 //                         of Tennessee Research Foundation.  All rights
8 //                         reserved.
9 // Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
10 //                         University of Stuttgart.  All rights reserved.
11 // Copyright (c) 2004-2005 The Regents of the University of California.
12 //                         All rights reserved.
13 // Copyright (c) 2006      Cisco Systems, Inc.  All rights reserved.
14 // $COPYRIGHT$
15 //
16 // Additional copyrights may follow
17 //
18 // $HEADER$
19 //
20 
21 //
22 // Point-to-Point Communication
23 //
24 
25 inline int
Get_count(const MPI::Datatype & datatype)26 MPI::Status::Get_count(const MPI::Datatype& datatype) const
27 {
28   int count;
29   (void)MPI_Get_count(const_cast<MPI_Status*>(&mpi_status), datatype, &count);
30   return count;
31 }
32 
33 inline bool
Is_cancelled()34 MPI::Status::Is_cancelled() const
35 {
36   int t;
37   (void)MPI_Test_cancelled(const_cast<MPI_Status*>(&mpi_status), &t);
38   return OPAL_INT_TO_BOOL(t);
39 }
40 
41 inline int
Get_elements(const MPI::Datatype & datatype)42 MPI::Status::Get_elements(const MPI::Datatype& datatype) const
43 {
44   int count;
45   (void)MPI_Get_elements(const_cast<MPI_Status*>(&mpi_status), datatype, &count);
46   return count;
47 }
48 
49 //
50 // Status Access
51 //
52 inline int
Get_source()53 MPI::Status::Get_source() const
54 {
55   int source;
56   source = mpi_status.MPI_SOURCE;
57   return source;
58 }
59 
60 inline void
Set_source(int source)61 MPI::Status::Set_source(int source)
62 {
63   mpi_status.MPI_SOURCE = source;
64 }
65 
66 inline int
Get_tag()67 MPI::Status::Get_tag() const
68 {
69   int tag;
70   tag = mpi_status.MPI_TAG;
71   return tag;
72 }
73 
74 inline void
Set_tag(int tag)75 MPI::Status::Set_tag(int tag)
76 {
77   mpi_status.MPI_TAG = tag;
78 }
79 
80 inline int
Get_error()81 MPI::Status::Get_error() const
82 {
83   int error;
84   error = mpi_status.MPI_ERROR;
85   return error;
86 }
87 
88 inline void
Set_error(int error)89 MPI::Status::Set_error(int error)
90 {
91   mpi_status.MPI_ERROR = error;
92 }
93 
94 inline void
Set_elements(const MPI::Datatype & datatype,int count)95 MPI::Status::Set_elements(const MPI::Datatype& datatype, int count)
96 {
97     MPI_Status_set_elements(&mpi_status, datatype, count);
98 }
99 
100 inline void
Set_cancelled(bool flag)101 MPI::Status::Set_cancelled(bool flag)
102 {
103     MPI_Status_set_cancelled(&mpi_status, (int) flag);
104 }
105 
106