A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Portuguese
Docs ▼
Wiki
Manual
Models
Develop ▼
API
Bugs
API
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
attribute.h
Go to the documentation of this file.
1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2
/*
3
* Copyright (c) 2008 INRIA
4
*
5
* This program is free software; you can redistribute it and/or modify
6
* it under the terms of the GNU General Public License version 2 as
7
* published by the Free Software Foundation;
8
*
9
* This program is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
* GNU General Public License for more details.
13
*
14
* You should have received a copy of the GNU General Public License
15
* along with this program; if not, write to the Free Software
16
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
*
18
* Authors: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
19
*/
20
#ifndef ATTRIBUTE_H
21
#define ATTRIBUTE_H
22
23
#include <string>
24
#include <stdint.h>
25
#include "
ptr.h
"
26
#include "
simple-ref-count.h
"
27
28
namespace
ns3 {
29
30
class
AttributeAccessor;
31
class
AttributeChecker;
32
class
Attribute;
33
class
ObjectBase;
34
56
class
AttributeValue
:
public
SimpleRefCount
<AttributeValue>
57
{
58
public
:
59
AttributeValue
();
60
virtual
~AttributeValue
();
61
65
virtual
Ptr<AttributeValue>
Copy
(
void
)
const
= 0;
75
virtual
std::string
SerializeToString
(
Ptr<const AttributeChecker>
checker)
const
= 0;
89
virtual
bool
DeserializeFromString
(std::string value,
Ptr<const AttributeChecker>
checker) = 0;
90
};
91
102
class
AttributeAccessor
:
public
SimpleRefCount
<AttributeAccessor>
103
{
104
public
:
105
AttributeAccessor
();
106
virtual
~AttributeAccessor
();
107
116
virtual
bool
Set
(
ObjectBase
*
object
,
const
AttributeValue
&value)
const
= 0;
126
virtual
bool
Get
(
const
ObjectBase
*
object
,
AttributeValue
&attribute)
const
= 0;
127
132
virtual
bool
HasGetter
(
void
)
const
= 0;
137
virtual
bool
HasSetter
(
void
)
const
= 0;
138
};
139
154
class
AttributeChecker
:
public
SimpleRefCount
<AttributeChecker>
155
{
156
public
:
157
AttributeChecker
();
158
virtual
~AttributeChecker
();
159
167
Ptr<AttributeValue>
CreateValidValue
(
const
AttributeValue
&value)
const
;
174
virtual
bool
Check
(
const
AttributeValue
&value)
const
= 0;
183
virtual
std::string
GetValueTypeName
(
void
)
const
= 0;
191
virtual
bool
HasUnderlyingTypeInformation
(
void
)
const
= 0;
196
virtual
std::string
GetUnderlyingTypeInformation
(
void
)
const
= 0;
204
virtual
Ptr<AttributeValue>
Create
(
void
)
const
= 0;
212
virtual
bool
Copy
(
const
AttributeValue
&source,
AttributeValue
&destination)
const
= 0;
213
214
215
};
216
222
class
EmptyAttributeValue
:
public
AttributeValue
223
{
224
public
:
225
EmptyAttributeValue
();
226
private
:
227
virtual
Ptr<AttributeValue>
Copy
(
void
)
const
;
228
virtual
std::string
SerializeToString
(
Ptr<const AttributeChecker>
checker)
const
;
229
virtual
bool
DeserializeFromString
(std::string value,
Ptr<const AttributeChecker>
checker);
230
};
231
232
}
// namespace ns3
233
234
#endif
/* ATTRIBUTE_H */
ns3::AttributeChecker::Copy
virtual bool Copy(const AttributeValue &source, AttributeValue &destination) const =0
Copy the source to the destination.
ns3::AttributeChecker
Represent the type of an attribute.
Definition:
attribute.h:154
ns3::Ptr
smart pointer class similar to boost::intrusive_ptr
Definition:
ptr.h:59
ns3::AttributeAccessor::AttributeAccessor
AttributeAccessor()
Definition:
attribute.cc:38
ptr.h
ns3::AttributeValue
Hold a value for an Attribute.
Definition:
attribute.h:56
ns3::AttributeAccessor::Get
virtual bool Get(const ObjectBase *object, AttributeValue &attribute) const =0
ns3::EmptyAttributeValue::DeserializeFromString
virtual bool DeserializeFromString(std::string value, Ptr< const AttributeChecker > checker)
Definition:
attribute.cc:98
ns3::AttributeAccessor::HasGetter
virtual bool HasGetter(void) const =0
ns3::ObjectBase
implement the ns-3 type and attribute system
Definition:
object-base.h:70
ns3::AttributeChecker::HasUnderlyingTypeInformation
virtual bool HasUnderlyingTypeInformation(void) const =0
ns3::AttributeAccessor::HasSetter
virtual bool HasSetter(void) const =0
ns3::EmptyAttributeValue::EmptyAttributeValue
EmptyAttributeValue()
Definition:
attribute.cc:81
ns3::AttributeValue::AttributeValue
AttributeValue()
Definition:
attribute.cc:30
ns3::AttributeValue::SerializeToString
virtual std::string SerializeToString(Ptr< const AttributeChecker > checker) const =0
ns3::EmptyAttributeValue
A class for an empty attribute value.
Definition:
attribute.h:222
ns3::AttributeAccessor::~AttributeAccessor
virtual ~AttributeAccessor()
Definition:
attribute.cc:41
ns3::AttributeChecker::AttributeChecker
AttributeChecker()
Definition:
attribute.cc:45
ns3::AttributeChecker::GetValueTypeName
virtual std::string GetValueTypeName(void) const =0
ns3::AttributeChecker::CreateValidValue
Ptr< AttributeValue > CreateValidValue(const AttributeValue &value) const
Create a valid value from the argument value, or reinterpret the argument as a string.
Definition:
attribute.cc:53
ns3::EmptyAttributeValue::SerializeToString
virtual std::string SerializeToString(Ptr< const AttributeChecker > checker) const
Definition:
attribute.cc:92
ns3::AttributeAccessor
allow setting and getting the value of an attribute.
Definition:
attribute.h:102
ns3::AttributeValue::~AttributeValue
virtual ~AttributeValue()
Definition:
attribute.cc:33
ns3::AttributeValue::Copy
virtual Ptr< AttributeValue > Copy(void) const =0
ns3::AttributeAccessor::Set
virtual bool Set(ObjectBase *object, const AttributeValue &value) const =0
ns3::AttributeChecker::Create
virtual Ptr< AttributeValue > Create(void) const =0
ns3::AttributeChecker::~AttributeChecker
virtual ~AttributeChecker()
Definition:
attribute.cc:48
ns3::AttributeValue::DeserializeFromString
virtual bool DeserializeFromString(std::string value, Ptr< const AttributeChecker > checker)=0
ns3::AttributeChecker::Check
virtual bool Check(const AttributeValue &value) const =0
ns3::AttributeChecker::GetUnderlyingTypeInformation
virtual std::string GetUnderlyingTypeInformation(void) const =0
ns3::SimpleRefCount
A template-based reference counting class.
Definition:
simple-ref-count.h:64
simple-ref-count.h
ns3::EmptyAttributeValue::Copy
virtual Ptr< AttributeValue > Copy(void) const
Definition:
attribute.cc:86
src
core
model
attribute.h
Generated on Sat Apr 19 2014 14:06:51 for ns-3 by
1.8.6