#ifndef HMM_LOGGER_HH
# define HMM_LOGGER_HH

# include "DataLogWriter.h"
# include "ShortData.h"
# include "DoubleData.h"
# include <vector>

# define HMMLogBase "smartSampler_HMM"

/****************************************************************************
 *
 * Class for logging binary data.
 *
 ****************************************************************************/
class HMM;

class HMMLogger :public DataLogWriter {
public:
  HMMLogger(char *name,HMM *hmm);
  ~HMMLogger();
  
  void addstate(const char *name,double init);
  void callWrite(); // call DataLogWriter::write() if there's new data.

protected:
  void setFields();

private:
  std::vector<DoubleData *> curstate;
  HMM *m_hmm;
  ShortData lastobs;
  char *m_name;

}; // HMMLogger


#endif // HMM_LOGGER_HH
