Namespaces
Enumerations
enum NodeOptions
| Name | Value |
|---|---|
| None | 0 |
| AllowCopy | (1 << 0) |
| AllowCopyFromContainer | (1 << 1) |
| AllowMove | (1 << 2) |
| AllowMoveFromContainer | (1 << 3) |
| AllowCopyMove | static_cast<uint64_t>(AllowCopy) | static_cast<uint64_t>(AllowMove) |
| AllowCopyMoveFromContainer | static_cast<uint64_t>(AllowCopyFromContainer) | static_cast<uint64_t>(AllowMoveFromContainer) |
| AllowMultiContainerUptr | (1 << 4) |
| AllowRemoveFromContainer | (1 << 5) |
| AllowClearUnsafe | (1 << 6) |
| ReservedBits | 0xF000000000000000 |
A set of flag-style options which can be applied to container nodes in order
to control and sanity check their behavior and compatibility at compile time.
To control node options, users pass a set of options to either the
containable mix-in class (SinglyLinkedLisable, DoublyLinkedListable, or
WAVLTreeContainable), or directly to the node instance in the case that the
user is specifying custom container traits.
Defined at line 65 of file ../../sdk/lib/fidl/cpp/wire/include/lib/fidl/cpp/wire/internal/intrusive_container/container_utils.h
enum SizeOrder
| Name | Value |
|---|---|
| N | 0 |
| Constant | 1 |
An enumeration which can be used as a template argument on list types to
control the order of operation needed to compute the size of the list. When
set to SizeOrder::N, the list's size will not be maintained and there will be
no valid size() method to call. The only way to fetch the size of a list
would be via |size_slow()|. Alternatively, a user may specify
SizeOrder::Constant. In this case, the storage size of the list itself will
grow by a size_t, and the size of the list will be maintained as elements are
added and removed.
Defined at line 368 of file ../../sdk/lib/fidl/cpp/wire/include/lib/fidl/cpp/wire/internal/intrusive_container/container_utils.h
Records
Functions
-
fidl::internal_wavl::NodeOptions operator| (fidl::internal_wavl::NodeOptions A, fidl::internal_wavl::NodeOptions B)Helper functions which make it a bit easier to use the enum class NodeOptions
in a flag style fashion.
The | operator will take two options and or them together to produce their
composition without needing to do all sorts of nasty casting. In other
words:
fidl::internal_wavl::NodeOptions::AllowX | fidl::internal_wavl::NodeOptions::AllowY
is legal.
The
&
operator is overloaded to perform the bitwise and of the
underlying flags and test against zero returning a bool. This allows us to
say things like:
if constexpr (SomeOptions | fidl::internal_wavl::NodeOptions::AllowX) { ... }
Defined at line 197 of file ../../sdk/lib/fidl/cpp/wire/include/lib/fidl/cpp/wire/internal/intrusive_container/container_utils.h
-
bool operator& (fidl::internal_wavl::NodeOptions A, fidl::internal_wavl::NodeOptions B)Defined at line 204 of file ../../sdk/lib/fidl/cpp/wire/include/lib/fidl/cpp/wire/internal/intrusive_container/container_utils.h
-
template <typename TagType = DefaultObjectTag, typename Containable>bool InContainer (const Containable & c)These are free function because making it a member function presents
complicated lookup issues since the specific Containable classes exist as
members of the ContainableBaseClasses
<
...>, and you'd need to say
obj.template GetContainableByTag
<TagType
>().InContainer (or
RemoveFromContainer), which is super ugly.
Defined at line 343 of file ../../sdk/lib/fidl/cpp/wire/include/lib/fidl/cpp/wire/internal/intrusive_container/container_utils.h
-
template <typename TagType = DefaultObjectTagtypename Containable>auto RemoveFromContainer (Containable & c)Defined at line 352 of file ../../sdk/lib/fidl/cpp/wire/include/lib/fidl/cpp/wire/internal/intrusive_container/container_utils.h