LEFT | RIGHT |
(no file at all) | |
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ | 1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ |
2 /* | 2 /* |
3 * Copyright (c) 2007 INRIA, Gustavo Carneiro | 3 * Copyright (c) 2007 INRIA, Gustavo Carneiro |
4 * | 4 * |
5 * This program is free software; you can redistribute it and/or modify | 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 | 6 * it under the terms of the GNU General Public License version 2 as |
7 * published by the Free Software Foundation; | 7 * published by the Free Software Foundation; |
8 * | 8 * |
9 * This program is distributed in the hope that it will be useful, | 9 * This program is distributed in the hope that it will be useful, |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
(...skipping 12 matching lines...) Expand all Loading... |
23 | 23 |
24 #include <stdint.h> | 24 #include <stdint.h> |
25 #include <string> | 25 #include <string> |
26 #include <vector> | 26 #include <vector> |
27 #include "ptr.h" | 27 #include "ptr.h" |
28 #include "attribute.h" | 28 #include "attribute.h" |
29 #include "object-base.h" | 29 #include "object-base.h" |
30 #include "attribute-construction-list.h" | 30 #include "attribute-construction-list.h" |
31 #include "simple-ref-count.h" | 31 #include "simple-ref-count.h" |
32 | 32 |
| 33 #include "ns3/ns3-module.h" |
| 34 #define NS3_MODULE NS3_CORE_MODULE |
| 35 #include "ns3/ns3-export.h" |
| 36 |
33 /** | 37 /** |
34 * \file | 38 * \file |
35 * \ingroup object | 39 * \ingroup object |
36 * ns3::Object class declaration, which is the root of the Object hierarchy | 40 * ns3::Object class declaration, which is the root of the Object hierarchy |
37 * and Aggregation. | 41 * and Aggregation. |
38 */ | 42 */ |
39 | 43 |
40 namespace ns3 { | 44 namespace ns3 { |
41 | 45 |
42 class Object; | 46 class Object; |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
77 * dispose-like functionality to break the reference cycles. | 81 * dispose-like functionality to break the reference cycles. |
78 * The reference count is incremented and decremented with | 82 * The reference count is incremented and decremented with |
79 * the methods Ref() and Unref(). If a reference cycle is | 83 * the methods Ref() and Unref(). If a reference cycle is |
80 * present, the user is responsible for breaking it | 84 * present, the user is responsible for breaking it |
81 * by calling Dispose() in a single location. This will | 85 * by calling Dispose() in a single location. This will |
82 * eventually trigger the invocation of DoDispose() on itself and | 86 * eventually trigger the invocation of DoDispose() on itself and |
83 * all its aggregates. The DoDispose() method is always automatically | 87 * all its aggregates. The DoDispose() method is always automatically |
84 * invoked from the Unref() method before destroying the Object, | 88 * invoked from the Unref() method before destroying the Object, |
85 * even if the user did not call Dispose() directly. | 89 * even if the user did not call Dispose() directly. |
86 */ | 90 */ |
87 class Object : public SimpleRefCount<Object, ObjectBase, ObjectDeleter> | 91 class NS3_EXPORT Object : public SimpleRefCount<Object, ObjectBase, ObjectDelete
r> |
88 { | 92 { |
89 public: | 93 public: |
90 /** | 94 /** |
91 * \brief Register this type. | 95 * \brief Register this type. |
92 * \return The Object TypeId. | 96 * \return The Object TypeId. |
93 */ | 97 */ |
94 static TypeId GetTypeId (void); | 98 static TypeId GetTypeId (void); |
95 | 99 |
96 /** | 100 /** |
97 * \brief Iterate over the Objects aggregated to an ns3::Object. | 101 * \brief Iterate over the Objects aggregated to an ns3::Object. |
98 * | 102 * |
99 * This iterator does not allow you to iterate over the parent | 103 * This iterator does not allow you to iterate over the parent |
100 * Object used to call Object::GetAggregateIterator.· | 104 * Object used to call Object::GetAggregateIterator.· |
101 * | 105 * |
102 * \note This is a java-style iterator. | 106 * \note This is a java-style iterator. |
103 */ | 107 */ |
104 class AggregateIterator | 108 class NS3_EXPORT AggregateIterator |
105 { | 109 { |
106 public: | 110 public: |
107 /** Default constructor, which has no Object. */ | 111 /** Default constructor, which has no Object. */ |
108 AggregateIterator (); | 112 AggregateIterator (); |
109 | 113 |
110 /** | 114 /** |
111 * Check if there are more Aggregates to iterate over. | 115 * Check if there are more Aggregates to iterate over. |
112 * | 116 * |
113 * \returns \c true if Next() can be called and return a non-null | 117 * \returns \c true if Next() can be called and return a non-null |
114 * pointer, \c false otherwise. | 118 * pointer, \c false otherwise. |
(...skipping 545 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
660 Ptr<T> CreateObject (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6, T7 a7) | 664 Ptr<T> CreateObject (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6, T7 a7) |
661 { | 665 { |
662 return CompleteConstruct (new T (a1,a2,a3,a4,a5,a6,a7)); | 666 return CompleteConstruct (new T (a1,a2,a3,a4,a5,a6,a7)); |
663 } | 667 } |
664 /**@}*/ | 668 /**@}*/ |
665 | 669 |
666 } // namespace ns3 | 670 } // namespace ns3 |
667 | 671 |
668 #endif /* OBJECT_H */ | 672 #endif /* OBJECT_H */ |
669 | 673 |
LEFT | RIGHT |