/*
   b_ptr_aiocb.h   Generated by the Ballista(tm) Project data object compiler
   Copyright (C) 1998-2001  Carnegie Mellon University

   This program is free software; you can redistribute it and/or
   modify it under the terms of the GNU General Public License
   as published by the Free Software Foundation; either version 2
   of the License, or (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

   File generated Wednesday, May 23 at 06:18 AM EDT

TITLE
   b_ptr_aiocb.h
*/

//include control
#ifndef B_PTR_AIOCB_H
#define B_PTR_AIOCB_H
#include <errno.h>
#include <iostream.h>
#include <stdio.h>
#include <stdlib.h>
#include <stream.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include "bTypes.h"

#include <aio.h>
#include <fcntl.h>
#include <unistd.h>
#include <errno.h>
#include <sys/signal.h>
#include "b_ptr_void.h"
#define structaiocbptr struct aiocb*
#define TESTDIR "testdir"
#define TESTFILE "testdir/testfile_aiocb"
#define CLASSTYPE structaiocbptr
#define CLASSNAME b_ptr_aiocb
#define CLASS_STRING "b_ptr_aiocb"
#define CLASSPARENT b_ptr_void
#define NUMBER_OF_DIALS 7


class CLASSNAME:public CLASSPARENT
{
private:
  //CLASS DIAL SETTING STRING VARIABLES
  b_param _b_ptr_aiocbTYPENAME;
b_param _b_ptr_aiocbFD_OPEN_READ;
int b_ptr_aiocb_fd_open_read;
b_param _b_ptr_aiocbFD_OPEN_WRITE;
int b_ptr_aiocb_fd_open_write;
b_param _b_ptr_aiocbFD_OPEN_APPEND_EMPTY;
int b_ptr_aiocb_fd_open_append_empty;
b_param _b_ptr_aiocbFD_OPEN_APPEND_BEGIN;
int b_ptr_aiocb_fd_open_append_begin;
b_param _b_ptr_aiocbFD_OPEN_APPEND_EOF;
int b_ptr_aiocb_fd_open_append_eof;
b_param _b_ptr_aiocbFD_CLOSED;
int b_ptr_aiocb_fd_closed;
b_param _b_ptr_aiocbFD_DELETED;
int b_ptr_aiocb_fd_deleted;
b_param _b_ptr_aiocbFD_ZERO;
int b_ptr_aiocb_fd_zero;
b_param _b_ptr_aiocbFD_NEGONE;
int b_ptr_aiocb_fd_negone;
b_param _b_ptr_aiocbFD_ONE;
int b_ptr_aiocb_fd_one;
b_param _b_ptr_aiocbFD_MAXINT;
int b_ptr_aiocb_fd_maxint;
b_param _b_ptr_aiocbFD_MININT;
int b_ptr_aiocb_fd_minint;
b_param _b_ptr_aiocbFD_READ_ONLY;
int b_ptr_aiocb_fd_read_only;
b_param _b_ptr_aiocbOFFSET_ZERO;
int b_ptr_aiocb_offset_zero;
b_param _b_ptr_aiocbOFFSET_ONE;
int b_ptr_aiocb_offset_one;
b_param _b_ptr_aiocbOFFSET_NEGONE;
int b_ptr_aiocb_offset_negone;
b_param _b_ptr_aiocbOFFSET_MAXINT;
int b_ptr_aiocb_offset_maxint;
b_param _b_ptr_aiocbOFFSET_MININT;
int b_ptr_aiocb_offset_minint;
b_param _b_ptr_aiocbBUF_NULL;
int b_ptr_aiocb_buf_null;
b_param _b_ptr_aiocbBUF_FILLED_PAGE;
int b_ptr_aiocb_buf_filled_page;
b_param _b_ptr_aiocbBUF_ONE_CHAR;
int b_ptr_aiocb_buf_one_char;
b_param _b_ptr_aiocbBUF_CONST;
int b_ptr_aiocb_buf_const;
b_param _b_ptr_aiocbNBYTE_ZERO;
int b_ptr_aiocb_nbyte_zero;
b_param _b_ptr_aiocbNBYTE_ONE;
int b_ptr_aiocb_nbyte_one;
b_param _b_ptr_aiocbNBYTE_MAXULONG;
int b_ptr_aiocb_nbyte_maxulong;
b_param _b_ptr_aiocbPRI_ZERO;
int b_ptr_aiocb_pri_zero;
b_param _b_ptr_aiocbPRI_ONE;
int b_ptr_aiocb_pri_one;
b_param _b_ptr_aiocbPRI_NEGONE;
int b_ptr_aiocb_pri_negone;
b_param _b_ptr_aiocbPRI_MAXINT;
int b_ptr_aiocb_pri_maxint;
b_param _b_ptr_aiocbPRI_MININT;
int b_ptr_aiocb_pri_minint;
b_param _b_ptr_aiocbNONE_SIGSEGV;
int b_ptr_aiocb_none_sigsegv;
b_param _b_ptr_aiocbSIGNAL_SIGSEGV;
int b_ptr_aiocb_signal_sigsegv;
b_param _b_ptr_aiocbZERO_ZERO;
int b_ptr_aiocb_zero_zero;
b_param _b_ptr_aiocbMAXINT_MAXINT;
int b_ptr_aiocb_maxint_maxint;
b_param _b_ptr_aiocbOP_ZERO;
int b_ptr_aiocb_op_zero;
b_param _b_ptr_aiocbOP_NEGONE;
int b_ptr_aiocb_op_negone;
b_param _b_ptr_aiocbOP_MAXINT;
int b_ptr_aiocb_op_maxint;
b_param _b_ptr_aiocbOP_READ;
int b_ptr_aiocb_op_read;
b_param _b_ptr_aiocbOP_WRITE;
int b_ptr_aiocb_op_write;
  //TYPE VARIABLE TO SAVE VALUE FOR DESTRUCTION
  CLASSTYPE _theVariable;

 public:
  //CLASS DIAL SETTING STRING ACCESS METHODS
b_param *b_ptr_aiocbFD_OPEN_READ();
b_param *b_ptr_aiocbFD_OPEN_WRITE();
b_param *b_ptr_aiocbFD_OPEN_APPEND_EMPTY();
b_param *b_ptr_aiocbFD_OPEN_APPEND_BEGIN();
b_param *b_ptr_aiocbFD_OPEN_APPEND_EOF();
b_param *b_ptr_aiocbFD_CLOSED();
b_param *b_ptr_aiocbFD_DELETED();
b_param *b_ptr_aiocbFD_ZERO();
b_param *b_ptr_aiocbFD_NEGONE();
b_param *b_ptr_aiocbFD_ONE();
b_param *b_ptr_aiocbFD_MAXINT();
b_param *b_ptr_aiocbFD_MININT();
b_param *b_ptr_aiocbFD_READ_ONLY();
b_param *b_ptr_aiocbOFFSET_ZERO();
b_param *b_ptr_aiocbOFFSET_ONE();
b_param *b_ptr_aiocbOFFSET_NEGONE();
b_param *b_ptr_aiocbOFFSET_MAXINT();
b_param *b_ptr_aiocbOFFSET_MININT();
b_param *b_ptr_aiocbBUF_NULL();
b_param *b_ptr_aiocbBUF_FILLED_PAGE();
b_param *b_ptr_aiocbBUF_ONE_CHAR();
b_param *b_ptr_aiocbBUF_CONST();
b_param *b_ptr_aiocbNBYTE_ZERO();
b_param *b_ptr_aiocbNBYTE_ONE();
b_param *b_ptr_aiocbNBYTE_MAXULONG();
b_param *b_ptr_aiocbPRI_ZERO();
b_param *b_ptr_aiocbPRI_ONE();
b_param *b_ptr_aiocbPRI_NEGONE();
b_param *b_ptr_aiocbPRI_MAXINT();
b_param *b_ptr_aiocbPRI_MININT();
b_param *b_ptr_aiocbNONE_SIGSEGV();
b_param *b_ptr_aiocbSIGNAL_SIGSEGV();
b_param *b_ptr_aiocbZERO_ZERO();
b_param *b_ptr_aiocbMAXINT_MAXINT();
b_param *b_ptr_aiocbOP_ZERO();
b_param *b_ptr_aiocbOP_NEGONE();
b_param *b_ptr_aiocbOP_MAXINT();
b_param *b_ptr_aiocbOP_READ();
b_param *b_ptr_aiocbOP_WRITE();
  //CLASS CONSTRUCTOR
  CLASSNAME();

public:
  //Mandatory Methods
  b_param *typeName();           //returns the type of parameter
  virtual void *access(b_param data[]);
  virtual int commit(b_param tname);
  virtual int cleanup(b_param tname);
  
  virtual int numDials(b_param tname);
  virtual int numItems(b_param tname,int dialNumber);
  virtual b_param *paramName(b_param tname,int dialNumber, int position);

  virtual int distanceFromBase();
  virtual void typeList(b_param list[],int num);
  
};



#endif      //CLASSNAME_H
