Changeset 11 in chevmsgr


Ignore:
Timestamp:
08/30/15 14:18:23 (9 years ago)
Author:
cheese
Message:

add util function to msg

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/msg.cpp

    r8 r11  
    77namespace Protocol
    88{
    9     // parser
     9    Message::Message()
     10    {
     11        mObject[ProtocolType::TYPE] = ProtocolType::NONE;
     12    }
     13
    1014    void Message::parse(const std::string & message)
    1115    {
     
    1519    std::string Message::type() const
    1620    {
    17         return get<std::string>("type");
     21        return get<std::string>(ProtocolType::TYPE);
    1822    }
    1923
     
    2933            SFriend fr;
    3034
    31             fr.id   = (*iter)[ProtocolType::ID  ];
     35            fr.id   = (*iter)[ProtocolType::ID];
    3236            fr.name = (*iter)[ProtocolType::NAME];
    3337
     
    146150            json::Object fr;
    147151
    148             fr[ProtocolType::ID  ] = iter->id;
     152            fr[ProtocolType::ID] = iter->id;
    149153            fr[ProtocolType::NAME] = iter->name;
    150154
  • trunk/msg.hpp

    r8 r11  
    2323#define DECLARE_KEY(_t) static const std::string _t = #_t
    2424
     25    DECLARE_KEY(NONE);
    2526    DECLARE_KEY(ID);
    2627    DECLARE_KEY(TYPE);
     
    4142    DECLARE_KEY(GET_FRIEND_LIST);
    4243    DECLARE_KEY(FRIEND_LIST);
     44    DECLARE_KEY(ID_LIST);
    4345    DECLARE_KEY(RESULT);
    4446}
     
    5254
    5355    public:
    54         void parse(const std::string & message);
     56        Message();
     57
     58        inline void parse(const std::string & message);
    5559
    5660        template<typename T>
     
    6064        }
    6165
     66        template<typename T>
     67        inline std::vector<T> getList(const std::string & key) const
     68        {
     69            std::vector<T> ret;
     70            json::Array ar = mObject[key];
     71
     72            for (size_t iter = 0; iter < ar.size(); iter++)
     73                ret.push_back(ar[iter]);
     74
     75            return ret;
     76        }
     77
    6278        inline std::vector<SFriend> getFriendList() const;
    6379
    64         std::string type() const;
     80        inline std::string type() const;
    6581    };
    6682
     
    7793
    7894    public:
    79         void setUserID(const std::string & id);
     95        inline void setUserID(const std::string & id);
    8096
    81         const std::string & getUserID();
     97        inline const std::string & getUserID();
    8298
    83         void makeTemplate(json::Object & obj, const std::string & type) const;
     99        inline void makeTemplate(json::Object & obj, const std::string & type) const;
    84100
    85         std::string sms(const std::string & phone) const;
     101        inline std::string sms(const std::string & phone) const;
    86102
    87         std::string join(const std::string & id, const std::string & pw, const std::string & sms);
     103        inline std::string join(const std::string & id, const std::string & pw, const std::string & sms);
    88104
    89         std::string login(const std::string & pw) const;
     105        inline std::string login(const std::string & pw) const;
    90106
    91         std::string addFriend(const std::string & id) const;
     107        inline std::string addFriend(const std::string & id) const;
    92108
    93         std::string openSession(const std::string & to) const;
     109        inline std::string openSession(const std::string & to) const;
    94110
    95         std::string chat(const std::string & sessid, const std::string & message, const int sensitive) const;
     111        inline std::string chat(const std::string & sessid, const std::string & message, const int sensitive) const;
    96112
    97         std::string getFriendList() const;
     113        inline std::string getFriendList() const;
    98114    };
    99115
     
    101117    {
    102118    public:
    103         void makeTemplate(json::Object & obj, const std::string & type) const;
     119        inline void makeTemplate(json::Object & obj, const std::string & type) const;
    104120
    105         std::string result(const std::string & requestType, const bool status) const;
     121        inline std::string result(const std::string & requestType, const bool status) const;
    106122
    107         std::string friendList(const std::vector<SFriend> & friendList) const;
     123        inline std::string friendList(const std::vector<SFriend> & friendList) const;
    108124
    109         std::string openSession(const std::vector<std::string> & idList) const;
     125        inline std::string openSession(const std::vector<std::string> & idList) const;
    110126    };
    111127};
     
    134150              << message << std::endl;
    135151}
     152
     153static std::string joinStrings(const std::vector<std::string> & strings)
     154{
     155    std::string concat = strings[0];
     156
     157    for (size_t iter = 1; iter < strings.size(); iter++)
     158        concat += DELIMITER + strings[iter];
     159
     160    return concat;
     161}
Note: See TracChangeset for help on using the changeset viewer.