28 #ifndef Hypertable_Lib_RangeServerRecovery_ServerReceiverPlan_h
29 #define Hypertable_Lib_RangeServerRecovery_ServerReceiverPlan_h
39 #include <boost/multi_index_container.hpp>
40 #include <boost/multi_index/ordered_index.hpp>
41 #include <boost/multi_index/member.hpp>
42 #include <boost/multi_index/mem_fun.hpp>
48 namespace RangeServerRecovery {
64 spec.table.id = arena.
dup(table_.
id);
67 spec.range.end_row = arena.
dup(range_.
end_row);
68 state.state = state_.
state;
82 os <<
"{ServerReceiverPlan:" << entry.
spec << entry.
state <<
", location="
91 uint8_t encoding_version()
const override;
96 size_t encoded_length_internal()
const override;
100 void encode_internal(uint8_t **bufp)
const override;
108 void decode_internal(uint8_t version,
const uint8_t **bufp,
109 size_t *remainp)
override;
115 typedef multi_index_container<
118 ordered_unique<tag<ServerReceiverPlanByRange>, member<ServerReceiverPlan, QualifiedRangeSpec, &ServerReceiverPlan::spec> >,
119 ordered_non_unique<tag<ServerReceiverPlanByLocation>, member<ServerReceiverPlan, string, &ServerReceiverPlan::location> >
129 #endif // Hypertable_Lib_RangeServerRecovery_ServerReceiverPlan_h
Declarations for TableIdentifier and TableIdentifierManaged.
uint64_t soft_limit
Soft split size limit.
PageArena memory allocator for STL classes.
const char * old_boundary_row
Original range boundary row.
CharT * dup(const CharT *s)
Duplicate a null terminated string; memory is allocated from the pool.
Declarations for QualifiedRangeSpec and QualifiedRangeSpecManaged.
ostream & operator<<(ostream &os, const CellInterval &ci)
ServerReceiverPlan(CharArena &arena, const string &location_, const TableIdentifier &table_, const RangeSpec &range_, const RangeState &state_)
const char * transfer_log
Full pathname of transfer log.
The PageArena allocator is simple and fast, avoiding individual mallocs/frees.
uint8_t state
Range state value (see StateType)
int64_t timestamp
Timestamp
Declarations for RangeSpec and RangeSpecManaged.
Declarations for Serializable.
ServerReceiverPlanContainer::index< ServerReceiverPlanByRange >::type ServerReceiverPlanRangeIndex
Mixin class that provides a standard serialization interface.
const char * split_point
Split point (row key)
Qualified (with table identifier) range specification.
ServerReceiverPlanContainer::index< ServerReceiverPlanByLocation >::type ServerReceiverPlanLocationIndex
String extensions and helpers: sets, maps, append operators etc.
multi_index_container< ServerReceiverPlan, indexed_by< ordered_unique< tag< ServerReceiverPlanByRange >, member< ServerReceiverPlan, QualifiedRangeSpec,&ServerReceiverPlan::spec > >, ordered_non_unique< tag< ServerReceiverPlanByLocation >, member< ServerReceiverPlan, string,&ServerReceiverPlan::location > > > > ServerReceiverPlanContainer