class OrphanedNode

Defined at line 22 of file ../../src/sysmem/server/orphaned_node.h

An OrphanedNode keeps the place of a former BufferCollectionToken or BufferCollection in the

hierarchical failure domain tree. This way we don't need to adjust the tree due to disappearing

Node; instead we just replace with an OrphanedNode. The OrphanedNode also preserves the

error_propagation_mode(), and avoids needing to check for Node absence in several places. The

OrphanedNode also preserves BufferCollectionConstraints of a former BufferCollection when

applicable.

The only way an OrphanedNode can exist is if Close() was used on the BufferCollectionToken or

BufferCollection, because otherwise the sub-tree (or whole tree) fails, which removes the nodes

in that sub-tree (or whole tree).

Public Methods

OrphanedNode & EmplaceInTree (fbl::RefPtr<LogicalBufferCollection> logical_buffer_collection, NodeProperties * node_properties)

static

Defined at line 17 of file ../../src/sysmem/server/orphaned_node.cc

bool ReadyForAllocation ()

Node interface

Defined at line 29 of file ../../src/sysmem/server/orphaned_node.cc

void OnBuffersAllocated (const AllocationResult & allocation_result)

Defined at line 31 of file ../../src/sysmem/server/orphaned_node.cc

BufferCollectionToken * buffer_collection_token ()

Defined at line 36 of file ../../src/sysmem/server/orphaned_node.cc

const BufferCollectionToken * buffer_collection_token ()

Defined at line 38 of file ../../src/sysmem/server/orphaned_node.cc

BufferCollection * buffer_collection ()

Defined at line 40 of file ../../src/sysmem/server/orphaned_node.cc

const BufferCollection * buffer_collection ()

Defined at line 42 of file ../../src/sysmem/server/orphaned_node.cc

BufferCollectionTokenGroup * buffer_collection_token_group ()

Defined at line 44 of file ../../src/sysmem/server/orphaned_node.cc

const BufferCollectionTokenGroup * buffer_collection_token_group ()

Defined at line 46 of file ../../src/sysmem/server/orphaned_node.cc

OrphanedNode * orphaned_node ()

Defined at line 50 of file ../../src/sysmem/server/orphaned_node.cc

const OrphanedNode * orphaned_node ()

Defined at line 52 of file ../../src/sysmem/server/orphaned_node.cc

bool is_connected_type ()

Defined at line 54 of file ../../src/sysmem/server/orphaned_node.cc

bool is_currently_connected ()

Defined at line 56 of file ../../src/sysmem/server/orphaned_node.cc

const char * node_type_string ()

Defined at line 58 of file ../../src/sysmem/server/orphaned_node.cc

ConnectionVersion connection_version ()

Defined at line 60 of file ../../src/sysmem/server/orphaned_node.cc

Protected Methods

void BindInternalV1 (zx::channel server_end, ErrorHandlerWrapper error_handler_wrapper)

OrphanedNode::BindV1() will never happen; panics.

Defined at line 71 of file ../../src/sysmem/server/orphaned_node.cc

void BindInternalV2 (zx::channel server_end, ErrorHandlerWrapper error_handler_wrapper)

OrphanedNode::BindV2() will never happen; panics.

Defined at line 76 of file ../../src/sysmem/server/orphaned_node.cc

void BindInternalCombinedV1AndV2 (zx::channel server_end, ErrorHandlerWrapper error_handler_wrapper)

This will never happen; panics.

Defined at line 81 of file ../../src/sysmem/server/orphaned_node.cc

void CloseServerBinding (zx_status_t epitaph)

NOP

Defined at line 86 of file ../../src/sysmem/server/orphaned_node.cc