// file: question.h
//

// make sure the definitions are made only once
//
#ifndef __ISIP_QUESTION
#define __ISIP_QUESTION

// isip include files
//
#ifndef __ISIP_INTEGRAL
#include <integral.h>
#endif

// Question contain the required information for a question used for building
// a Decision tree for state tying
//
class Question {
  
  //---------------------------------------------------------------------------
  //
  // protected data
  //
  //---------------------------------------------------------------------------
protected:
  
  // declear a string to store the 
  //
  char_1* attribute_d;           // question to be asked  
  logical_1 direction_d ;        // left or right tag, ISIP_TRUE for left
  int_4 num_d ;                  // specify context position

  //---------------------------------------------------------------------------
  //
  // public methods
  //
  //---------------------------------------------------------------------------
public:
  
  // required methods
  //
  char_1* name_cc();
  volatile void error_handler_cc(char_1* mname_a, char_1* msg_a);
  logical_1 debug_cc(FILE* fp_a, char_1* message_a);
  logical_1 set_debug_cc(int_4 debug_level_a);
  int_4 size_cc();

  // destructor/constructor
  //
  
  ~Question();
  Question();
  Question(Question& question);
  Question(char_1* attribute, logical_1 direction, int_4 num);

  // methods to set/get the name of a question
  // 
  logical_1 set_attribute_cc(char_1* attribute);
  char_1* get_attribute_cc();

  // methods to set/get the direction of a question
  //
  logical_1 set_direction_cc(logical_1 direction);
  logical_1 get_direction_cc();  
  
  // methods to set/get position of context to ask question
  //
  logical_1 set_num_cc(int_4 num);
  int_4 get_num_cc();
  
} ;

//end of file
//
#endif

  

