/*
 * 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$
 *
 * $Id: hostack_mgmt.h,v 6.6 2003/02/04 00:24:17 jsquyres Exp $
 *
 *	Function:	- makes long and short packets to place on host queues
 */

#ifndef _LAM_HOSTACK_MGMT_H_
#define _LAM_HOSTACK_MGMT_H_

#include <lam_config.h>

#if LAM_WANT_IMPI

#include <impi-defs.h>
#include <list>

/*
 * Use a class for this so that we can get a destructor for free; it
 * is guaranteed to clean itself up (and all associated data) when it
 * gets destroyed.  
 */
class hostack_mgmt {
public:
  inline hostack_mgmt(int _world_src_rank, int _src_rank, 
		      int _dest_rank, IMPI_Packet* _pk)
    : world_src_rank(_world_src_rank), src_rank(_src_rank),
      dest_rank(_dest_rank), pk(*_pk)
  {}

  inline ~hostack_mgmt()
  {
#if LAM_IMPID_DEBUG
    world_src_rank = 0;
    src_rank = 0;
    dest_rank = 0;
    memset(&pk, 0, sizeof(pk));
#endif
  }

  /*
   * Accessor functions
   */

  inline int get_world_src_rank() const { return world_src_rank; }
  inline int get_src_rank() const { return src_rank; }
  inline int get_dest_rank() const { return dest_rank; }
  inline IMPI_Packet* get_packet() { return &pk; }

protected:
  int world_src_rank;
  int src_rank;
  int dest_rank;
  IMPI_Packet pk;

private:
};


#endif /* LAM_WANT_IMPI */
#endif /* _LAM_HOSTACK_MGMT_H_ */


syntax highlighted by Code2HTML, v. 0.9.1