Make ordered_unique out of ordered_non_unique indices

This commit is contained in:
Fabian Schuh 2019-02-07 15:38:19 +01:00
parent c9dd3aea66
commit 9946eab684
No known key found for this signature in database
GPG key ID: F2538A4B282D6238
3 changed files with 55 additions and 8 deletions

View file

@ -247,8 +247,20 @@ typedef multi_index_container<
betting_market_group_object,
indexed_by<
ordered_unique< tag<by_id>, member< object, object_id_type, &object::id > >,
ordered_non_unique< tag<by_event_id>, member<betting_market_group_object, event_id_type, &betting_market_group_object::event_id> >,
ordered_non_unique< tag<by_settling_time>, member<betting_market_group_object, fc::optional<fc::time_point_sec>, &betting_market_group_object::settling_time> >
ordered_unique< tag<by_event_id>,
composite_key<
betting_market_group_object,
member<betting_market_group_object, event_id_type, &betting_market_group_object::event_id>,
member< object, object_id_type, &object::id >
>
>,
ordered_unique< tag<by_settling_time>,
composite_key<
betting_market_group_object,
member<betting_market_group_object, fc::optional<fc::time_point_sec>, &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, betting_market_group_object_multi_index_type> betting_market_group_object_index;
@ -256,7 +268,13 @@ typedef multi_index_container<
betting_market_object,
indexed_by<
ordered_unique< tag<by_id>, member< object, object_id_type, &object::id > >,
ordered_non_unique< tag<by_betting_market_group_id>, member<betting_market_object, betting_market_group_id_type, &betting_market_object::group_id> >
ordered_unique< tag<by_betting_market_group_id>,
composite_key<
betting_market_object,
member<betting_market_object, betting_market_group_id_type, &betting_market_object::group_id>,
member< object, object_id_type, &object::id >
>
>
> > betting_market_object_multi_index_type;
typedef generic_index<betting_market_object, betting_market_object_multi_index_type> betting_market_object_index;
@ -593,7 +611,13 @@ typedef multi_index_container<
indexed_by<
ordered_unique< tag<by_id>, member< object, object_id_type, &object::id > >,
ordered_unique< tag<by_odds>, identity<bet_object>, compare_bet_by_odds >,
ordered_non_unique< tag<by_betting_market_id>, member<bet_object, betting_market_id_type, &bet_object::betting_market_id> >,
ordered_unique< tag<by_betting_market_id>,
composite_key<
bet_object,
member<bet_object, betting_market_id_type, &bet_object::betting_market_id>,
member< object, object_id_type, &object::id >
>
>,
ordered_unique< tag<by_bettor_and_odds>, identity<bet_object>, compare_bet_by_bettor_then_odds > > > bet_object_multi_index_type;
typedef generic_index<bet_object, bet_object_multi_index_type> bet_object_index;

View file

@ -26,6 +26,7 @@
#include <graphene/chain/protocol/types.hpp>
#include <graphene/db/object.hpp>
#include <graphene/db/generic_index.hpp>
#include <boost/multi_index/composite_key.hpp>
namespace graphene { namespace chain {
@ -49,8 +50,15 @@ typedef multi_index_container<
event_group_object,
indexed_by<
ordered_unique< tag<by_id>, member< object, object_id_type, &object::id > >,
ordered_non_unique< tag<by_sport_id>, member< event_group_object, sport_id_type, &event_group_object::sport_id > > >
> event_group_object_multi_index_type;
ordered_unique< tag<by_sport_id>,
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, event_group_object_multi_index_type> event_group_object_index;
} } // graphene::chain

View file

@ -27,6 +27,7 @@
#include <graphene/db/object.hpp>
#include <graphene/db/generic_index.hpp>
#include <graphene/chain/protocol/event.hpp>
#include <boost/multi_index/composite_key.hpp>
namespace graphene { namespace chain {
class event_object;
@ -100,8 +101,22 @@ typedef multi_index_container<
event_object,
indexed_by<
ordered_unique< tag<by_id>, member< object, object_id_type, &object::id > >,
ordered_non_unique< tag<by_event_group_id>, member< event_object, event_group_id_type, &event_object::event_group_id > >,
ordered_non_unique< tag<by_event_status>, const_mem_fun< event_object, event_status, &event_object::get_status > > > > event_object_multi_index_type;
ordered_unique< tag<by_event_group_id>,
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<by_event_status>,
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, event_object_multi_index_type> event_object_index;