84 void operator delete (
void *);
88 friend class Ptr<const T>;
100 template <
typename U>
112 template <
typename U>
116 inline void Acquire (
void)
const;
140 Ptr (T *ptr,
bool ref);
153 template <
typename U>
205 operator Tester * ()
const;
222 template <
typename T>
231 template <
typename T,
243 template <
typename T,
244 typename T1,
typename T2>
257 template <
typename T,
258 typename T1,
typename T2,
274 template <
typename T,
275 typename T1,
typename T2,
276 typename T3,
typename T4>
293 template <
typename T,
294 typename T1,
typename T2,
295 typename T3,
typename T4,
315 template <
typename T,
316 typename T1,
typename T2,
317 typename T3,
typename T4,
318 typename T5,
typename T6>
319 Ptr<T> Create (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6);
339 template <
typename T,
340 typename T1,
typename T2,
341 typename T3,
typename T4,
342 typename T5,
typename T6,
344 Ptr<T> Create (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6, T7 a7);
354 template <
typename T>
355 std::ostream &operator << (std::ostream &os, const Ptr<T> &p);
378 template <
typename T1,
typename T2>
381 template <
typename T1,
typename T2>
384 template <
typename T1,
typename T2>
409 template <
typename T1,
typename T2>
412 template <
typename T1,
typename T2>
415 template <
typename T1,
typename T2>
429 template <
typename T>
430 bool operator < (const Ptr<T> &lhs,
const Ptr<T> &rhs);
431 template <
typename T>
432 bool operator <= (const Ptr<T> &lhs,
const Ptr<T> &rhs);
433 template <
typename T>
435 template <
typename T>
448 template <
typename T1,
typename T2>
452 template <
typename T>
465 template <
typename T>
479 template <
typename T>
480 struct EventMemberImplObjTraits;
490 template <
typename T>
513 template <
typename T>
516 return Ptr<T> (
new T (),
false);
519 template <
typename T,
typename T1>
522 return Ptr<T> (
new T (a1),
false);
525 template <
typename T,
typename T1,
typename T2>
528 return Ptr<T> (
new T (a1, a2),
false);
531 template <
typename T,
typename T1,
typename T2,
typename T3>
534 return Ptr<T> (
new T (a1, a2, a3),
false);
537 template <
typename T,
typename T1,
typename T2,
typename T3,
typename T4>
540 return Ptr<T> (
new T (a1, a2, a3, a4),
false);
543 template <
typename T,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
546 return Ptr<T> (
new T (a1, a2, a3, a4, a5),
false);
549 template <
typename T,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
552 return Ptr<T> (
new T (a1, a2, a3, a4, a5, a6),
false);
555 template <
typename T,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6,
typename T7>
558 return Ptr<T> (
new T (a1, a2, a3, a4, a5, a6, a7),
false);
561 template <
typename U>
567 template <
typename U>
574 template <
typename T>
575 std::ostream &operator << (std::ostream &os, const Ptr<T> &p)
581 template <
typename T1,
typename T2>
588 template <
typename T1,
typename T2>
595 template <
typename T1,
typename T2>
602 template <
typename T1,
typename T2>
609 template <
typename T1,
typename T2>
616 template <
typename T1,
typename T2>
623 template <
typename T>
624 bool operator < (const Ptr<T> &lhs,
const Ptr<T> &rhs)
626 return PeekPointer<T> (lhs) < PeekPointer<T> (rhs);
629 template <
typename T>
630 bool operator <= (const Ptr<T> &lhs,
const Ptr<T> &rhs)
632 return PeekPointer<T> (lhs) <= PeekPointer<T> (rhs);
635 template <
typename T>
638 return PeekPointer<T> (lhs) > PeekPointer<T> (rhs);
641 template <
typename T>
644 return PeekPointer<T> (lhs) >= PeekPointer<T> (rhs);
656 template <
typename T1,
typename T2>
663 template <
typename T1,
typename T2>
670 template <
typename T1,
typename T2>
685 template <
typename T>
692 template <
typename T>
693 Ptr<T>
Copy (Ptr<const T>
object)
695 Ptr<T> p = Ptr<T> (
new T (*
PeekPointer (
object)),
false);
704 template <
typename T>
714 template <
typename T>
720 template <
typename T>
727 template <
typename T>
737 template <
typename T>
743 template <
typename T>
744 template <
typename U>
751 template <
typename T>
760 template <
typename T>
777 template <
typename T>
784 template <
typename T>
791 template <
typename T>
798 template <
typename T>
805 template <
typename T>
812 template <
typename T>
Smart pointer class similar to boost::intrusive_ptr.
Ptr()
Create an empty smart pointer.
bool operator!()
Test for NULL pointer.
U * PeekPointer(const Ptr< U > &p)
Helper for the MakeEvent functions which take a class method.
T * operator->() const
An rvalue member access.
static T & GetReference(Ptr< T > const p)
bool operator>=(const int64x64_t &lhs, const int64x64_t &rhs)
Greater or equal operator.
U * GetPointer(const Ptr< U > &p)
const T & operator*() const
A const dereference.
Ptr< T > & operator=(Ptr const &o)
Assignment operator by referencing the same underlying object.
Trait class to convert a pointer into a reference, used by MemPtrCallBackImpl.
Ptr< T1 > StaticCast(Ptr< T2 > const &p)
Cast a Ptr.
Ptr< T1 > DynamicCast(Ptr< T2 > const &p)
Cast a Ptr.
Helper to test for null pointer.
bool operator!=(Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 > a, Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 > b)
Inequality test.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Ptr< T > Create(void)
Create class instances by constructors with varying numbers of arguments and return them by Ptr...
static T & GetReference(Ptr< T > p)
friend U * GetPointer(const Ptr< U > &p)
Get a permanent pointer to the underlying object.
Ptr< T1 > ConstCast(Ptr< T2 > const &p)
Cast a Ptr.
bool operator>(const int64x64_t &lhs, const int64x64_t &rhs)
Greater operator.
bool operator==(const EventId &a, const EventId &b)
friend U * PeekPointer(const Ptr< U > &p)
Get a temporary pointer to the underlying object.
void Acquire(void) const
Mark this as a a reference by incrementing the reference count.
Ptr< T1 > const_pointer_cast(Ptr< T2 > const &p)
Return a copy of p with its stored pointer const casted from T2 to T1.
void test(void)
Example use of ns3::SystemThread.
Ptr< T > Copy(Ptr< T > object)
Return a deep copy of a Ptr.