@@ -61,7 +61,7 @@ class database_api_impl : public std::enable_shared_from_this<database_api_impl>
61
61
void set_subscribe_callback ( std::function<void (const variant&)> cb, bool notify_remove_create );
62
62
void set_pending_transaction_callback ( std::function<void (const variant&)> cb );
63
63
void set_block_applied_callback ( std::function<void (const variant& block_id)> cb );
64
- void cancel_all_subscriptions ();
64
+ void cancel_all_subscriptions (bool reset_callback, bool reset_market_subscriptions );
65
65
66
66
// Blocks and transactions
67
67
optional<block_header> get_block_header (uint32_t block_num)const ;
@@ -358,16 +358,10 @@ void database_api_impl::set_subscribe_callback( std::function<void(const variant
358
358
" Subscribing to universal object creation and removal is disallowed in this server." );
359
359
}
360
360
361
+ cancel_all_subscriptions (false , false );
362
+
361
363
_subscribe_callback = cb;
362
364
_notify_remove_create = notify_remove_create;
363
- _subscribed_accounts.clear ();
364
-
365
- static fc::bloom_parameters param;
366
- param.projected_element_count = 10000 ;
367
- param.false_positive_probability = 1.0 /100 ;
368
- param.maximum_size = 1024 *8 *8 *2 ;
369
- param.compute_optimal_parameters ();
370
- _subscribe_filter = fc::bloom_filter (param);
371
365
}
372
366
373
367
void database_api::set_pending_transaction_callback ( std::function<void (const variant&)> cb )
@@ -392,13 +386,21 @@ void database_api_impl::set_block_applied_callback( std::function<void(const var
392
386
393
387
void database_api::cancel_all_subscriptions ()
394
388
{
395
- my->cancel_all_subscriptions ();
389
+ my->cancel_all_subscriptions (true , true );
396
390
}
397
391
398
- void database_api_impl::cancel_all_subscriptions ()
392
+ void database_api_impl::cancel_all_subscriptions ( bool reset_callback, bool reset_market_subscriptions )
399
393
{
400
- set_subscribe_callback ( std::function<void (const fc::variant&)>(), true );
401
- _market_subscriptions.clear ();
394
+ if ( reset_callback )
395
+ _subscribe_callback = std::function<void (const fc::variant&)>();
396
+
397
+ if ( reset_market_subscriptions )
398
+ _market_subscriptions.clear ();
399
+
400
+ _notify_remove_create = false ;
401
+ _subscribed_accounts.clear ();
402
+ static fc::bloom_parameters param (10000 , 1.0 /100 , 1024 *8 *8 *2 );
403
+ _subscribe_filter = fc::bloom_filter (param);
402
404
}
403
405
404
406
// ////////////////////////////////////////////////////////////////////
0 commit comments