From: Vladislav Shpilevoy <v.shpilevoy@tarantool.org> To: Konstantin Osipov <kostja@tarantool.org> Cc: tarantool-patches@freelists.org Subject: [tarantool-patches] Re: [PATCH 5/5] swim: expose Lua triggers on member update Date: Sat, 8 Jun 2019 21:52:06 +0200 [thread overview] Message-ID: <bf1b9b39-f414-0dd1-8a69-4f5dd8af4fb5@tarantool.org> (raw) In-Reply-To: <20190608142753.GJ31327@atlas> On 08/06/2019 17:27, Konstantin Osipov wrote: > * Vladislav Shpilevoy <v.shpilevoy@tarantool.org> [19/06/03 14:33]: >> >> Events object has methods to help a user to determine what update >> has happened. >> ```Lua >> local function on_update(member, events, ctx) >> if events:is_new() then > > This doesn't look proper English to me, events is plural, is_new() > is used for singular case. It is either an event_mask, or an event > list/set, but not something in the middle. Yes, probably you are right. I thing, 'eventset' or even just 'event' are good. See below why I avoid integers, masks, etc in public API. > > What about: > > event_mask:has(...)? >> + enum swim_ev_mask { >> + SWIM_EV_NEW = 0b00000001, >> + SWIM_EV_NEW_STATUS = 0b00000010, >> + SWIM_EV_NEW_URI = 0b00000100, >> + SWIM_EV_NEW_INCARNATION = 0b00001000, >> + SWIM_EV_NEW_PAYLOAD = 0b00010000, >> + SWIM_EV_UPDATE = 0b00011110, >> + SWIM_EV_DROP = 0b00100000, >> + }; > > Or simply export these objects to Lua and let users play with > them. > This is exactly what I was trying to avoid with all these mask metamethods. I want to be able in future to add old values of updated member attributes, if it will be necessary. It will be easy without breaking the old code, if from now we will return just an abstract 'events' object with some metamethods. Also probably in future we will not return the events as a mask. So I don't want to expose swim_ev_mask to Lua API. I've fixed the documentation with 'events' -> 'event' rename. Just treat the object as a complex event from multiple parts.
next prev parent reply other threads:[~2019-06-08 19:52 UTC|newest] Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-06-02 0:00 [tarantool-patches] [PATCH 0/5] SWIM on_member_update Vladislav Shpilevoy 2019-06-02 0:00 ` [tarantool-patches] [PATCH 1/5] test: create isolated ev_loop for swim unit tests Vladislav Shpilevoy 2019-06-05 6:51 ` [tarantool-patches] " Konstantin Osipov 2019-06-05 21:53 ` Vladislav Shpilevoy 2019-06-08 14:24 ` Konstantin Osipov 2019-06-02 0:00 ` [tarantool-patches] [PATCH 2/5] swim: fix a 'use after free' in SWIM tests Vladislav Shpilevoy 2019-06-05 6:52 ` [tarantool-patches] " Konstantin Osipov 2019-06-02 0:00 ` [tarantool-patches] [PATCH 3/5] swim: allow to hang triggers on member updates Vladislav Shpilevoy 2019-06-05 7:11 ` [tarantool-patches] " Konstantin Osipov 2019-06-05 21:53 ` Vladislav Shpilevoy 2019-06-07 13:35 ` Konstantin Osipov 2019-06-02 0:00 ` [tarantool-patches] [PATCH 4/5] swim: call swim:new/delete via Lua C, not via FFI Vladislav Shpilevoy 2019-06-08 14:24 ` [tarantool-patches] " Konstantin Osipov 2019-06-02 0:10 ` [tarantool-patches] [PATCH 5/5] swim: expose Lua triggers on member update Vladislav Shpilevoy 2019-06-05 21:54 ` [tarantool-patches] " Vladislav Shpilevoy 2019-06-08 14:29 ` Konstantin Osipov [not found] ` <12b8ea76f7c1cd100a80ddcea3c29d20354e073e.1559433539.git.v.shpilevoy@tarantool.org> 2019-06-08 14:27 ` Konstantin Osipov 2019-06-08 19:52 ` Vladislav Shpilevoy [this message] 2019-06-09 5:15 ` Konstantin Osipov 2019-06-09 16:41 ` Vladislav Shpilevoy
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=bf1b9b39-f414-0dd1-8a69-4f5dd8af4fb5@tarantool.org \ --to=v.shpilevoy@tarantool.org \ --cc=kostja@tarantool.org \ --cc=tarantool-patches@freelists.org \ --subject='[tarantool-patches] Re: [PATCH 5/5] swim: expose Lua triggers on member update' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox