--- smsdaemon/SmsPdu.h 2008/06/13 06:38:43 69 +++ smsdaemon/SmsPdu.h 2008/12/18 06:53:29 196 @@ -1,4 +1,5 @@ - +#ifndef __SMSPDU_H__ +#define __SMSPDU_H__ #include #include @@ -11,8 +12,34 @@ 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); @@ -20,10 +47,10 @@ 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 ); - SMS ParseSmsPdu(std::string pdu); } + +#endif // __SMSPDU_H__ +