[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