src/devices/wifi/capability-information.cc
changeset 1939 40af0232df83
parent 1937 996383a87ae3
child 6602 0aae670ceff3
--- a/src/devices/wifi/capability-information.cc	Tue Oct 09 17:19:13 2007 +0200
+++ b/src/devices/wifi/capability-information.cc	Wed Oct 10 11:18:19 2007 +0200
@@ -22,7 +22,72 @@
 namespace ns3 {
 
 CapabilityInformation::CapabilityInformation ()
+  : m_capability (0)
 {}
 
+void 
+CapabilityInformation::SetEss (void)
+{
+  Set (0);
+  Clear (1);
+}
+void 
+CapabilityInformation::SetIbss (void)
+{
+  Clear (0);
+  Set (1);
+}
+
+bool 
+CapabilityInformation::IsEss (void) const
+{
+  return Is (0);
+}
+bool 
+CapabilityInformation::IsIbss (void) const
+{
+  return Is (1);
+}
+
+void
+CapabilityInformation::Set (uint8_t n)
+{
+  uint32_t mask = 1<<n;
+  m_capability |= mask;
+}
+
+void
+CapabilityInformation::Clear (uint8_t n)
+{
+  uint32_t mask = 1<<n;
+  m_capability &= ~mask;
+}
+
+bool
+CapabilityInformation::Is (uint8_t n) const
+{
+  uint32_t mask = 1<<n;
+  return (m_capability & mask) == mask;
+}
+
+
+uint32_t 
+CapabilityInformation::GetSerializedSize (void) const
+{
+  return 2;
+}
+Buffer::Iterator 
+CapabilityInformation::Serialize (Buffer::Iterator start) const
+{
+  start.WriteHtonU16 (m_capability);
+  return start;
+}
+Buffer::Iterator 
+CapabilityInformation::Deserialize (Buffer::Iterator start)
+{
+  m_capability = start.ReadNtohU16 ();
+  return start;
+}
+
 
 } // namespace ns3