// -*- c++ -*-
//
// $Id: pfile.h,v 1.1 2003/02/10 02:54:40 vsahay Exp $
//
// Copyright (c) 2001-2003 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 File {
friend class PComm; //so I can access pmpi_file data member in comm.cc
friend class PRequest; //and also from request.cc
public:
inline File() { }
// copy
File(const File& data) : mpi_file(data.mpi_file) { }
File(const MPI_File &i) : mpi_file(i) { }
inline virtual ~File() { }
File& operator=(const File& data) {
mpi_file = data.mpi_file; return *this; }
// comparison, don't need for file
// inter-language operability
inline File& operator= (const MPI_File &i) {
mpi_file = i; return *this; }
inline operator MPI_File () const { return mpi_file; }
// operator MPI_File* () const { return (MPI_File*)&mpi_file; }
inline virtual void Close();
static void Delete(const char* filename, const Info& info);
inline virtual int Get_amode() const;
inline virtual bool Get_atomicity() const;
inline virtual Offset Get_byte_offset(const Offset disp) const;
inline virtual Group Get_group() const;
inline virtual Info Get_info() const;
inline virtual Offset Get_position() const;
inline virtual Offset Get_position_shared() const;
inline virtual Offset Get_size() const;
inline virtual Aint Get_type_extent(const Datatype& datatype) const;
inline virtual void Get_view(Offset& disp, Datatype& etype,
Datatype& filetype, char* datarep) const;
inline virtual Request Iread(void* buf, int count,
const Datatype& datatype);
inline virtual Request Iread_at(Offset offset, void* buf, int count,
const Datatype& datatype);
inline virtual Request Iread_shared(void* buf, int count,
const Datatype& datatype);
inline virtual Request Iwrite(const void* buf, int count,
const Datatype& datatype);
inline virtual Request Iwrite_at(Offset offset, const void* buf,
int count, const Datatype& datatype);
inline virtual Request Iwrite_shared(const void* buf, int count,
const Datatype& datatype);
static File Open(const Intracomm& comm,
const char* filename, int amode,
const Info& info);
inline virtual void Preallocate(Offset size);
inline virtual void Read(void* buf, int count, const Datatype& datatype);
inline virtual void Read(void* buf, int count, const Datatype& datatype,
Status& status);
inline virtual void Read_all(void* buf, int count, const Datatype& datatype);
inline virtual void Read_all(void* buf, int count, const Datatype& datatype,
Status& status);
inline virtual void Read_all_begin(void* buf, int count,
const Datatype& datatype);
inline virtual void Read_all_end(void* buf);
inline virtual void Read_all_end(void* buf, Status& status);
inline virtual void Read_at(Offset offset,
void* buf, int count, const Datatype& datatype);
inline virtual void Read_at(Offset offset, void* buf, int count,
const Datatype& datatype, Status& status);
inline virtual void Read_at_all(Offset offset, void* buf, int count,
const Datatype& datatype);
inline virtual void Read_at_all(Offset offset, void* buf, int count,
const Datatype& datatype, Status& status);
inline virtual void Read_at_all_begin(Offset offset, void* buf, int count,
const Datatype& datatype);
inline virtual void Read_at_all_end(void* buf);
inline virtual void Read_at_all_end(void* buf, Status& status);
inline virtual void Read_ordered(void* buf, int count,
const Datatype& datatype);
inline virtual void Read_ordered(void* buf, int count,
const Datatype& datatype,
Status& status);
inline virtual void Read_ordered_begin(void* buf, int count,
const Datatype& datatype);
inline virtual void Read_ordered_end(void* buf);
inline virtual void Read_ordered_end(void* buf, Status& status);
inline virtual void Read_shared(void* buf, int count,
const Datatype& datatype);
inline virtual void Read_shared(void* buf, int count,
const Datatype& datatype, Status& status);
inline virtual void Seek(Offset offset, int whence);
inline virtual void Seek_shared(Offset offset, int whence);
inline virtual void Set_atomicity(bool flag);
inline virtual void Set_info(const Info& info);
inline virtual void Set_size(Offset size);
inline virtual void Set_view(Offset disp, const Datatype& etype,
const Datatype& filetype, const char* datarep,
const Info& info);
inline virtual void Sync();
inline virtual void Write(const void* buf, int count,
const Datatype& datatype);
inline virtual void Write(const void* buf, int count,
const Datatype& datatype, Status& status);
inline virtual void Write_all(const void* buf, int count,
const Datatype& datatype);
inline virtual void Write_all(const void* buf, int count,
const Datatype& datatype, Status& status);
inline virtual void Write_all_begin(const void* buf, int count,
const Datatype& datatype);
inline virtual void Write_all_end(const void* buf);
inline virtual void Write_all_end(const void* buf, Status& status);
inline virtual void Write_at(Offset offset, const void* buf, int count,
const Datatype& datatype);
inline virtual void Write_at(Offset offset, const void* buf, int count,
const Datatype& datatype, Status& status);
inline virtual void Write_at_all(Offset offset, const void* buf, int count,
const Datatype& datatype);
inline virtual void Write_at_all(Offset offset, const void* buf, int count,
const Datatype& datatype,
Status& status);
inline virtual void Write_at_all_begin(Offset offset, const void* buf,
int count, const Datatype& datatype);
inline virtual void Write_at_all_end(const void* buf);
inline virtual void Write_at_all_end(const void* buf, Status& status);
inline virtual void Write_ordered(const void* buf, int count,
const Datatype& datatype);
inline virtual void Write_ordered(const void* buf, int count,
const Datatype& datatype, Status& status);
inline virtual void Write_ordered_begin(const void* buf, int count,
const Datatype& datatype);
inline virtual void Write_ordered_end(const void* buf);
inline virtual void Write_ordered_end(const void* buf, Status& status);
inline virtual void Write_shared(const void* buf, int count,
const Datatype& datatype);
inline virtual void Write_shared(const void* buf, int count,
const Datatype& datatype, Status& status);
inline virtual Errhandler Get_errhandler() const;
inline virtual void Set_errhandler(const Errhandler& errhandler);
protected:
MPI_File mpi_file;
};
syntax highlighted by Code2HTML, v. 0.9.1