[Prev][Next][Index][Thread]

# Re: SERVER: Verbing properties

- Date: Sat, 6 Apr 1996 10:26:16 PST
- From:
- Reply-To:

    --- sir@po.cwru.edu wrote:
    >Remember, all -c properties are un-overrideable (I know, it wasn't
    >in the draft, I thought of it yesterday)  thus, if add_verb is called
    >with a verb name that could correspond to a -c verbed property, E_PERM is
    >raised.
    >This means some fundamental properties are stable, with their code
    >readily available.

    This means that I as a nonwizard parent class owner am unable to write
    code which maintains !c properties -- which is about the only kind of
    properties parent class authors can manipulate!
    --- end of quoted material ---

    Huh?  No.  By "overrideable", we don't mean the child having a different value
    than the parent, we mean that the owner of the child (not you and not a wizard)
    cannot make a verb that superceeds your property.

    example:
    (#5 does this)
    ;create(#1,#5)
    => #10
    ;add_property(#10, "quack", "quack", {#5, "r"});
    ;add_property(#10, "moo", "moo!", {#5, "rc"});
    => 0
    (#6 does this)
    ;create(#10, #6)
    => #11
    ;#11.quack = "moo!";
    => E_PERM
    ;add_property(#11, "quack", "moo!", {#6, "r"});
    => E_PERM
    ;add_verb(#11, {#6, "rxd", "_set_quack"}, {"this", "none", "this"});
    => E_PERM
    ;add_verb(#11, {#6, "rxd", "_set_qu*"}, {"this", "none", "this"});
    => E_PERM
    ;#11.moo = "quack";
    => "quack"
    ;add_property(#11, "moo", "quack", {#6, "r"});
    => E_INVARG
    ;add_verb(#11, {#6, "rxd", "_set_moo"}, {"this", "none", "this"});
    => 0
    ;add_verb(#11, {#6, "rxd", "_set_m*"}, {"this", "none", "this"});
    => 0

    I think this has flexibility and security and is compatible with the the
    current system.

- Prev: Re: SERVER: Verbing properties
- Next: Servers and FreeBSD
- Index: MOO-cows
- Thread: MOO-cows

Home | Subject Index | Thread Index