Go to the documentation of this file.
16 #ifndef STORAGES_RT_MUTABLE_GRAPH_CSR_NBR_H_
17 #define STORAGES_RT_MUTABLE_GRAPH_CSR_NBR_H_
19 #include "grape/types.h"
28 template <
typename EDATA_T>
47 bool exists()
const {
return neighbor != std::numeric_limits<vid_t>::max(); }
66 const Date& get_data()
const {
return data; }
67 vid_t get_neighbor()
const {
return neighbor; }
69 void set_data(
const Date& val) { data = val; }
70 void set_neighbor(
vid_t neighbor) { this->neighbor = neighbor; }
72 bool exists()
const {
return neighbor != std::numeric_limits<vid_t>::max(); }
99 template <
typename EDATA_T>
137 :
ptr_(ptr), column_(column) {}
143 const ColumnNbr&
operator=(
const ColumnNbr& nbr)
const {
171 : slice_(slice), column_(column) {}
173 : slice_(rhs.slice_), column_(rhs.column_) {}
176 int size()
const {
return slice_.size(); }
180 const ColumnNbr
begin()
const {
return ColumnNbr(slice_.begin(), column_); }
181 const ColumnNbr
end()
const {
return ColumnNbr(slice_.end(), column_); }
203 :
ptr_(ptr), table_(table) {}
235 : slice_(slice), table_(table) {}
237 : slice_(rhs.slice_), table_(rhs.table_) {}
240 int size()
const {
return slice_.size(); }
244 const TableNbr
begin()
const {
return TableNbr(slice_.begin(), table_); }
245 const TableNbr
end()
const {
return TableNbr(slice_.end(), table_); }
257 template <
typename EDATA_T>
317 template <
typename EDATA_T>
350 struct MutableTableNbr {
355 :
ptr_(ptr), table_(table) {}
360 const MutableTableNbr&
operator*()
const {
return *
this; }
362 const MutableTableNbr&
operator=(
const MutableTableNbr& nbr)
const {
367 return ptr_ == nbr.ptr_;
370 return ptr_ != nbr.ptr_;
383 return ptr_ - nbr.ptr_;
386 bool operator<(
const MutableTableNbr& nbr)
const {
return ptr_ < nbr.ptr_; }
394 : slice_(slice), table_(table) {}
396 : slice_(rhs.slice_), table_(rhs.table_) {}
400 int size()
const {
return slice_.size(); }
405 const MutableTableNbr
begin()
const {
406 return MutableTableNbr(slice_.begin(), table_);
409 const MutableTableNbr
end()
const {
410 return MutableTableNbr(slice_.end(), table_);
423 struct MutableColumnNbr {
428 :
ptr_(ptr), column_(column) {}
433 const MutableColumnNbr&
operator*()
const {
return *
this; }
435 const MutableColumnNbr&
operator=(
const MutableColumnNbr& nbr)
const {
440 return ptr_ == nbr.ptr_;
443 return ptr_ != nbr.ptr_;
456 return ptr_ - nbr.ptr_;
460 return ptr_ < nbr.ptr_;
469 : slice_(slice), column_(column) {}
471 : slice_(rhs.slice_), column_(rhs.column_) {}
474 int size()
const {
return slice_.size(); }
478 const MutableColumnNbr
begin()
const {
479 return MutableColumnNbr(slice_.begin(), column_);
481 const MutableColumnNbr
end()
const {
482 return MutableColumnNbr(slice_.end(), column_);
495 template <
typename EDATA_T>
526 struct MutableColumnNbr {
530 :
ptr_(ptr), column_(column) {}
535 return column_.get_view(
ptr_->
data);
547 const MutableColumnNbr&
operator*()
const {
return *
this; }
549 MutableColumnNbr&
operator=(
const MutableColumnNbr& nbr) {
554 return ptr_ == nbr.ptr_;
557 return ptr_ != nbr.ptr_;
577 : slice_(slice), column_(column) {}
580 int size()
const {
return slice_.size(); }
584 MutableColumnNbr
begin() {
return MutableColumnNbr(slice_.begin(), column_); }
585 MutableColumnNbr
end() {
return MutableColumnNbr(slice_.end(), column_); }
600 struct MutableTableNbr {
612 for (
size_t i = 0; i < r.
len; ++i) {
615 grape::OutArchive out;
616 out.SetSlice(in.GetBuffer(), in.GetSize());
624 const MutableTableNbr&
operator*()
const {
return *
this; }
628 MutableTableNbr&
operator=(
const MutableTableNbr& nbr) {
633 return ptr_ == nbr.ptr_;
636 return ptr_ != nbr.ptr_;
648 return ptr_ - nbr.ptr_;
659 : slice_(slice), table_(table) {}
662 int size()
const {
return slice_.size(); }
680 #endif // STORAGES_RT_MUTABLE_GRAPH_CSR_NBR_H_
bool operator!=(const TableNbr &nbr) const
Definition: nbr.h:214
MutableNbrSlice(const MutableNbrSlice &rhs)
Definition: nbr.h:470
timestamp_t get_timestamp() const
Definition: nbr.h:309
void set_neighbor(vid_t neighbor)
Definition: nbr.h:45
nbr_t * ptr_
Definition: nbr.h:571
ImmutableNbr(const ImmutableNbr &rhs)
Definition: nbr.h:31
void set_size(int size)
Definition: nbr.h:503
MutableColumnNbr & operator++()
Definition: nbr.h:560
MutableNbrSliceMut(MutableNbrSliceMut< size_t > slice, StringColumn &column)
Definition: nbr.h:576
const_nbr_ptr_t ptr_
Definition: nbr.h:388
timestamp_t get_timestamp() const
Definition: nbr.h:275
const_nbr_ptr_t ptr_
Definition: nbr.h:343
Table & table_
Definition: nbr.h:676
void set_data(const Record &r, timestamp_t ts)
Definition: nbr.h:610
MutableNbrSlice< size_t > slice_
Definition: nbr.h:491
const MutableColumnNbr & operator*() const
Definition: nbr.h:547
const MutableTableNbr & operator++() const
Definition: nbr.h:639
void set_data(const EDATA_T &val, timestamp_t ts)
Definition: nbr.h:277
void set_begin(MutableNbr< size_t > *ptr)
Definition: nbr.h:582
const MutableTableNbr begin() const
Definition: nbr.h:405
bool operator<(const MutableColumnNbr &nbr) const
Definition: nbr.h:459
const MutableTableNbr end() const
Definition: nbr.h:409
MutableColumnNbr nbr_ptr_t
Definition: nbr.h:574
uint32_t timestamp_t
Definition: types.h:30
const Table & table_
Definition: nbr.h:230
void set_size(int size)
Definition: nbr.h:327
const ColumnNbr & operator++() const
Definition: nbr.h:149
const MutableTableNbr & operator++() const
Definition: nbr.h:372
void set_timestamp(timestamp_t ts)
Definition: nbr.h:306
void set_begin(const_nbr_ptr_t ptr)
Definition: nbr.h:330
bool operator==(const TableNbr &nbr) const
Definition: nbr.h:213
int field_num() const
Definition: nbr.h:401
vid_t neighbor
Definition: nbr.h:94
nbr_ptr_t end()
Definition: nbr.h:668
vid_t get_neighbor() const
Definition: nbr.h:429
const TableNbr begin() const
Definition: nbr.h:244
const StringColumn & column_
Definition: nbr.h:492
timestamp_t get_timestamp() const
Definition: nbr.h:357
const_nbr_ptr_t ptr_
Definition: nbr.h:229
void set_begin(const_nbr_ptr_t ptr)
Definition: nbr.h:112
const Table & table_
Definition: nbr.h:389
vid_t get_neighbor() const
Definition: nbr.h:356
uint32_t vid_t
Definition: types.h:31
MutableColumnNbr & operator=(const MutableColumnNbr &nbr)
Definition: nbr.h:549
Table & table_
Definition: nbr.h:654
vid_t neighbor
Definition: nbr.h:49
MutableNbrSlice()
Definition: nbr.h:322
const MutableTableNbr & operator=(const MutableTableNbr &nbr) const
Definition: nbr.h:362
const_nbr_ptr_t ptr_
Definition: nbr.h:125
size_t operator-(const ColumnNbr &nbr) const
Definition: nbr.h:159
nbr_t * end()
Definition: nbr.h:509
int size_
Definition: nbr.h:344
static ImmutableNbrSlice empty(const Table &table)
Definition: nbr.h:247
size_t operator-(const MutableTableNbr &nbr) const
Definition: nbr.h:647
std::atomic< timestamp_t > timestamp
Definition: nbr.h:312
const TableNbr * operator->() const
Definition: nbr.h:208
MutableNbr & operator=(const MutableNbr &rhs)
Definition: nbr.h:266
const MutableColumnNbr & operator++() const
Definition: nbr.h:445
MutableNbr(const MutableNbr &rhs)
Definition: nbr.h:260
const MutableColumnNbr begin() const
Definition: nbr.h:478
int size() const
Definition: nbr.h:504
const MutableColumnNbr & operator*() const
Definition: nbr.h:433
void set_size(int size)
Definition: nbr.h:661
vid_t get_neighbor() const
Definition: nbr.h:138
Definition: adj_list.h:23
MutableNbrSlice(MutableNbrSlice< size_t > slice, const StringColumn &column)
Definition: nbr.h:468
bool operator<(const MutableTableNbr &nbr)
Definition: nbr.h:651
StringColumn & column_
Definition: nbr.h:572
nbr_t * ptr_
Definition: nbr.h:653
const TableNbr & operator+=(size_t n) const
Definition: nbr.h:220
bool operator!=(const MutableTableNbr &nbr) const
Definition: nbr.h:635
const MutableTableNbr const_nbr_t
Definition: nbr.h:391
const EDATA_T & get_data() const
Definition: nbr.h:41
static MutableNbrSlice empty(const Table &table)
Definition: nbr.h:412
const MutableColumnNbr * operator->() const
Definition: nbr.h:434
const MutableTableNbr & operator*() const
Definition: nbr.h:624
void set_data(const grape::EmptyType &, timestamp_t ts)
Definition: nbr.h:302
const_nbr_ptr_t begin() const
Definition: nbr.h:332
std::atomic< timestamp_t > timestamp
Definition: nbr.h:285
const_nbr_ptr_t end() const
Definition: nbr.h:115
const ColumnNbr & operator+=(size_t n) const
Definition: nbr.h:154
MutableColumnNbr & operator*()
Definition: nbr.h:548
RecordView get_data() const
Definition: nbr.h:608
timestamp_t get_timestamp() const
Definition: nbr.h:537
static ImmutableNbrSlice empty()
Definition: nbr.h:117
ImmutableNbrSlice()=default
void set_begin(const ImmutableNbr< size_t > *ptr)
Definition: nbr.h:242
int size() const
Definition: nbr.h:176
void set_neighbor(vid_t neighbor)
Definition: nbr.h:90
bool operator==(const MutableColumnNbr &nbr) const
Definition: nbr.h:439
size_t len
Definition: types.h:330
vid_t get_neighbor() const
Definition: nbr.h:274
bool operator==(const MutableTableNbr &nbr) const
Definition: nbr.h:366
const ColumnNbr & operator=(const ColumnNbr &nbr) const
Definition: nbr.h:143
const TableNbr end() const
Definition: nbr.h:245
Any * props
Definition: types.h:331
TableNbr(const_nbr_ptr_t ptr, const Table &table)
Definition: nbr.h:202
size_t operator-(const MutableTableNbr &nbr) const
Definition: nbr.h:382
void set_size(int size)
Definition: nbr.h:109
void set_timestamp(timestamp_t ts)
Definition: nbr.h:282
void set_neighbor(vid_t neighbor)
Definition: nbr.h:543
static ImmutableNbrSlice empty(const StringColumn &column)
Definition: nbr.h:183
const Table & table_
Definition: nbr.h:417
const MutableTableNbr & operator+=(size_t n) const
Definition: nbr.h:643
const_nbr_ptr_t end() const
Definition: nbr.h:333
EDATA_T data
Definition: nbr.h:286
const ColumnNbr const_nbr_t
Definition: nbr.h:166
const StringColumn & column_
Definition: nbr.h:464
MutableColumnNbr(const_nbr_ptr_t ptr, const StringColumn &column)
Definition: nbr.h:427
vid_t neighbor
Definition: nbr.h:310
bool operator<(const TableNbr &nbr) const
Definition: nbr.h:227
ImmutableNbrSlice(const ImmutableNbrSlice &rhs)
Definition: nbr.h:236
void set_neighbor(vid_t neighbor)
Definition: nbr.h:281
bool exists() const
Definition: nbr.h:47
const std::string_view get_data() const
Definition: nbr.h:534
MutableNbrSliceMut(MutableNbrSliceMut< size_t > slice, Table &table)
Definition: nbr.h:658
bool operator!=(const MutableColumnNbr &nbr) const
Definition: nbr.h:556
void set_timestamp(timestamp_t ts)
Definition: nbr.h:545
vid_t get_neighbor() const
Definition: nbr.h:42
const MutableTableNbr * operator->() const
Definition: nbr.h:361
~ImmutableNbrSlice()=default
bool operator!=(const MutableColumnNbr &nbr) const
Definition: nbr.h:442
MutableTableNbr(const_nbr_ptr_t ptr, const Table &table)
Definition: nbr.h:354
const_nbr_ptr_t begin() const
Definition: nbr.h:114
static MutableNbrSlice empty(const StringColumn &column)
Definition: nbr.h:485
timestamp_t get_timestamp() const
Definition: nbr.h:606
bool operator<(const MutableColumnNbr &nbr)
Definition: nbr.h:569
vid_t get_neighbor() const
Definition: nbr.h:92
ImmutableNbrSlice(const StringColumn &column)
Definition: nbr.h:168
const TableNbr const_nbr_t
Definition: nbr.h:232
const StringColumn & column_
Definition: nbr.h:164
timestamp_t get_timestamp() const
Definition: nbr.h:431
int size() const
Definition: nbr.h:400
struct __attribute__((packed)) ImmutableNbr< Date >
Definition: nbr.h:54
void set_data(const EDATA_T &val)
Definition: nbr.h:44
int size() const
Definition: nbr.h:580
void set_data(const std::string_view &sw, timestamp_t ts)
Definition: nbr.h:539
static MutableNbrSliceMut empty(Table &table)
Definition: nbr.h:670
MutableNbrSlice(MutableNbrSlice< size_t > slice, const Table &table)
Definition: nbr.h:393
const MutableColumnNbr & operator=(const MutableColumnNbr &nbr) const
Definition: nbr.h:435
RecordView get_data() const
Definition: nbr.h:205
MutableColumnNbr(nbr_t *ptr, StringColumn &column)
Definition: nbr.h:529
bool operator!=(const ColumnNbr &nbr) const
Definition: nbr.h:148
EDATA_T data
Definition: nbr.h:50
~MutableNbrSliceMut()=default
const MutableTableNbr & operator*() const
Definition: nbr.h:360
const MutableTableNbr * operator->() const
Definition: nbr.h:626
MutableNbr & operator=(const MutableNbr &rhs)
Definition: nbr.h:296
size_t get_index() const
Definition: nbr.h:607
ImmutableNbrSlice(const ImmutableNbrSlice< size_t > &slice, const Table &table)
Definition: nbr.h:234
void set_begin(const MutableNbr< size_t > *ptr)
Definition: nbr.h:476
bool operator==(const ColumnNbr &nbr) const
Definition: nbr.h:147
void set_begin(nbr_t *ptr)
Definition: nbr.h:506
void set_size(int size)
Definition: nbr.h:175
const TableNbr & operator=(const TableNbr &nbr) const
Definition: nbr.h:209
vid_t get_neighbor() const
Definition: nbr.h:605
bool operator<(const MutableTableNbr &nbr) const
Definition: nbr.h:386
void set_size(int size)
Definition: nbr.h:239
const StringColumn & column_
Definition: nbr.h:192
const TableNbr & operator++() const
Definition: nbr.h:215
int size() const
Definition: nbr.h:240
grape::EmptyType data
Definition: nbr.h:95
const ColumnNbr * operator->() const
Definition: nbr.h:142
ImmutableNbrSlice< size_t > slice_
Definition: nbr.h:191
const MutableColumnNbr const_nbr_ptr_t
Definition: nbr.h:467
size_t operator-(const TableNbr &nbr) const
Definition: nbr.h:225
vid_t neighbor
Definition: nbr.h:284
bool operator==(const MutableTableNbr &nbr) const
Definition: nbr.h:632
const MutableColumnNbr end() const
Definition: nbr.h:481
const TableNbr const_nbr_ptr_t
Definition: nbr.h:233
std::string_view get_data() const
Definition: nbr.h:430
MutableTableNbr & operator*()
Definition: nbr.h:625
Definition: loading_config.h:232
bool operator!=(const MutableTableNbr &nbr) const
Definition: nbr.h:369
const Table & table_
Definition: nbr.h:254
vid_t get_neighbor() const
Definition: nbr.h:204
MutableNbrSliceMut< size_t > slice_
Definition: nbr.h:593
int size() const
Definition: nbr.h:474
vid_t neighbor() const
Definition: nbr.h:604
void set_data(const grape::EmptyType &)
Definition: nbr.h:89
void set_begin(MutableNbr< size_t > *ptr)
Definition: nbr.h:665
MutableTableNbr nbr_ptr_t
Definition: nbr.h:656
~MutableNbrSlice()=default
ImmutableNbrSlice(const ImmutableNbrSlice &rhs)
Definition: nbr.h:105
vid_t get_neighbor() const
Definition: nbr.h:533
grape::EmptyType data
Definition: nbr.h:313
const ColumnNbr & operator*() const
Definition: nbr.h:141
void set_neighbor(vid_t neighbor)
Definition: nbr.h:305
MutableNbrSliceMut()
Definition: nbr.h:500
ColumnNbr(const_nbr_ptr_t ptr, const StringColumn &column)
Definition: nbr.h:136
nbr_t * begin()
Definition: nbr.h:508
void set_neighbor(vid_t neighbor)
Definition: nbr.h:620
const EDATA_T & get_data() const
Definition: nbr.h:273
std::string_view get_data() const
Definition: nbr.h:139
const TableNbr & operator*() const
Definition: nbr.h:207
ImmutableNbrSlice(const ImmutableNbrSlice &rhs)
Definition: nbr.h:172
MutableNbrSlice< size_t > slice_
Definition: nbr.h:416
vid_t get_neighbor() const
Definition: nbr.h:308
MutableNbr(const MutableNbr &rhs)
Definition: nbr.h:292
ImmutableNbrSlice< size_t > slice_
Definition: nbr.h:253
size_t operator-(const MutableColumnNbr &nbr) const
Definition: nbr.h:455
ImmutableNbr & operator=(const ImmutableNbr &rhs)
Definition: nbr.h:35
size_t get_index() const
Definition: nbr.h:538
ImmutableNbrSlice(const ImmutableNbrSlice< size_t > &slice, const StringColumn &column)
Definition: nbr.h:169
const grape::EmptyType & get_data() const
Definition: nbr.h:307
MutableTableNbr & operator=(const MutableTableNbr &nbr)
Definition: nbr.h:628
nbr_ptr_t begin()
Definition: nbr.h:667
MutableNbrSlice(const MutableNbrSlice &rhs)
Definition: nbr.h:323
const MutableTableNbr & operator+=(size_t n) const
Definition: nbr.h:377
void set_size(int size)
Definition: nbr.h:579
int size() const
Definition: nbr.h:328
nbr_t * ptr_
Definition: nbr.h:519
ImmutableNbr & operator=(const ImmutableNbr &rhs)
Definition: nbr.h:84
const MutableColumnNbr & operator+=(size_t n) const
Definition: nbr.h:450
const_nbr_ptr_t ptr_
Definition: nbr.h:163
int field_num() const
Definition: nbr.h:663
static MutableNbrSlice empty()
Definition: nbr.h:335
void set_begin(const ImmutableNbr< size_t > *ptr)
Definition: nbr.h:178
static MutableNbrSliceMut empty()
Definition: nbr.h:511
void set_size(int size)
Definition: nbr.h:473
MutableColumnNbr & operator+=(size_t n)
Definition: nbr.h:564
const MutableTableNbr const_nbr_ptr_t
Definition: nbr.h:392
int size() const
Definition: nbr.h:110
MutableNbrSliceMut< size_t > slice_
Definition: nbr.h:675
void set_timestamp(timestamp_t ts)
Definition: nbr.h:622
static MutableNbrSliceMut empty(StringColumn &column)
Definition: nbr.h:587
StringColumn & column_
Definition: nbr.h:594
bool operator==(const MutableColumnNbr &nbr) const
Definition: nbr.h:553
std::string_view data()
Definition: nbr.h:532
void set_begin(const MutableNbr< size_t > *ptr)
Definition: nbr.h:403
int size_
Definition: nbr.h:520
RecordView get_data() const
Definition: nbr.h:358
int size_
Definition: nbr.h:126
MutableTableNbr * operator->()
Definition: nbr.h:627
MutableColumnNbr end()
Definition: nbr.h:585
ImmutableNbr(const ImmutableNbr &rhs)
Definition: nbr.h:81
bool operator<(const ColumnNbr &nbr) const
Definition: nbr.h:161
const ColumnNbr end() const
Definition: nbr.h:181
const ColumnNbr const_nbr_ptr_t
Definition: nbr.h:167
MutableNbrSlice(const MutableNbrSlice &rhs)
Definition: nbr.h:395
MutableTableNbr(nbr_t *ptr, Table &table)
Definition: nbr.h:603
int size() const
Definition: nbr.h:662
MutableColumnNbr begin()
Definition: nbr.h:584
vid_t neighbor() const
Definition: nbr.h:531
const_nbr_ptr_t ptr_
Definition: nbr.h:463
const grape::EmptyType & get_data() const
Definition: nbr.h:91
const ColumnNbr begin() const
Definition: nbr.h:180
void set_size(int size)
Definition: nbr.h:399
const MutableColumnNbr const_nbr_t
Definition: nbr.h:466