macro-ify

This commit is contained in:
Mathieu Lacage
2008-02-15 05:38:29 +01:00
parent e94efb4a11
commit 25bb76ce20
11 changed files with 64 additions and 202 deletions

View File

@@ -4,7 +4,7 @@
#include <stdint.h>
#include <ostream>
#include "ns3/value.h"
#include "ns3/class-value-helper.h"
#include "ns3/value-helper.h"
namespace ns3 {
@@ -154,8 +154,7 @@ public:
*/
static uint8_t Register (void);
Address (PValue value);
operator PValue () const;
VALUE_HELPER_HEADER_1 (Address);
private:
friend bool operator == (const Address &a, const Address &b);
friend bool operator < (const Address &a, const Address &b);
@@ -166,46 +165,15 @@ private:
uint8_t m_data[MAX_SIZE];
};
VALUE_HELPER_HEADER_2 (Address);
bool operator == (const Address &a, const Address &b);
bool operator != (const Address &a, const Address &b);
bool operator < (const Address &a, const Address &b);
std::ostream& operator<< (std::ostream& os, const Address & address);
std::istream& operator>> (std::istream& is, Address & address);
class AddressValue : public Value {};
class AddressParamSpec : public ParamSpec {};
template <typename T1>
Ptr<ParamSpec>
MakeAddressParamSpec (T1 a1, Address initialValue);
template <typename T1, typename T2>
Ptr<ParamSpec>
MakeAddressParamSpec (T1 a1, T2 a2, Address initialValue);
} // namespace ns3
namespace ns3 {
template <typename T1>
Ptr<ParamSpec>
MakeAddressParamSpec (T1 a1, Address initialValue)
{
return MakeClassValueHelperParamSpec<Address,AddressValue,AddressParamSpec>
(a1, initialValue);
}
template <typename T1, typename T2>
Ptr<ParamSpec>
MakeAddressParamSpec (T1 a1, T2 a2, Address initialValue)
{
return MakeClassValueHelperParamSpec<Address,AddressValue,AddressParamSpec>
(a1, a2, initialValue);
}
} // namespace ns3
#endif /* ADDRESS_H */

View File

@@ -25,6 +25,8 @@
namespace ns3 {
VALUE_HELPER_CPP (Mac48Address);
#define ASCII_a (0x41)
#define ASCII_z (0x5a)
#define ASCII_A (0x61)
@@ -150,16 +152,6 @@ Mac48Address::GetBroadcast (void)
return broadcast;
}
Mac48Address::Mac48Address (PValue value)
{
*this = ClassValueHelperExtractFrom<Mac48Address,Mac48AddressValue> (value);
}
Mac48Address::operator PValue () const
{
return ClassValueHelperConvertTo<Mac48Address,Mac48AddressValue> (this);
}
bool operator == (const Mac48Address &a, const Mac48Address &b)
{
return memcmp (a.m_address, b.m_address, 6) == 0;

View File

@@ -23,7 +23,7 @@
#include <stdint.h>
#include <ostream>
#include "ns3/value.h"
#include "ns3/class-value-helper.h"
#include "ns3/value-helper.h"
namespace ns3 {
@@ -96,8 +96,7 @@ public:
*/
static Mac48Address GetBroadcast (void);
Mac48Address (PValue value);
operator PValue () const;
VALUE_HELPER_HEADER_1 (Mac48Address);
private:
/**
* \returns a new Address instance
@@ -112,41 +111,14 @@ private:
uint8_t m_address[6];
};
VALUE_HELPER_HEADER_2 (Mac48Address);
bool operator == (const Mac48Address &a, const Mac48Address &b);
bool operator != (const Mac48Address &a, const Mac48Address &b);
bool operator < (const Mac48Address &a, const Mac48Address &b);
std::ostream& operator<< (std::ostream& os, const Mac48Address & address);
std::istream& operator>> (std::istream& is, const Mac48Address & address);
class Mac48AddressValue : public Value {};
class Mac48AddressParamSpec : public ParamSpec {};
template <typename T1>
Ptr<ParamSpec>
MakeMac48AddressParamSpec (T1 a1, Mac48Address address);
template <typename T1, typename T2>
Ptr<ParamSpec>
MakeMac48AddressParamSpec (T1 a1, T2 a2, Mac48Address address);
} // namespace ns3
namespace ns3 {
template <typename T1>
Ptr<ParamSpec>
MakeMac48AddressParamSpec (T1 a1, Mac48Address address)
{
return MakeClassValueHelperParamSpec<Mac48Address,Mac48AddressValue,Mac48AddressParamSpec> (a1, address);
}
template <typename T1, typename T2>
Ptr<ParamSpec>
MakeMac48AddressParamSpec (T1 a1, T2 a2, Mac48Address address)
{
return MakeClassValueHelperParamSpec<Mac48Address,Mac48AddressValue,Mac48AddressParamSpec> (a1, a2, address);
}
} // namespace ns3
#endif /* MAC48_ADDRESS_H */