/*
   b_fd.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 Tuesday, May 22 at 05:25 PM EDT

TITLE
   b_fd.h
*/

//include control
#ifndef B_FD_H
#define B_FD_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 <fcntl.h>
#include <sys/stat.h> 
#include <unistd.h>
#include <errno.h>
#include "b_int.h"
#define CLASSTYPE int
#define CLASSNAME b_fd
#define CLASS_STRING "b_fd"
#define CLASSPARENT b_int
#define NUMBER_OF_DIALS 4


class CLASSNAME:public CLASSPARENT
{
private:
  //CLASS DIAL SETTING STRING VARIABLES
  b_param _b_fdTYPENAME;
b_param _b_fdREAD;
int b_fd_read;
b_param _b_fdWRITE;
int b_fd_write;
b_param _b_fdAPPEND;
int b_fd_append;
b_param _b_fdREAD_PLUS;
int b_fd_read_plus;
b_param _b_fdWRITE_PLUS;
int b_fd_write_plus;
b_param _b_fdAPPEND_PLUS;
int b_fd_append_plus;
b_param _b_fdR_USER;
int b_fd_r_user;
b_param _b_fdW_USER;
int b_fd_w_user;
b_param _b_fdX_USER;
int b_fd_x_user;
b_param _b_fdRWX_USER;
int b_fd_rwx_user;
b_param _b_fdR_GRP;
int b_fd_r_grp;
b_param _b_fdNONE;
int b_fd_none;
b_param _b_fdEXIST;
int b_fd_exist;
b_param _b_fdCLOSED;
int b_fd_closed;
b_param _b_fdDELETED;
int b_fd_deleted;
b_param _b_fdNO_EXIST;
int b_fd_no_exist;
b_param _b_fdEMPTY;
int b_fd_empty;
b_param _b_fdBEGINNING;
int b_fd_beginning;
b_param _b_fdEOF;
int b_fd_eof;
b_param _b_fdPAST_EOF;
int b_fd_past_eof;
  //TYPE VARIABLE TO SAVE VALUE FOR DESTRUCTION
  CLASSTYPE _theVariable;

 public:
  //CLASS DIAL SETTING STRING ACCESS METHODS
b_param *b_fdREAD();
b_param *b_fdWRITE();
b_param *b_fdAPPEND();
b_param *b_fdREAD_PLUS();
b_param *b_fdWRITE_PLUS();
b_param *b_fdAPPEND_PLUS();
b_param *b_fdR_USER();
b_param *b_fdW_USER();
b_param *b_fdX_USER();
b_param *b_fdRWX_USER();
b_param *b_fdR_GRP();
b_param *b_fdNONE();
b_param *b_fdEXIST();
b_param *b_fdCLOSED();
b_param *b_fdDELETED();
b_param *b_fdNO_EXIST();
b_param *b_fdEMPTY();
b_param *b_fdBEGINNING();
b_param *b_fdEOF();
b_param *b_fdPAST_EOF();
  //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
