A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
boolean.cc
Go to the documentation of this file.
1/*
2 * Copyright (c) 2008 INRIA
3 *
4 * SPDX-License-Identifier: GPL-2.0-only
5 *
6 * Authors: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
7 */
8#include "boolean.h"
9
10#include "fatal-error.h"
11#include "log.h"
12
13/**
14 * @file
15 * @ingroup attribute_Boolean
16 * ns3::BooleanValue attribute value implementation.
17 */
18
19namespace ns3
20{
21
23
25 : m_value(false)
26{
27 NS_LOG_FUNCTION(this);
28}
29
31 : m_value(value)
32{
33 NS_LOG_FUNCTION(this << value);
34}
35
36void
38{
39 NS_LOG_FUNCTION(this << value);
40 m_value = value;
41}
42
43bool
45{
46 NS_LOG_FUNCTION(this);
47 return m_value;
48}
49
50BooleanValue::
51operator bool() const
52{
53 return m_value;
54}
55
56std::ostream&
57operator<<(std::ostream& os, const BooleanValue& value)
58{
59 if (value.Get())
60 {
61 os << "true";
62 }
63 else
64 {
65 os << "false";
66 }
67 return os;
68}
69
70Ptr<AttributeValue>
72{
73 NS_LOG_FUNCTION(this);
74
75 return Create<BooleanValue>(*this);
76}
77
78std::string
80{
81 NS_LOG_FUNCTION(this << checker);
82
83 if (m_value)
84 {
85 return "true";
86 }
87 else
88 {
89 return "false";
90 }
91}
92
93bool
95{
96 NS_LOG_FUNCTION(this << value << checker);
97
98 if (value == "true" || value == "1" || value == "t")
99 {
100 m_value = true;
101 return true;
102 }
103 else if (value == "false" || value == "0" || value == "f")
104 {
105 m_value = false;
106 return true;
107 }
108 else
109 {
110 return false;
111 }
112}
113
115
116} // namespace ns3
ns3::BooleanValue attribute value declarations.
AttributeValue implementation for Boolean.
Definition boolean.h:26
bool Get() const
Definition boolean.cc:44
Ptr< AttributeValue > Copy() const override
Definition boolean.cc:71
bool DeserializeFromString(std::string value, Ptr< const AttributeChecker > checker) override
Definition boolean.cc:94
void Set(bool value)
Set the value.
Definition boolean.cc:37
bool m_value
The stored Boolean instance.
Definition boolean.h:46
std::string SerializeToString(Ptr< const AttributeChecker > checker) const override
Definition boolean.cc:79
Smart pointer class similar to boost::intrusive_ptr.
Definition ptr.h:67
NS_FATAL_x macro definitions.
#define ATTRIBUTE_CHECKER_IMPLEMENT_WITH_NAME(type, name)
Define the MaketypeChecker function for class type.
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
Definition log.h:191
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by ",...
Ptr< T > Create(Ts &&... args)
Create class instances by constructors with varying numbers of arguments and return them by Ptr.
Definition ptr.h:439
Debug message logging.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
std::ostream & operator<<(std::ostream &os, const Angles &a)
Definition angles.cc:148