/*
   b_fname.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 04:52 PM EDT

TITLE
   b_fname.h
*/

//include control
#ifndef B_FNAME_H
#define B_FNAME_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 <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <errno.h>
#include "bTypes.h"
#include "b_ptr_char.h"
#define CLASSTYPE char*
#define CLASSNAME b_fname
#define CLASS_STRING "b_fname"
#define CLASSPARENT b_ptr_char
#define NUMBER_OF_DIALS 4


class CLASSNAME:public CLASSPARENT
{
private:
  //CLASS DIAL SETTING STRING VARIABLES
  b_param _b_fnameTYPENAME;
b_param _b_fnameR_USER;
int b_fname_r_user;
b_param _b_fnameW_USER;
int b_fname_w_user;
b_param _b_fnameX_USER;
int b_fname_x_user;
b_param _b_fnameRWX_USER;
int b_fname_rwx_user;
b_param _b_fnameR_GRP;
int b_fname_r_grp;
b_param _b_fnameNONE;
int b_fname_none;
b_param _b_fnameNOT_EXIST_FILE;
int b_fname_not_exist_file;
b_param _b_fnameNOT_EXIST_DIR;
int b_fname_not_exist_dir;
b_param _b_fnameOPEN_WRITE;
int b_fname_open_write;
b_param _b_fnameOPEN_READ;
int b_fname_open_read;
b_param _b_fnameCLOSED;
int b_fname_closed;
b_param _b_fnameLINK;
int b_fname_link;
b_param _b_fnameEMPTY;
int b_fname_empty;
b_param _b_fnameNON_EMPTY;
int b_fname_non_empty;
b_param _b_fnameLOCAL;
int b_fname_local;
b_param _b_fnameTMP;
int b_fname_tmp;
b_param _b_fnameEMBEDDED_SPACE;
int b_fname_embedded_space;
b_param _b_fnameLONG;
int b_fname_long;
b_param _b_fnameSPECIAL_CHAR;
int b_fname_special_char;
b_param _b_fnameDIR;
int b_fname_dir;
  //TYPE VARIABLE TO SAVE VALUE FOR DESTRUCTION
  CLASSTYPE _theVariable;

 public:
  //CLASS DIAL SETTING STRING ACCESS METHODS
b_param *b_fnameR_USER();
b_param *b_fnameW_USER();
b_param *b_fnameX_USER();
b_param *b_fnameRWX_USER();
b_param *b_fnameR_GRP();
b_param *b_fnameNONE();
b_param *b_fnameNOT_EXIST_FILE();
b_param *b_fnameNOT_EXIST_DIR();
b_param *b_fnameOPEN_WRITE();
b_param *b_fnameOPEN_READ();
b_param *b_fnameCLOSED();
b_param *b_fnameLINK();
b_param *b_fnameEMPTY();
b_param *b_fnameNON_EMPTY();
b_param *b_fnameLOCAL();
b_param *b_fnameTMP();
b_param *b_fnameEMBEDDED_SPACE();
b_param *b_fnameLONG();
b_param *b_fnameSPECIAL_CHAR();
b_param *b_fnameDIR();
  //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
