#define InputFileNum 32

//#define DriveNum 8


class Synthe
{
 private:
  int NextTraceSeed[InputFileNum];
  FILE * fp[InputFileNum];
  int alltickets;
  int inputfilenum;

  int inputleft;
  int flag[InputFileNum];

  int DevnumTB[InputFileNum];
  int offset[InputFileNum];

  int recnum;
 public:
  Synthe(char * confname);
  ~Synthe();

  // if no trace, return 0
  int readrecord(struct tracerecord &record);

  // where does next trace record come from
  int NextTrace();

  void ModTraceRec(struct tracerecord & record, int index);

  void printconfig(char * confname);
};
