about summary refs log tree commit diff stats
path: root/src/notification.h
diff options
context:
space:
mode:
authorKelly Rauchenberger <fefferburbia@gmail.com>2016-11-29 16:18:25 -0500
committerKelly Rauchenberger <fefferburbia@gmail.com>2016-11-29 16:18:25 -0500
commit7c44fd17bb6be54a2ea4b60761e91053ca988977 (patch)
tree42f08e0db610617fd0629b117610bfa1a365acaf /src/notification.h
parentd90a1e74c77ba67f25a812609fd49d479bc464dd (diff)
downloadlibtwittercpp-7c44fd17bb6be54a2ea4b60761e91053ca988977.tar.gz
libtwittercpp-7c44fd17bb6be54a2ea4b60761e91053ca988977.tar.bz2
libtwittercpp-7c44fd17bb6be54a2ea4b60761e91053ca988977.zip
Made tweets, users, and notifications into copyable objects
Notifications are now also mutable. Users and tweets no longer have helper methods for interacting with the client. Fixed a bug (possibly introduced by a change to the Twitter API) that caused non-reply tweets to be marked as unknown notifications.
Diffstat (limited to 'src/notification.h')
-rw-r--r--src/notification.h52
1 files changed, 48 insertions, 4 deletions
diff --git a/src/notification.h b/src/notification.h index b5ecd49..a6dd6f4 100644 --- a/src/notification.h +++ b/src/notification.h
@@ -88,25 +88,69 @@ namespace twitter {
88 88
89 type getType() const; 89 type getType() const;
90 90
91 notification() {}
91 notification(const client& tclient, std::string data); 92 notification(const client& tclient, std::string data);
93
94 notification(const notification& other);
92 notification(notification&& other); 95 notification(notification&& other);
93 notification& operator=(notification&& other); 96 notification& operator=(notification other);
94 ~notification(); 97 ~notification();
95 98
96 notification(const notification& other) = delete; 99 friend void swap(notification& first, notification& second);
97 notification& operator=(const notification& other) = delete;
98 100
99 const tweet& getTweet() const; 101 const tweet& getTweet() const;
102 tweet& getTweet()
103 {
104 return const_cast<tweet&>(static_cast<const notification&>(*this).getTweet());
105 }
106
100 const user& getUser() const; 107 const user& getUser() const;
108 user& getUser()
109 {
110 return const_cast<user&>(static_cast<const notification&>(*this).getUser());
111 }
112
101 const list& getList() const; 113 const list& getList() const;
114 list& getList()
115 {
116 return const_cast<list&>(static_cast<const notification&>(*this).getList());
117 }
118
102 tweet_id getTweetID() const; 119 tweet_id getTweetID() const;
120 void setTweetID(tweet_id _arg);
121
103 user_id getUserID() const; 122 user_id getUserID() const;
123 void setUserID(user_id _arg);
124
104 const std::vector<std::string>& getCountries() const; 125 const std::vector<std::string>& getCountries() const;
126 std::vector<std::string>& getCountries()
127 {
128 return const_cast<std::vector<std::string>&>(static_cast<const notification&>(*this).getCountries());
129 }
130
105 disconnect_code getDisconnectCode() const; 131 disconnect_code getDisconnectCode() const;
132 void setDisconnectCode(disconnect_code _arg);
133
106 const std::set<user_id>& getFriends() const; 134 const std::set<user_id>& getFriends() const;
135 std::set<user_id>& getFriends()
136 {
137 return const_cast<std::set<user_id>&>(static_cast<const notification&>(*this).getFriends());
138 }
139
107 const direct_message& getDirectMessage() const; 140 const direct_message& getDirectMessage() const;
141 direct_message& getDirectMessage()
142 {
143 return const_cast<direct_message&>(static_cast<const notification&>(*this).getDirectMessage());
144 }
145
108 int getLimit() const; 146 int getLimit() const;
147 void setLimit(int _arg);
148
109 const std::string& getWarning() const; 149 const std::string& getWarning() const;
150 std::string& getWarning()
151 {
152 return const_cast<std::string&>(static_cast<const notification&>(*this).getWarning());
153 }
110 154
111 private: 155 private:
112 union { 156 union {
@@ -140,7 +184,7 @@ namespace twitter {
140 std::set<user_id> _friends; 184 std::set<user_id> _friends;
141 direct_message _direct_message; 185 direct_message _direct_message;
142 }; 186 };
143 type _type; 187 type _type = type::invalid;
144 }; 188 };
145 189
146}; 190};