#ifndef __IMFMessage_h__
#define __IMFMessage_h__

#include "ZString.h"
#include "IMFHeader.h"
#include "IMFBody.h"

namespace coreutils {

   class IMFMessage : public ZString {

    public:
      IMFMessage();
      IMFMessage(ZString &in);

      void output(std::stringstream &out);

      void addHeader(ZString key, ZString value);
      void addHeader(const char *key, ZString value);

      ZString getHeader(ZString key, bool valueOnly = true);
      ZString getHeaderKeyPairValue(const char *headerKey, const char *key);
      ZString getHeaderKeyPairValue(ZString headerKey, ZString key);

      IMFBody * getBody();

    protected:
      std::vector<IMFHeader> headers;
 
      IMFBody *body;

   };

}

#endif
