Holoscan SDK v4.0.0

Program Listing for File component_traits.hpp

Return to documentation for file (include/holoscan/core/component_traits.hpp)

Copy
Copied!
            

/* * SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef HOLOSCAN_CORE_COMPONENT_TRAITS_HPP #define HOLOSCAN_CORE_COMPONENT_TRAITS_HPP namespace holoscan { // Forward declarations for condition types class AsynchronousCondition; class BooleanCondition; class CountCondition; class CudaBufferAvailableCondition; class CudaEventCondition; class CudaStreamCondition; class DownstreamMessageAffordableCondition; class ExpiringMessageAvailableCondition; class MemoryAvailableCondition; class MessageAvailableCondition; class MultiMessageAvailableCondition; class MultiMessageAvailableTimeoutCondition; class PeriodicCondition; // Forward declarations for resource types class AsyncBufferReceiver; class AsyncBufferTransmitter; class BlockMemoryPool; class CPUThread; class CudaGreenContext; class CudaGreenContextPool; class CudaStreamPool; class DoubleBufferReceiver; class DoubleBufferTransmitter; class GPUDevice; class ManualClock; class OrConditionCombiner; class PubSubReceiver; class PubSubTransmitter; class RealtimeClock; class RMMAllocator; class SerializationBuffer; class StdComponentSerializer; class StdEntitySerializer; class StreamOrderedAllocator; class SyntheticClock; class ThreadPool; class UcxComponentSerializer; class UcxHoloscanComponentSerializer; class UcxEntitySerializer; class UcxReceiver; class UcxSerializationBuffer; class UcxTransmitter; class UnboundedAllocator; // Forward declarations for data logger types (in holoscan::data_loggers namespace) namespace data_loggers { class AsyncConsoleLogger; class BasicConsoleLogger; class GXFConsoleLogger; class SimpleTextSerializer; } // namespace data_loggers // Forward declarations for scheduler types class EventBasedScheduler; class GreedyScheduler; class MultiThreadScheduler; // Forward declarations for network context types class PubSubContext; class UcxContext; // Forward declarations for operator types (in holoscan::ops namespace) namespace ops { class AsyncPingRxOp; class AsyncPingTxOp; class BayerDemosaicOp; class DataTypeRxTestOp; class DataTypeTxTestOp; class FormatConverterOp; class HolovizOp; class InferenceOp; class InferenceProcessorOp; class PingRxOp; class PingTxOp; class PingTensorRxOp; class PingTensorTxOp; class SegmentationPostprocessorOp; class V4L2VideoCaptureOp; class VideoStreamReplayerOp; class VideoStreamRecorderOp; class GXFCodeletOp; } // namespace ops template <typename ConditionT> struct condition_default_name { static constexpr const char* value = "noname_condition"; }; // Specializations for each condition type template <> struct condition_default_name<AsynchronousCondition> { static constexpr const char* value = "async_condition"; }; template <> struct condition_default_name<BooleanCondition> { static constexpr const char* value = "boolean_condition"; }; template <> struct condition_default_name<CountCondition> { static constexpr const char* value = "count_condition"; }; template <> struct condition_default_name<CudaBufferAvailableCondition> { static constexpr const char* value = "cuda_buffer_available_condition"; }; template <> struct condition_default_name<CudaEventCondition> { static constexpr const char* value = "cuda_event_condition"; }; template <> struct condition_default_name<CudaStreamCondition> { static constexpr const char* value = "cuda_stream_condition"; }; template <> struct condition_default_name<DownstreamMessageAffordableCondition> { static constexpr const char* value = "downstream_affordable_condition"; }; template <> struct condition_default_name<ExpiringMessageAvailableCondition> { static constexpr const char* value = "expiring_message_available_condition"; }; template <> struct condition_default_name<MemoryAvailableCondition> { static constexpr const char* value = "memory_available_condition"; }; template <> struct condition_default_name<MessageAvailableCondition> { static constexpr const char* value = "message_available_condition"; }; template <> struct condition_default_name<MultiMessageAvailableCondition> { static constexpr const char* value = "multi_message_condition"; }; template <> struct condition_default_name<MultiMessageAvailableTimeoutCondition> { static constexpr const char* value = "multi_message_timeout_condition"; }; template <> struct condition_default_name<PeriodicCondition> { static constexpr const char* value = "periodic_condition"; }; template <typename ConditionT> inline constexpr const char* condition_default_name_v = condition_default_name<ConditionT>::value; template <typename ResourceT> struct resource_default_name { static constexpr const char* value = "noname_resource"; }; template <> struct resource_default_name<AsyncBufferReceiver> { static constexpr const char* value = "async_buffer_receiver"; }; template <> struct resource_default_name<AsyncBufferTransmitter> { static constexpr const char* value = "async_buffer_transmitter"; }; template <> struct resource_default_name<BlockMemoryPool> { static constexpr const char* value = "block_memory_pool"; }; template <> struct resource_default_name<CPUThread> { static constexpr const char* value = "cpu_thread"; }; template <> struct resource_default_name<CudaGreenContext> { static constexpr const char* value = "cuda_green_context"; }; template <> struct resource_default_name<CudaGreenContextPool> { static constexpr const char* value = "cuda_green_context_pool"; }; template <> struct resource_default_name<CudaStreamPool> { static constexpr const char* value = "cuda_stream_pool"; }; template <> struct resource_default_name<DoubleBufferReceiver> { static constexpr const char* value = "double_buffer_receiver"; }; template <> struct resource_default_name<DoubleBufferTransmitter> { static constexpr const char* value = "double_buffer_transmitter"; }; template <> struct resource_default_name<GPUDevice> { static constexpr const char* value = "gpu_device"; }; template <> struct resource_default_name<ManualClock> { static constexpr const char* value = "manual_clock"; }; template <> struct resource_default_name<OrConditionCombiner> { static constexpr const char* value = "or_condition_combiner"; }; template <> struct resource_default_name<PubSubReceiver> { static constexpr const char* value = "pubsub_receiver"; }; template <> struct resource_default_name<PubSubTransmitter> { static constexpr const char* value = "pubsub_transmitter"; }; template <> struct resource_default_name<RealtimeClock> { static constexpr const char* value = "realtime_clock"; }; template <> struct resource_default_name<RMMAllocator> { static constexpr const char* value = "rmm_pool"; }; template <> struct resource_default_name<SerializationBuffer> { static constexpr const char* value = "serialization_buffer"; }; template <> struct resource_default_name<StdComponentSerializer> { static constexpr const char* value = "standard_component_serializer"; }; template <> struct resource_default_name<StdEntitySerializer> { static constexpr const char* value = "standard_entity_serializer"; }; template <> struct resource_default_name<StreamOrderedAllocator> { static constexpr const char* value = "stream_ordered_allocator"; }; template <> struct resource_default_name<SyntheticClock> { static constexpr const char* value = "synthetic_clock"; }; template <> struct resource_default_name<ThreadPool> { static constexpr const char* value = "thread_pool"; }; template <> struct resource_default_name<UcxComponentSerializer> { static constexpr const char* value = "ucx_component_serializer"; }; template <> struct resource_default_name<UcxHoloscanComponentSerializer> { static constexpr const char* value = "ucx_holoscan_component_serializer"; }; template <> struct resource_default_name<UcxEntitySerializer> { static constexpr const char* value = "ucx_entity_serializer"; }; template <> struct resource_default_name<UcxReceiver> { static constexpr const char* value = "ucx_receiver"; }; template <> struct resource_default_name<UcxSerializationBuffer> { static constexpr const char* value = "ucx_serialization_buffer"; }; template <> struct resource_default_name<UcxTransmitter> { static constexpr const char* value = "ucx_transmitter"; }; template <> struct resource_default_name<UnboundedAllocator> { static constexpr const char* value = "unbounded_allocator"; }; // Specializations for data logger types template <> struct resource_default_name<data_loggers::AsyncConsoleLogger> { static constexpr const char* value = "async_console_logger"; }; template <> struct resource_default_name<data_loggers::BasicConsoleLogger> { static constexpr const char* value = "basic_console_logger"; }; template <> struct resource_default_name<data_loggers::GXFConsoleLogger> { static constexpr const char* value = "gxf_basic_console_logger"; }; template <> struct resource_default_name<data_loggers::SimpleTextSerializer> { static constexpr const char* value = "simple_text_serializer"; }; template <typename ResourceT> inline constexpr const char* resource_default_name_v = resource_default_name<ResourceT>::value; template <typename SchedulerT> struct scheduler_default_name { static constexpr const char* value = "noname_scheduler"; }; // Specializations for each scheduler type template <> struct scheduler_default_name<EventBasedScheduler> { static constexpr const char* value = "event_based_scheduler"; }; template <> struct scheduler_default_name<GreedyScheduler> { static constexpr const char* value = "greedy_scheduler"; }; template <> struct scheduler_default_name<MultiThreadScheduler> { static constexpr const char* value = "multithread_scheduler"; }; template <typename SchedulerT> inline constexpr const char* scheduler_default_name_v = scheduler_default_name<SchedulerT>::value; template <typename NetworkContextT> struct network_context_default_name { static constexpr const char* value = "noname_network_context"; }; // Specializations for each network context type template <> struct network_context_default_name<PubSubContext> { static constexpr const char* value = "pubsub_context"; }; template <> struct network_context_default_name<UcxContext> { static constexpr const char* value = "ucx_context"; }; template <typename NetworkContextT> inline constexpr const char* network_context_default_name_v = network_context_default_name<NetworkContextT>::value; template <typename OperatorT> struct operator_default_name { static constexpr const char* value = "noname_operator"; }; // Specializations for each operator type template <> struct operator_default_name<ops::AsyncPingRxOp> { static constexpr const char* value = "async_ping_rx"; }; template <> struct operator_default_name<ops::AsyncPingTxOp> { static constexpr const char* value = "async_ping_tx"; }; template <> struct operator_default_name<ops::BayerDemosaicOp> { static constexpr const char* value = "bayer_demosaic"; }; template <> struct operator_default_name<ops::DataTypeRxTestOp> { static constexpr const char* value = "data_type_rx_test_op"; }; template <> struct operator_default_name<ops::DataTypeTxTestOp> { static constexpr const char* value = "data_type_tx_test_op"; }; template <> struct operator_default_name<ops::FormatConverterOp> { static constexpr const char* value = "format_converter"; }; template <> struct operator_default_name<ops::GXFCodeletOp> { static constexpr const char* value = "gxf_codelet"; }; template <> struct operator_default_name<ops::HolovizOp> { static constexpr const char* value = "holoviz_op"; }; template <> struct operator_default_name<ops::InferenceOp> { static constexpr const char* value = "inference"; }; template <> struct operator_default_name<ops::InferenceProcessorOp> { static constexpr const char* value = "postprocessor"; }; template <> struct operator_default_name<ops::PingRxOp> { static constexpr const char* value = "ping_rx"; }; template <> struct operator_default_name<ops::PingTensorRxOp> { static constexpr const char* value = "ping_tensor_rx"; }; template <> struct operator_default_name<ops::PingTensorTxOp> { static constexpr const char* value = "ping_tensor_tx"; }; template <> struct operator_default_name<ops::PingTxOp> { static constexpr const char* value = "ping_tx"; }; template <> struct operator_default_name<ops::SegmentationPostprocessorOp> { static constexpr const char* value = "segmentation_postprocessor"; }; template <> struct operator_default_name<ops::V4L2VideoCaptureOp> { static constexpr const char* value = "v4l2_video_capture"; }; template <> struct operator_default_name<ops::VideoStreamRecorderOp> { static constexpr const char* value = "video_stream_recorder"; }; template <> struct operator_default_name<ops::VideoStreamReplayerOp> { static constexpr const char* value = "video_stream_replayer"; }; template <typename OperatorT> inline constexpr const char* operator_default_name_v = operator_default_name<OperatorT>::value; } // namespace holoscan #endif/* HOLOSCAN_CORE_COMPONENT_TRAITS_HPP */

© Copyright 2022-2026, NVIDIA. Last updated on Mar 9, 2026