www.pudn.com > fanccMSNr.src.rar > InvitationMessage.cpp
#include#include using namespace boost; #include "InvitationMessage.hpp" #include "Charset.hpp" namespace poral { InvitationMessage::InvitationMessage(const MIMEMessage &message) { typedef tokenizer > Tokenizer; Tokenizer rows(message.body, char_separator ("\n\r")); for(Tokenizer::iterator row=rows.begin(); row!=rows.end(); row++) { // parse the row and store to Properties Tokenizer columns(*row, char_separator (":")); Tokenizer::iterator column=columns.begin(); if(column==columns.end()) { break; } Property property; property.first=*column; column++; if(column==columns.end()) { break; } Charset::trim(property.second, *column); properties.insert(property); } } void InvitationMessage::toMIMEMessage(MIMEMessage &message) const { message.setName("MSG"); message.version="1.0"; message.contentType="text/x-msmsgsinvite; charset=UTF-8"; message.body.erase(message.body.begin(), message.body.end()); for(Properties::const_iterator i=properties.begin(); i!=properties.end(); i++) { message.body.append((*i).first); message.body.append(": "); message.body.append((*i).second); message.body.append("\r\n"); } } }