//=========================================================================
// Summary  :
// Filename : MMMissionInfo.cc
// Author   : paley
// Project  :
// Revision : 1
// Created  : 2001/06/11
// Modified : 2001/06/11
//=========================================================================
// Description :  Uncompressed device info message
//=========================================================================

#include <stdio.h>
#include "MMMissionInfo.h"

MMMissionInfo::MMMissionInfo(const ModemMessage *pMM)
{
	Assert(pMM);
	Assert(pMM->getType()==tGetMessageType());
	const char* pcEnd = pcRead(pMM->getBuffer());
	Assert(pcEnd==pMM->getBuffer()+pMM->getBufferSize());
}

MMMissionInfo::MMMissionInfo(const char *missionName, const char *abortName, short startMission)
{
    _missionName = missionName;
    _abortName = abortName;
    _startMission = startMission;
}

const char* MMMissionInfo::pcRead(const char* sourceBuffer)
{
    const char* tmp = 0;
    const char* pcEnd = ::pcReadString(sourceBuffer, &tmp);
    _missionName = tmp;
    pcEnd = ::pcReadString(pcEnd, &tmp);
    _abortName = tmp;
    pcEnd = ::pcRead(pcEnd, &_startMission);
    return pcEnd;
}

char* MMMissionInfo::pcWrite(char* destBuffer) const
{
    char* pcEnd = ::pcWriteString(destBuffer,_missionName.c_str());
    pcEnd = ::pcWriteString(pcEnd,_abortName.c_str());
    pcEnd = ::pcWrite(pcEnd,_startMission);
    return pcEnd;
}

void MMMissionInfo::toString(char* str)
{
    sprintf(str,"MMMissionInfo: Mission:%s\n"
	    "\tAbort:           %s\n"
	    "\tStartMission  %d\n",
	    _missionName.c_str(), _abortName.c_str(), _startMission );
}
