2626
2727#pragma once
2828
29- #include < stdint.h>
3029#include < algorithm>
3130#include < atomic>
31+ #include < cstdint>
3232#include < functional>
3333#include < map>
3434#include < memory>
@@ -265,12 +265,31 @@ class config_context
265265struct partition_configuration_stateless
266266{
267267 partition_configuration &pc;
268- partition_configuration_stateless (partition_configuration &_pc) : pc(_pc) {}
269- std::vector<dsn::host_port> &workers () { return pc.hp_last_drops ; }
270- std::vector<dsn::host_port> &hosts () { return pc.hp_secondaries ; }
271- bool is_host (const host_port &node) const { return utils::contains (pc.hp_secondaries , node); }
272- bool is_worker (const host_port &node) const { return utils::contains (pc.hp_last_drops , node); }
273- bool is_member (const host_port &node) const { return is_host (node) || is_worker (node); }
268+ explicit partition_configuration_stateless (partition_configuration &_pc) : pc(_pc) {}
269+ std::vector<dsn::host_port> &workers ()
270+ {
271+ DCHECK (pc.__isset .hp_last_drops , " " );
272+ return pc.hp_last_drops ;
273+ }
274+ std::vector<dsn::host_port> &hosts ()
275+ {
276+ DCHECK (pc.__isset .hp_secondaries , " " );
277+ return pc.hp_secondaries ;
278+ }
279+ [[nodiscard]] bool is_host (const host_port &node) const
280+ {
281+ DCHECK (pc.__isset .hp_secondaries , " " );
282+ return utils::contains (pc.hp_secondaries , node);
283+ }
284+ [[nodiscard]] bool is_worker (const host_port &node) const
285+ {
286+ DCHECK (pc.__isset .hp_last_drops , " " );
287+ return utils::contains (pc.hp_last_drops , node);
288+ }
289+ [[nodiscard]] bool is_member (const host_port &node) const
290+ {
291+ return is_host (node) || is_worker (node);
292+ }
274293};
275294
276295struct restore_state
@@ -294,30 +313,25 @@ struct restore_state
294313// in `status`.
295314struct split_state
296315{
297- int32_t splitting_count;
316+ int32_t splitting_count{ 0 } ;
298317 // partition_index -> split_status
299318 std::map<int32_t , split_status::type> status;
300- split_state () : splitting_count( 0 ) {}
319+ split_state () = default ;
301320};
302321
303322class app_state ;
304323
305324class app_state_helper
306325{
307326public:
308- app_state *owner;
309- std::atomic_int partitions_in_progress;
327+ app_state *owner{ nullptr } ;
328+ std::atomic_int partitions_in_progress{ 0 } ;
310329 std::vector<config_context> contexts;
311- dsn::message_ex *pending_response;
330+ dsn::message_ex *pending_response{ nullptr } ;
312331 std::vector<restore_state> restore_states;
313332 split_state split_states;
314333
315- public:
316- app_state_helper () : owner(nullptr ), partitions_in_progress(0 )
317- {
318- contexts.clear ();
319- pending_response = nullptr ;
320- }
334+ app_state_helper () = default ;
321335 void on_init_partitions ();
322336 void clear_proposals ()
323337 {
0 commit comments