From 9946eab684ca7a0bd809904fd635a66fd7d662fe Mon Sep 17 00:00:00 2001 From: Fabian Schuh Date: Thu, 7 Feb 2019 15:38:19 +0100 Subject: [PATCH] Make ordered_unique out of ordered_non_unique indices --- .../graphene/chain/betting_market_object.hpp | 32 ++++++++++++++++--- .../graphene/chain/event_group_object.hpp | 12 +++++-- .../include/graphene/chain/event_object.hpp | 19 +++++++++-- 3 files changed, 55 insertions(+), 8 deletions(-) diff --git a/libraries/chain/include/graphene/chain/betting_market_object.hpp b/libraries/chain/include/graphene/chain/betting_market_object.hpp index 98015439..5cdae7b7 100644 --- a/libraries/chain/include/graphene/chain/betting_market_object.hpp +++ b/libraries/chain/include/graphene/chain/betting_market_object.hpp @@ -247,8 +247,20 @@ typedef multi_index_container< betting_market_group_object, indexed_by< ordered_unique< tag, member< object, object_id_type, &object::id > >, - ordered_non_unique< tag, member >, - ordered_non_unique< tag, member, &betting_market_group_object::settling_time> > + ordered_unique< tag, + composite_key< + betting_market_group_object, + member, + member< object, object_id_type, &object::id > + > + >, + ordered_unique< tag, + composite_key< + betting_market_group_object, + member, &betting_market_group_object::settling_time>, + member< object, object_id_type, &object::id > + > + > > > betting_market_group_object_multi_index_type; typedef generic_index betting_market_group_object_index; @@ -256,7 +268,13 @@ typedef multi_index_container< betting_market_object, indexed_by< ordered_unique< tag, member< object, object_id_type, &object::id > >, - ordered_non_unique< tag, member > + ordered_unique< tag, + composite_key< + betting_market_object, + member, + member< object, object_id_type, &object::id > + > + > > > betting_market_object_multi_index_type; typedef generic_index betting_market_object_index; @@ -593,7 +611,13 @@ typedef multi_index_container< indexed_by< ordered_unique< tag, member< object, object_id_type, &object::id > >, ordered_unique< tag, identity, compare_bet_by_odds >, - ordered_non_unique< tag, member >, + ordered_unique< tag, + composite_key< + bet_object, + member, + member< object, object_id_type, &object::id > + > + >, ordered_unique< tag, identity, compare_bet_by_bettor_then_odds > > > bet_object_multi_index_type; typedef generic_index bet_object_index; diff --git a/libraries/chain/include/graphene/chain/event_group_object.hpp b/libraries/chain/include/graphene/chain/event_group_object.hpp index c618ba2a..db4e7818 100644 --- a/libraries/chain/include/graphene/chain/event_group_object.hpp +++ b/libraries/chain/include/graphene/chain/event_group_object.hpp @@ -26,6 +26,7 @@ #include #include #include +#include namespace graphene { namespace chain { @@ -49,8 +50,15 @@ typedef multi_index_container< event_group_object, indexed_by< ordered_unique< tag, member< object, object_id_type, &object::id > >, - ordered_non_unique< tag, member< event_group_object, sport_id_type, &event_group_object::sport_id > > > - > event_group_object_multi_index_type; + ordered_unique< tag, + composite_key< + event_group_object, + member< event_group_object, sport_id_type, &event_group_object::sport_id >, + member< object, object_id_type, &object::id > + > + > + > +> event_group_object_multi_index_type; typedef generic_index event_group_object_index; } } // graphene::chain diff --git a/libraries/chain/include/graphene/chain/event_object.hpp b/libraries/chain/include/graphene/chain/event_object.hpp index 6f189d92..60391bc3 100644 --- a/libraries/chain/include/graphene/chain/event_object.hpp +++ b/libraries/chain/include/graphene/chain/event_object.hpp @@ -27,6 +27,7 @@ #include #include #include +#include namespace graphene { namespace chain { class event_object; @@ -100,8 +101,22 @@ typedef multi_index_container< event_object, indexed_by< ordered_unique< tag, member< object, object_id_type, &object::id > >, - ordered_non_unique< tag, member< event_object, event_group_id_type, &event_object::event_group_id > >, - ordered_non_unique< tag, const_mem_fun< event_object, event_status, &event_object::get_status > > > > event_object_multi_index_type; + ordered_unique< tag, + composite_key< + event_object, + member< event_object, event_group_id_type, &event_object::event_group_id >, + member< object, object_id_type, &object::id > + > + >, + ordered_unique< tag, + composite_key< + event_object, + const_mem_fun< event_object, event_status, &event_object::get_status >, + member< object, object_id_type, &object::id > + > + > + > +> event_object_multi_index_type; typedef generic_index event_object_index;