--- smsdaemon/SmsPdu.h 2008/06/12 18:54:24 68 +++ smsdaemon/SmsPdu.h 2008/12/18 06:53:29 196 @@ -1,25 +1,56 @@ - +#ifndef __SMSPDU_H__ +#define __SMSPDU_H__ #include #include +#include "Sms.h" + struct PduInfo { std::string pdu; int len; }; + +struct SmsPart +{ + std::string message; + std::string sender; + short group,count,id; + + bool operator<(const SmsPart& p2) const + { + return (id < p2.id); + } + bool operator==(const SmsPart& p2) const + { + return (message==p2.message && sender==p2.sender && group==p2.group && count==p2.count && id==p2.id); + } + +}; + namespace SmsPdu { +//public section: + std::vector CreateSmsPdu(std::string to, std::string message, bool allowMultipart); + + SMS ParseSmsPdu(std::string pdu); + +//private section: + + SmsPart ParseSmsPduWorker(std::string pdu); std::string EncodePhonenr(std::string input); std::string DecodePhonenr(std::string input); std::string HexformatVector(std::vector vec); + std::vector HexDecodeString(std::string str); - std::vector Encode7to8bit(std::string str); - std::string Decode8to7bit( std::vector input ); - - std::vector CreateSmsPdu(std::string to, std::string message, bool allowMultipart); + std::vector Encode7to8bit(std::string str, int shift_start); + std::string Decode8to7bit( std::vector input, int shift_start ); } + +#endif // __SMSPDU_H__ +