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

TITLE
   b_mode_t.h
*/

//include control
#ifndef B_MODE_T_H
#define B_MODE_T_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 <sys/types.h>
 #include "b_int.h"
#define CLASSTYPE mode_t
#define CLASSNAME b_mode_t
#define CLASS_STRING "b_mode_t"
#define CLASSPARENT b_int
#define NUMBER_OF_DIALS 5


class CLASSNAME:public CLASSPARENT
{
private:
  //CLASS DIAL SETTING STRING VARIABLES
  b_param _b_mode_tTYPENAME;
b_param _b_mode_tU_READ;
int b_mode_t_u_read;
b_param _b_mode_tU_WRITE;
int b_mode_t_u_write;
b_param _b_mode_tU_EXEC;
int b_mode_t_u_exec;
b_param _b_mode_tU_RWX;
int b_mode_t_u_rwx;
b_param _b_mode_tU_NONE;
int b_mode_t_u_none;
b_param _b_mode_tG_READ;
int b_mode_t_g_read;
b_param _b_mode_tG_WRITE;
int b_mode_t_g_write;
b_param _b_mode_tG_EXEC;
int b_mode_t_g_exec;
b_param _b_mode_tG_NONE;
int b_mode_t_g_none;
b_param _b_mode_tO_READ;
int b_mode_t_o_read;
b_param _b_mode_tO_WRITE;
int b_mode_t_o_write;
b_param _b_mode_tO_EXEC;
int b_mode_t_o_exec;
b_param _b_mode_tO_NONE;
int b_mode_t_o_none;
b_param _b_mode_tUID_SET;
int b_mode_t_uid_set;
b_param _b_mode_tUID_CLEAR;
int b_mode_t_uid_clear;
b_param _b_mode_tGID_SET;
int b_mode_t_gid_set;
b_param _b_mode_tGID_CLEAR;
int b_mode_t_gid_clear;
  //TYPE VARIABLE TO SAVE VALUE FOR DESTRUCTION
  CLASSTYPE _theVariable;

 public:
  //CLASS DIAL SETTING STRING ACCESS METHODS
b_param *b_mode_tU_READ();
b_param *b_mode_tU_WRITE();
b_param *b_mode_tU_EXEC();
b_param *b_mode_tU_RWX();
b_param *b_mode_tU_NONE();
b_param *b_mode_tG_READ();
b_param *b_mode_tG_WRITE();
b_param *b_mode_tG_EXEC();
b_param *b_mode_tG_NONE();
b_param *b_mode_tO_READ();
b_param *b_mode_tO_WRITE();
b_param *b_mode_tO_EXEC();
b_param *b_mode_tO_NONE();
b_param *b_mode_tUID_SET();
b_param *b_mode_tUID_CLEAR();
b_param *b_mode_tGID_SET();
b_param *b_mode_tGID_CLEAR();
  //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
