MCPcopy Create free account
hub / github.com/apache/fory / bind_buffer

Method bind_buffer

python/pyfory/cpp/pyfory.cc:427–462  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

425 Buffer &get_buffer() override { return *buffer_; }
426
427 void bind_buffer(Buffer *buffer) override {
428 Buffer *target = buffer == nullptr ? owned_buffer_.get() : buffer;
429 if (target == nullptr) {
430 if (buffer_ != nullptr) {
431 buffer_->input_stream_ = nullptr;
432 }
433 buffer_ = nullptr;
434 return;
435 }
436
437 if (buffer_ == target) {
438 buffer_->data_ = data_.data();
439 buffer_->own_data_ = false;
440 buffer_->wrapped_vector_ = nullptr;
441 buffer_->input_stream_ = this;
442 return;
443 }
444
445 Buffer *source = buffer_;
446 if (source != nullptr) {
447 target->size_ = source->size_;
448 target->writer_index_ = source->writer_index_;
449 target->reader_index_ = source->reader_index_;
450 source->input_stream_ = nullptr;
451 } else {
452 target->size_ = 0;
453 target->writer_index_ = 0;
454 target->reader_index_ = 0;
455 }
456
457 buffer_ = target;
458 buffer_->data_ = data_.data();
459 buffer_->own_data_ = false;
460 buffer_->wrapped_vector_ = nullptr;
461 buffer_->input_stream_ = this;
462 }
463
464private:
465 Result<uint32_t, Error> recv_into(void *dst, uint32_t length) {

Callers

nothing calls this directly

Calls 2

getMethod · 0.65
dataMethod · 0.45

Tested by

no test coverage detected