shill: Refactor message types into UserBoundNlMessage
Since all UserBoundNlMessage subclasses have a particular message type
and type string, pull that functionality into the abstract super class.
BUG=None
TEST=Unit tests
Change-Id: Ib44db2acabab33c48de2ef1143de6be3e1df0acf
Reviewed-on: https://gerrit.chromium.org/gerrit/37731
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Wade Guthrie <wdg@chromium.org>
Commit-Ready: Christopher Wiley <wiley@chromium.org>
diff --git a/callback80211_metrics.cc b/callback80211_metrics.cc
index 9b20966..9acc501 100644
--- a/callback80211_metrics.cc
+++ b/callback80211_metrics.cc
@@ -29,9 +29,10 @@
void Callback80211Metrics::Config80211MessageCallback(
const UserBoundNlMessage &message) {
- SLOG(WiFi, 3) << "Received " << message.GetMessageTypeString()
- << " (" << + message.GetMessageType() << ")";
- if (metrics_ && message.GetMessageType() == DeauthenticateMessage::kCommand) {
+ SLOG(WiFi, 3) << "Received " << message.message_type_string()
+ << " (" << + message.message_type() << ")";
+ if (metrics_ &&
+ message.message_type() == DeauthenticateMessage::kCommand) {
Metrics::WiFiDisconnectByWhom by_whom =
message.AttributeExists(NL80211_ATTR_DISCONNECTED_BY_AP) ?
Metrics::kDisconnectedByAp : Metrics::kDisconnectedNotByAp;
diff --git a/callback80211_object.cc b/callback80211_object.cc
index 3d45bc7..3369e06 100644
--- a/callback80211_object.cc
+++ b/callback80211_object.cc
@@ -41,8 +41,8 @@
SLOG(WiFi, 2) << output;
// Show the more complicated version of the message.
- SLOG(WiFi, 3) << "Received " << message.GetMessageTypeString()
- << " (" << + message.GetMessageType() << ")";
+ SLOG(WiFi, 3) << "Received " << message.message_type_string()
+ << " (" << + message.message_type() << ")";
scoped_ptr<UserBoundNlMessage::AttributeNameIterator> i;
for (i.reset(message.GetAttributeNameIterator()); !i->AtEnd(); i->Advance()) {
diff --git a/config80211_unittest.cc b/config80211_unittest.cc
index 5d4bfa4..6a09eb4 100644
--- a/config80211_unittest.cc
+++ b/config80211_unittest.cc
@@ -565,7 +565,7 @@
reinterpret_cast<const nlmsghdr *>(kNL80211_CMD_TRIGGER_SCAN)));
EXPECT_NE(message, reinterpret_cast<UserBoundNlMessage *>(NULL));
- EXPECT_EQ(message->GetMessageType(), NL80211_CMD_TRIGGER_SCAN);
+ EXPECT_EQ(message->message_type(), NL80211_CMD_TRIGGER_SCAN);
{
uint8_t value;
@@ -612,7 +612,7 @@
reinterpret_cast<const nlmsghdr *>(kNL80211_CMD_NEW_SCAN_RESULTS)));
EXPECT_NE(message, reinterpret_cast<UserBoundNlMessage *>(NULL));
- EXPECT_EQ(message->GetMessageType(), NL80211_CMD_NEW_SCAN_RESULTS);
+ EXPECT_EQ(message->message_type(), NL80211_CMD_NEW_SCAN_RESULTS);
{
uint8_t value;
@@ -659,7 +659,7 @@
reinterpret_cast<const nlmsghdr *>(kNL80211_CMD_NEW_STATION)));
EXPECT_NE(message, reinterpret_cast<UserBoundNlMessage *>(NULL));
- EXPECT_EQ(message->GetMessageType(), NL80211_CMD_NEW_STATION);
+ EXPECT_EQ(message->message_type(), NL80211_CMD_NEW_STATION);
{
uint32_t value;
@@ -691,7 +691,7 @@
reinterpret_cast<const nlmsghdr *>(kNL80211_CMD_AUTHENTICATE)));
EXPECT_NE(message, reinterpret_cast<UserBoundNlMessage *>(NULL));
- EXPECT_EQ(message->GetMessageType(), NL80211_CMD_AUTHENTICATE);
+ EXPECT_EQ(message->message_type(), NL80211_CMD_AUTHENTICATE);
{
uint8_t value;
@@ -726,7 +726,7 @@
reinterpret_cast<const nlmsghdr *>(kNL80211_CMD_ASSOCIATE)));
EXPECT_NE(message, reinterpret_cast<UserBoundNlMessage *>(NULL));
- EXPECT_EQ(message->GetMessageType(), NL80211_CMD_ASSOCIATE);
+ EXPECT_EQ(message->message_type(), NL80211_CMD_ASSOCIATE);
{
uint8_t value;
@@ -761,7 +761,7 @@
reinterpret_cast<const nlmsghdr *>(kNL80211_CMD_CONNECT)));
EXPECT_NE(message, reinterpret_cast<UserBoundNlMessage *>(NULL));
- EXPECT_EQ(message->GetMessageType(), NL80211_CMD_CONNECT);
+ EXPECT_EQ(message->message_type(), NL80211_CMD_CONNECT);
{
uint8_t value;
@@ -797,7 +797,7 @@
reinterpret_cast<const nlmsghdr *>(kNL80211_CMD_DEAUTHENTICATE)));
EXPECT_NE(message, reinterpret_cast<UserBoundNlMessage *>(NULL));
- EXPECT_EQ(message->GetMessageType(), NL80211_CMD_DEAUTHENTICATE);
+ EXPECT_EQ(message->message_type(), NL80211_CMD_DEAUTHENTICATE);
{
uint8_t value;
@@ -833,7 +833,7 @@
reinterpret_cast<const nlmsghdr *>(kNL80211_CMD_DISCONNECT)));
EXPECT_NE(message, reinterpret_cast<UserBoundNlMessage *>(NULL));
- EXPECT_EQ(message->GetMessageType(), NL80211_CMD_DISCONNECT);
+ EXPECT_EQ(message->message_type(), NL80211_CMD_DISCONNECT);
{
uint8_t value;
@@ -863,7 +863,7 @@
reinterpret_cast<const nlmsghdr *>(kNL80211_CMD_NOTIFY_CQM)));
EXPECT_NE(message, reinterpret_cast<UserBoundNlMessage *>(NULL));
- EXPECT_EQ(message->GetMessageType(), NL80211_CMD_NOTIFY_CQM);
+ EXPECT_EQ(message->message_type(), NL80211_CMD_NOTIFY_CQM);
{
@@ -916,7 +916,7 @@
reinterpret_cast<const nlmsghdr *>(kNL80211_CMD_DISASSOCIATE)));
EXPECT_NE(message, reinterpret_cast<UserBoundNlMessage *>(NULL));
- EXPECT_EQ(message->GetMessageType(), NL80211_CMD_DISASSOCIATE);
+ EXPECT_EQ(message->message_type(), NL80211_CMD_DISASSOCIATE);
{
diff --git a/user_bound_nlmessage.cc b/user_bound_nlmessage.cc
index 62eb59c..a698cd5 100644
--- a/user_bound_nlmessage.cc
+++ b/user_bound_nlmessage.cc
@@ -63,8 +63,6 @@
LAZY_INSTANCE_INITIALIZER;
} // namespace
-const uint8_t UserBoundNlMessage::kCommand = 0xff;
-const char UserBoundNlMessage::kCommandString[] = "<Unknown Message>";
const char UserBoundNlMessage::kBogusMacAddress[]="XX:XX:XX:XX:XX:XX";
const uint8_t Nl80211Frame::kMinimumFrameByteCount = 26;
@@ -1968,13 +1966,13 @@
bool doit = false;
map<uint8_t, bool>::const_iterator node;
- node = need_to_print.find(message.GetMessageType());
+ node = need_to_print.find(message.message_type());
if (node != need_to_print.end())
doit = node->second;
if (doit) {
LOG(INFO) << "@@const unsigned char "
- << "k" << message.GetMessageTypeString()
+ << "k" << message.message_type_string()
<< "[] = {";
int payload_bytes = nlmsg_datalen(msg);
@@ -1987,7 +1985,7 @@
<< + rawdata[i] << ",";
}
LOG(INFO) << "};";
- need_to_print[message.GetMessageType()] = false;
+ need_to_print[message.message_type()] = false;
}
}
diff --git a/user_bound_nlmessage.h b/user_bound_nlmessage.h
index aa9881c..a15e61a 100644
--- a/user_bound_nlmessage.h
+++ b/user_bound_nlmessage.h
@@ -70,11 +70,12 @@
DISALLOW_COPY_AND_ASSIGN(AttributeNameIterator);
};
- static const uint8_t kCommand;
- static const char kCommandString[];
static const char kBogusMacAddress[];
- UserBoundNlMessage() : message_(NULL) { }
+ UserBoundNlMessage(uint8 message_type, const char *message_type_string)
+ : message_(NULL),
+ message_type_(message_type),
+ message_type_string_(message_type_string) { }
virtual ~UserBoundNlMessage();
// Non-trivial initialization.
@@ -87,13 +88,6 @@
bool HasAttributes() const { return !attributes_.empty(); }
uint32_t GetAttributeCount() const { return attributes_.size(); }
- virtual uint8_t GetMessageType() const {
- return UserBoundNlMessage::kCommand;
- }
- virtual std::string GetMessageTypeString() const {
- return UserBoundNlMessage::kCommandString;
- }
-
// Other ways to see the internals of the object.
// Return true if the attribute is in our map, regardless of the value of
@@ -165,6 +159,9 @@
// Returns a string that describes this message.
virtual std::string ToString() const { return GetHeaderString(); }
+ uint8 message_type() const { return message_type_; }
+ const char *message_type_string() const { return message_type_string_; }
+
protected:
// Duplicate attribute data, store in map indexed on 'name'.
bool AddAttribute(nl80211_attrs name, nlattr *data);
@@ -200,6 +197,8 @@
static const int kEthernetAddressBytes;
nlmsghdr *message_;
+ const uint8 message_type_;
+ const char *message_type_string_;
static std::map<uint16_t, std::string> *reason_code_string_;
static std::map<uint16_t, std::string> *status_code_string_;
std::map<nl80211_attrs, nlattr *> attributes_;
@@ -251,12 +250,8 @@
static const uint8_t kCommand;
static const char kCommandString[];
- AssociateMessage() {}
+ AssociateMessage() : UserBoundNlMessage(kCommand, kCommandString) {}
- virtual uint8_t GetMessageType() const { return AssociateMessage::kCommand; }
- virtual std::string GetMessageTypeString() const {
- return AssociateMessage::kCommandString;
- }
virtual std::string ToString() const;
private:
@@ -269,14 +264,8 @@
static const uint8_t kCommand;
static const char kCommandString[];
- AuthenticateMessage() {}
+ AuthenticateMessage() : UserBoundNlMessage(kCommand, kCommandString) {}
- virtual uint8_t GetMessageType() const {
- return AuthenticateMessage::kCommand;
- }
- virtual std::string GetMessageTypeString() const {
- return AuthenticateMessage::kCommandString;
- }
virtual std::string ToString() const;
private:
@@ -289,14 +278,9 @@
static const uint8_t kCommand;
static const char kCommandString[];
- CancelRemainOnChannelMessage() {}
+ CancelRemainOnChannelMessage()
+ : UserBoundNlMessage(kCommand, kCommandString) {}
- virtual uint8_t GetMessageType() const {
- return CancelRemainOnChannelMessage::kCommand;
- }
- virtual std::string GetMessageTypeString() const {
- return CancelRemainOnChannelMessage::kCommandString;
- }
virtual std::string ToString() const;
private:
@@ -309,12 +293,8 @@
static const uint8_t kCommand;
static const char kCommandString[];
- ConnectMessage() {}
+ ConnectMessage() : UserBoundNlMessage(kCommand, kCommandString) {}
- virtual uint8_t GetMessageType() const { return ConnectMessage::kCommand; }
- virtual std::string GetMessageTypeString() const {
- return ConnectMessage::kCommandString;
- }
virtual std::string ToString() const;
private:
@@ -327,14 +307,8 @@
static const uint8_t kCommand;
static const char kCommandString[];
- DeauthenticateMessage() {}
+ DeauthenticateMessage() : UserBoundNlMessage(kCommand, kCommandString) {}
- virtual uint8_t GetMessageType() const {
- return DeauthenticateMessage::kCommand;
- }
- virtual std::string GetMessageTypeString() const {
- return DeauthenticateMessage::kCommandString;
- }
virtual std::string ToString() const;
private:
@@ -347,14 +321,8 @@
static const uint8_t kCommand;
static const char kCommandString[];
- DeleteStationMessage() {}
+ DeleteStationMessage() : UserBoundNlMessage(kCommand, kCommandString) {}
- virtual uint8_t GetMessageType() const {
- return DeleteStationMessage::kCommand;
- }
- virtual std::string GetMessageTypeString() const {
- return DeleteStationMessage::kCommandString;
- }
virtual std::string ToString() const;
private:
@@ -367,14 +335,8 @@
static const uint8_t kCommand;
static const char kCommandString[];
- DisassociateMessage() {}
+ DisassociateMessage() : UserBoundNlMessage(kCommand, kCommandString) {}
- virtual uint8_t GetMessageType() const {
- return DisassociateMessage::kCommand;
- }
- virtual std::string GetMessageTypeString() const {
- return DisassociateMessage::kCommandString;
- }
virtual std::string ToString() const;
private:
@@ -387,12 +349,8 @@
static const uint8_t kCommand;
static const char kCommandString[];
- DisconnectMessage() {}
+ DisconnectMessage() : UserBoundNlMessage(kCommand, kCommandString) {}
- virtual uint8_t GetMessageType() const { return DisconnectMessage::kCommand; }
- virtual std::string GetMessageTypeString() const {
- return DisconnectMessage::kCommandString;
- }
virtual std::string ToString() const;
private:
@@ -405,14 +363,8 @@
static const uint8_t kCommand;
static const char kCommandString[];
- FrameTxStatusMessage() {}
+ FrameTxStatusMessage() : UserBoundNlMessage(kCommand, kCommandString) {}
- virtual uint8_t GetMessageType() const {
- return FrameTxStatusMessage::kCommand;
- }
- virtual std::string GetMessageTypeString() const {
- return FrameTxStatusMessage::kCommandString;
- }
virtual std::string ToString() const;
private:
@@ -425,12 +377,8 @@
static const uint8_t kCommand;
static const char kCommandString[];
- JoinIbssMessage() {}
+ JoinIbssMessage() : UserBoundNlMessage(kCommand, kCommandString) {}
- virtual uint8_t GetMessageType() const { return JoinIbssMessage::kCommand; }
- virtual std::string GetMessageTypeString() const {
- return JoinIbssMessage::kCommandString;
- }
virtual std::string ToString() const;
private:
@@ -443,14 +391,8 @@
static const uint8_t kCommand;
static const char kCommandString[];
- MichaelMicFailureMessage() {}
+ MichaelMicFailureMessage() : UserBoundNlMessage(kCommand, kCommandString) {}
- virtual uint8_t GetMessageType() const {
- return MichaelMicFailureMessage::kCommand;
- }
- virtual std::string GetMessageTypeString() const {
- return MichaelMicFailureMessage::kCommandString;
- }
virtual std::string ToString() const;
private:
@@ -463,14 +405,8 @@
static const uint8_t kCommand;
static const char kCommandString[];
- NewScanResultsMessage() {}
+ NewScanResultsMessage() : UserBoundNlMessage(kCommand, kCommandString) {}
- virtual uint8_t GetMessageType() const {
- return NewScanResultsMessage::kCommand;
- }
- virtual std::string GetMessageTypeString() const {
- return NewScanResultsMessage::kCommandString;
- }
virtual std::string ToString() const;
private:
@@ -483,12 +419,8 @@
static const uint8_t kCommand;
static const char kCommandString[];
- NewStationMessage() {}
+ NewStationMessage() : UserBoundNlMessage(kCommand, kCommandString) {}
- virtual uint8_t GetMessageType() const { return NewStationMessage::kCommand; }
- virtual std::string GetMessageTypeString() const {
- return NewStationMessage::kCommandString;
- }
virtual std::string ToString() const;
private:
@@ -501,12 +433,8 @@
static const uint8_t kCommand;
static const char kCommandString[];
- NewWifiMessage() {}
+ NewWifiMessage() : UserBoundNlMessage(kCommand, kCommandString) {}
- virtual uint8_t GetMessageType() const { return NewWifiMessage::kCommand; }
- virtual std::string GetMessageTypeString() const {
- return NewWifiMessage::kCommandString;
- }
virtual std::string ToString() const;
private:
@@ -519,12 +447,8 @@
static const uint8_t kCommand;
static const char kCommandString[];
- NotifyCqmMessage() {}
+ NotifyCqmMessage() : UserBoundNlMessage(kCommand, kCommandString) {}
- virtual uint8_t GetMessageType() const { return NotifyCqmMessage::kCommand; }
- virtual std::string GetMessageTypeString() const {
- return NotifyCqmMessage::kCommandString;
- }
virtual std::string ToString() const;
private:
@@ -537,14 +461,8 @@
static const uint8_t kCommand;
static const char kCommandString[];
- PmksaCandidateMessage() {}
+ PmksaCandidateMessage() : UserBoundNlMessage(kCommand, kCommandString) {}
- virtual uint8_t GetMessageType() const {
- return PmksaCandidateMessage::kCommand;
- }
- virtual std::string GetMessageTypeString() const {
- return PmksaCandidateMessage::kCommandString;
- }
virtual std::string ToString() const;
private:
@@ -557,14 +475,8 @@
static const uint8_t kCommand;
static const char kCommandString[];
- RegBeaconHintMessage() {}
+ RegBeaconHintMessage() : UserBoundNlMessage(kCommand, kCommandString) {}
- virtual uint8_t GetMessageType() const {
- return RegBeaconHintMessage::kCommand;
- }
- virtual std::string GetMessageTypeString() const {
- return RegBeaconHintMessage::kCommandString;
- }
virtual std::string ToString() const;
private:
@@ -591,12 +503,8 @@
static const uint8_t kCommand;
static const char kCommandString[];
- RegChangeMessage() {}
+ RegChangeMessage() : UserBoundNlMessage(kCommand, kCommandString) {}
- virtual uint8_t GetMessageType() const { return RegChangeMessage::kCommand; }
- virtual std::string GetMessageTypeString() const {
- return RegChangeMessage::kCommandString;
- }
virtual std::string ToString() const;
private:
@@ -609,14 +517,8 @@
static const uint8_t kCommand;
static const char kCommandString[];
- RemainOnChannelMessage() {}
+ RemainOnChannelMessage() : UserBoundNlMessage(kCommand, kCommandString) {}
- virtual uint8_t GetMessageType() const {
- return RemainOnChannelMessage::kCommand;
- }
- virtual std::string GetMessageTypeString() const {
- return RemainOnChannelMessage::kCommandString;
- }
virtual std::string ToString() const;
private:
@@ -629,12 +531,8 @@
static const uint8_t kCommand;
static const char kCommandString[];
- RoamMessage() {}
+ RoamMessage() : UserBoundNlMessage(kCommand, kCommandString) {}
- virtual uint8_t GetMessageType() const { return RoamMessage::kCommand; }
- virtual std::string GetMessageTypeString() const {
- return RoamMessage::kCommandString;
- }
virtual std::string ToString() const;
private:
@@ -647,14 +545,8 @@
static const uint8_t kCommand;
static const char kCommandString[];
- ScanAbortedMessage() {}
+ ScanAbortedMessage() : UserBoundNlMessage(kCommand, kCommandString) {}
- virtual uint8_t GetMessageType() const {
- return ScanAbortedMessage::kCommand;
- }
- virtual std::string GetMessageTypeString() const {
- return ScanAbortedMessage::kCommandString;
- }
virtual std::string ToString() const;
private:
@@ -667,14 +559,8 @@
static const uint8_t kCommand;
static const char kCommandString[];
- TriggerScanMessage() {}
+ TriggerScanMessage() : UserBoundNlMessage(kCommand, kCommandString) {}
- virtual uint8_t GetMessageType() const {
- return TriggerScanMessage::kCommand;
- }
- virtual std::string GetMessageTypeString() const {
- return TriggerScanMessage::kCommandString;
- }
virtual std::string ToString() const;
private:
@@ -684,15 +570,13 @@
class UnknownMessage : public UserBoundNlMessage {
public:
- explicit UnknownMessage(uint8_t command) : command_(command) {}
+ explicit UnknownMessage(uint8_t command)
+ : UserBoundNlMessage(command, kCommandString),
+ command_(command) {}
static const uint8_t kCommand;
static const char kCommandString[];
- virtual uint8_t GetMessageType() const { return command_; }
- virtual std::string GetMessageTypeString() const {
- return UnknownMessage::kCommandString;
- }
virtual std::string ToString() const;
private:
@@ -707,14 +591,9 @@
static const uint8_t kCommand;
static const char kCommandString[];
- UnprotDeauthenticateMessage() {}
+ UnprotDeauthenticateMessage()
+ : UserBoundNlMessage(kCommand, kCommandString) {}
- virtual uint8_t GetMessageType() const {
- return UnprotDeauthenticateMessage::kCommand;
- }
- virtual std::string GetMessageTypeString() const {
- return UnprotDeauthenticateMessage::kCommandString;
- }
virtual std::string ToString() const;
private:
@@ -727,14 +606,8 @@
static const uint8_t kCommand;
static const char kCommandString[];
- UnprotDisassociateMessage() {}
+ UnprotDisassociateMessage() : UserBoundNlMessage(kCommand, kCommandString) {}
- virtual uint8_t GetMessageType() const {
- return UnprotDisassociateMessage::kCommand;
- }
- virtual std::string GetMessageTypeString() const {
- return UnprotDisassociateMessage::kCommandString;
- }
virtual std::string ToString() const;
private: