Open3D (C++ API)
0.19.0
Toggle main menu visibility
Loading...
Searching...
No Matches
cpp
open3d
core
Blob.h
Go to the documentation of this file.
1
// ----------------------------------------------------------------------------
2
// - Open3D: www.open3d.org -
3
// ----------------------------------------------------------------------------
4
// Copyright (c) 2018-2024 www.open3d.org
5
// SPDX-License-Identifier: MIT
6
// ----------------------------------------------------------------------------
7
8
#pragma once
9
10
#include <cstddef>
11
#include <functional>
12
#include <iostream>
13
#include <string>
14
15
#include "
open3d/core/Device.h
"
16
#include "
open3d/core/MemoryManager.h
"
17
18
namespace
open3d
{
19
namespace
core
{
20
38
class
Blob
{
39
public
:
44
Blob
(int64_t byte_size,
const
Device
& device)
45
:
deleter_
(nullptr),
46
data_ptr_
(
MemoryManager
::Malloc(byte_size, device)),
47
device_
(device) {}
48
56
Blob
(
const
Device
& device,
57
void
* data_ptr,
58
const
std::function<
void
(
void
*)>& deleter)
59
:
deleter_
(deleter),
data_ptr_
(data_ptr),
device_
(device) {}
60
61
~Blob
() {
62
if
(
deleter_
) {
63
// Our custom deleter's void* argument is not used. The deleter
64
// function itself shall handle destruction without the argument.
65
// The void(void*) signature is kept to be consistent with DLPack's
66
// deleter.
67
deleter_
(
nullptr
);
68
}
else
{
69
MemoryManager::Free
(
data_ptr_
,
device_
);
70
}
71
};
72
73
Device
GetDevice
()
const
{
return
device_
; }
74
75
void
*
GetDataPtr
() {
return
data_ptr_
; }
76
77
const
void
*
GetDataPtr
()
const
{
return
data_ptr_
; }
78
79
protected
:
81
std::function<void(
void
*)>
deleter_
=
nullptr
;
82
84
void
*
data_ptr_
=
nullptr
;
85
87
Device
device_
;
88
};
89
90
}
// namespace core
91
}
// namespace open3d
Device.h
MemoryManager.h
open3d::core::Blob::GetDataPtr
const void * GetDataPtr() const
Definition
Blob.h:77
open3d::core::Blob::deleter_
std::function< void(void *)> deleter_
For externally managed memory, deleter != nullptr.
Definition
Blob.h:81
open3d::core::Blob::device_
Device device_
Device context for the blob.
Definition
Blob.h:87
open3d::core::Blob::data_ptr_
void * data_ptr_
Device data pointer.
Definition
Blob.h:84
open3d::core::Blob::GetDevice
Device GetDevice() const
Definition
Blob.h:73
open3d::core::Blob::Blob
Blob(const Device &device, void *data_ptr, const std::function< void(void *)> &deleter)
Definition
Blob.h:56
open3d::core::Blob::Blob
Blob(int64_t byte_size, const Device &device)
Definition
Blob.h:44
open3d::core::Blob::GetDataPtr
void * GetDataPtr()
Definition
Blob.h:75
open3d::core::Blob::~Blob
~Blob()
Definition
Blob.h:61
open3d::core::Device
Definition
Device.h:18
open3d::core::MemoryManager
Definition
MemoryManager.h:34
open3d::core::MemoryManager::Free
static void Free(void *ptr, const Device &device)
Frees previously allocated memory at address ptr on device device.
Definition
MemoryManager.cpp:28
open3d::core
Definition
AdvancedIndexing.cpp:15
open3d
Definition
PinholeCameraIntrinsic.cpp:16
Generated by
1.17.0