// -*- c++ -*-
//
// $Id: pstatus.h,v 1.3 2002/10/09 20:57:38 brbarret Exp $
//
// Copyright (c) 2001-2002 The Trustees of Indiana University.
// All rights reserved.
// Copyright (c) 1998-2001 University of Notre Dame.
// All rights reserved.
// Copyright (c) 1994-1998 The Ohio State University.
// All rights reserved.
//
// This file is part of the LAM/MPI software package. For license
// information, see the LICENSE file in the top level directory of the
// LAM/MPI source distribution.
//
// $HEADER$
//
class Status {
friend class PMPI::Comm; //so I can access pmpi_status data member in comm.cc
friend class PMPI::Request; //and also from request.cc
public:
// construction
inline Status() { }
// copy
Status(const Status& data) : mpi_status(data.mpi_status) { }
inline Status(const MPI_Status &i) : mpi_status(i) { }
inline virtual ~Status() {}
Status& operator=(const Status& data) {
mpi_status = data.mpi_status; return *this;
}
// comparison, don't need for status
// inter-language operability
inline Status& operator= (const MPI_Status &i) {
mpi_status = i; return *this; }
inline operator MPI_Status () const { return mpi_status; }
inline operator MPI_Status* () const { return (MPI_Status*)&mpi_status; }
//
// Point-to-Point Communication
//
inline virtual int Get_count(const Datatype& datatype) const;
inline virtual bool Is_cancelled() const;
virtual int Get_elements(const Datatype& datatype) const;
//
// Status Access
//
inline virtual int Get_source() const;
inline virtual void Set_source(int source);
inline virtual int Get_tag() const;
inline virtual void Set_tag(int tag);
inline virtual int Get_error() const;
inline virtual void Set_error(int error);
protected:
MPI_Status mpi_status;
};
syntax highlighted by Code2HTML, v. 0.9.1