[Ns-developers] How to initialize an attribute?

Mathieu Lacage mathieu.lacage at sophia.inria.fr
Sat May 30 22:36:07 PDT 2009


On Fri, 2009-05-29 at 15:18 -0400, Adrian Sai-Wah TAM wrote:
> Thanks a lot. I think this shall be included in the manual.

see tom's commit:

http://code.nsnam.org/ns-3-dev/rev/386665b0e14a

> 
> - Adrian.
> 
> On Fri, May 29, 2009 at 3:02 PM, Mirko Banchi <mk.banchi at gmail.com> wrote:
> > Adrian Sai-Wah TAM ha scritto:
> >> Hi,
> >>
> >> First of all, check the following piece of code:
> >>
> >> ==== 8< ========================
> >> #include "ns3/core-module.h"
> >>
> >> using namespace ns3;
> >> using namespace std;
> >>
> >> class NewObject : public Object
> >> {
> >>   public:
> >>     static TypeId GetTypeId(void) {
> >>       static TypeId tid = TypeId("NewObject")
> >>         .SetParent<ObjectBase> ()
> >>         .AddAttribute ("X", "Just an integer",
> >>                        IntegerValue(99),
> >>                        MakeIntegerAccessor (&NewObject::x),
> >>                        MakeIntegerChecker<int>());
> >>       return tid;
> >>     };
> >>     int GetX() const { return x; };
> >>   private:
> >>     int x;
> >> };
> >>
> >> int main (int argc, char *argv[])
> >> {
> >>   Ptr<NewObject> n = CreateObject<NewObject>();
> >>   cout << n->GetX() << endl;
> >>   return 0;
> >> }
> >> ==== >8 ========================
> >>
> >> This is a very simple program that try to create an object called
> >> NewObject and initialize "x" into 99, by assigning it as an attribute.
> >> However, it doesn't work as expected. What it shows is like a random
> >> junk. Does anyone know what is missing in the above code?
> >>
> >> Cheers,
> >> Adrian.
> >>
> >
> > You have to use NS_OBJECT_ENSURE_REGISTERED (NewObject); macro.
> >
> > Regards,
> >
> > Mirko
> >
> > --
> > Mirko Banchi
> >
> > e-mail:    mk.banchi at gmail.com
> > e-mail:    mk.banchi at virgilio.it
> > id-jabber: mk.banchi at jabber.org
> > id-msn:    mb11684 at hotmail.com
> >
> > PGP key fingerprint:
> >
> > 308F BFB1 4E67 2522 C88E
> > DC69 7631 52ED 32A5 6456
> >
> >
> 



More information about the Ns-developers mailing list