Skip to content

File Node.h

File List > GenApiNet > Node.h

Go to the documentation of this file

//=============================================================================
// Copyright (c) 2026 FLIR Integrated Imaging Solutions, Inc. All Rights Reserved.
//
// This software is the confidential and proprietary information of FLIR
// Integrated Imaging Solutions, Inc. ("Confidential Information"). You
// shall not disclose such Confidential Information and shall use it only in
// accordance with the terms of the license agreement you entered into
// with FLIR Integrated Imaging Solutions, Inc. (FLIR).
//
// FLIR MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
// SOFTWARE, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
// PURPOSE, OR NON-INFRINGEMENT. FLIR SHALL NOT BE LIABLE FOR ANY DAMAGES
// SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
// THIS SOFTWARE OR ITS DERIVATIVES.
//=============================================================================

#pragma once

#include "Selector.h"

namespace Spinnaker{ namespace GenApi{ interface INode; } }
namespace Spinnaker{ namespace GenApi{ interface ISelector; } }

namespace SpinnakerNET
{
    namespace GenApi
    {
        using namespace ::System;
        using namespace ::System::ComponentModel;
        using namespace ::System::Collections::Generic;

        namespace Helper
        {
            class NodeUpdatedHelper;
        }

        ref class Property;
        interface class INode;

        public delegate void NodeEventHandler(SpinnakerNET::GenApi::INode ^node);

#pragma region INode Interface
        ref class NodeMap;

        public interface class INode
            : public SpinnakerNET::GenApi::ISelector
        {
#pragma region INode Interface
            property System::String ^ DisplayName
            {
                System::String ^ __clrcall get(void);
            }

            property System::String ^ Name
            {
                System::String ^ __clrcall get(void);
            }

            property SpinnakerNET::GenApi::NameSpace NameSpace
            {
                SpinnakerNET::GenApi::NameSpace __clrcall get(void);
            }

            property System::String ^ ToolTip
            {
                System::String ^ __clrcall get(void);
            }

            property System::String ^ Description
            {
                System::String ^ __clrcall get(void);
            }

            property System::String ^ QualifiedName
            {
                System::String ^ __clrcall get(void);
            }

            property SpinnakerNET::GenApi::Visibility Visibility
            {
                SpinnakerNET::GenApi::Visibility __clrcall get(void);
            }

            property bool IsStreamable
            {
                bool __clrcall get(void);
            }

            property bool IsFeature
            {
                bool __clrcall get(void);
            }

            property bool IsCachable
            {
                bool __clrcall get(void);
            }

            property SpinnakerNET::GenApi::CachingMode CachingMode
            {
                SpinnakerNET::GenApi::CachingMode __clrcall get(void);
            }

            property __int64 PollingTime
            {
                __int64 __clrcall get(void);
            }

            property System::String ^ EventID
            {
                System::String ^ __clrcall get(void);
            }

            void __clrcall Invalidate(void);

            void __clrcall ImposeAccessMode(SpinnakerNET::GenApi::AccessMode accessMode);

            void __clrcall ImposeVisibility(SpinnakerNET::GenApi::Visibility visibility);

            property array<SpinnakerNET::GenApi::INode ^> ^ Children
            {
                array<SpinnakerNET::GenApi::INode ^> ^ __clrcall get(void);
            }

            property array<SpinnakerNET::GenApi::INode ^> ^ InvalidatingChildren
            {
                array<SpinnakerNET::GenApi::INode ^> ^ __clrcall get(void);
            }

            property array<SpinnakerNET::GenApi::INode ^> ^ Parents
            {
                array<SpinnakerNET::GenApi::INode ^> ^ __clrcall get(void);
            }

            property array<SpinnakerNET::GenApi::INode ^> ^ LockNodes
            {
                array<SpinnakerNET::GenApi::INode ^> ^ __clrcall get(void);
            }

            property SpinnakerNET::GenApi::INode ^ Alias
            {
                SpinnakerNET::GenApi::INode ^ __clrcall get(void);
            }

            [System::ComponentModel::Browsable(false)]
            property SpinnakerNET::GenApi::NodeMap ^ NodeMap
            {
                SpinnakerNET::GenApi::NodeMap ^ __clrcall get(void);
            }

            property bool VerifyWrite;

            property bool VerifyRead;

            property bool IgnoreCache;

            [System::ComponentModel::Browsable(false)]
            property System::Collections::Generic::Dictionary<System::String^,Property^> ^ Properties
            {
                System::Collections::Generic::Dictionary<System::String^,Property^> ^ __clrcall get(void);
            }

#pragma endregion

#pragma region Events

            event NodeEventHandler ^ Updated;

#pragma endregion

#pragma region INode Helper
            [System::ComponentModel::Browsable(false)]
            property bool IsAvailable { bool __clrcall get(void); }

            [System::ComponentModel::Browsable(false)]
            property bool IsImplemented { bool __clrcall get(void); }

            [System::ComponentModel::Browsable(false)]
            property bool IsReadable { bool __clrcall get(void); }

            [System::ComponentModel::Browsable(false)]
            property bool IsRegister { bool __clrcall get(void); }

            [System::ComponentModel::Browsable(false)]
            property bool IsWritable { bool __clrcall get(void); }

            bool __clrcall IsVisible(SpinnakerNET::GenApi::Visibility reference);
#pragma endregion
        };
#pragma endregion

        public ref class Node
            : public SpinnakerNET::GenApi::INode
        {
#pragma region Ctor/Dtor
            public:
                __clrcall Node(NodeMap ^map, System::IntPtr handle);

                __clrcall !Node(void);

                virtual __clrcall ~Node(void);
#pragma endregion

#pragma region INode Interface
            public:
                virtual property SpinnakerNET::GenApi::AccessMode AccessMode
                {
                    SpinnakerNET::GenApi::AccessMode __clrcall get(void);
                }

                virtual property System::String ^ DisplayName
                {
                    System::String ^ __clrcall get(void);
                }

                virtual property System::String ^ Name
                {
                    System::String ^ __clrcall get(void);
                }

                virtual property SpinnakerNET::GenApi::NameSpace NameSpace
                {
                    SpinnakerNET::GenApi::NameSpace __clrcall get(void);
                }

                virtual property System::String ^ ToolTip
                {
                    System::String ^ __clrcall get(void);
                }

                virtual property System::String ^ Description
                {
                    System::String ^ __clrcall get(void);
                }

                virtual property System::String ^ QualifiedName
                {
                    System::String ^ __clrcall get(void);
                }

                virtual property SpinnakerNET::GenApi::Visibility Visibility
                {
                    SpinnakerNET::GenApi::Visibility __clrcall get(void);
                }

                virtual property bool IsStreamable
                {
                    bool __clrcall get(void);
                }

                virtual property bool IsFeature
                {
                    bool __clrcall get(void);
                }


                virtual property bool IsCachable
                {
                    bool __clrcall get(void);
                }

                virtual property SpinnakerNET::GenApi::CachingMode CachingMode
                {
                    SpinnakerNET::GenApi::CachingMode __clrcall get(void);
                }

                virtual property __int64 PollingTime
                {
                    __int64 __clrcall get(void);
                }

                virtual property System::String ^ EventID
                {
                    System::String ^ __clrcall get(void);
                }

                virtual void __clrcall Invalidate(void);

                virtual void __clrcall ImposeAccessMode(SpinnakerNET::GenApi::AccessMode accessMode);

                virtual void __clrcall ImposeVisibility(SpinnakerNET::GenApi::Visibility visibility);

                virtual property array<SpinnakerNET::GenApi::INode ^> ^ Children
                {
                    array<SpinnakerNET::GenApi::INode ^> ^ __clrcall get(void);
                }

                virtual property array<SpinnakerNET::GenApi::INode ^> ^ InvalidatingChildren
                {
                    array<SpinnakerNET::GenApi::INode ^> ^ __clrcall get(void);
                }

                virtual property array<SpinnakerNET::GenApi::INode ^> ^ Parents
                {
                    array<SpinnakerNET::GenApi::INode ^> ^ __clrcall get(void);
                }

                virtual property array<SpinnakerNET::GenApi::INode ^> ^ LockNodes
                {
                    array<SpinnakerNET::GenApi::INode ^> ^ __clrcall get(void);
                }

                virtual property SpinnakerNET::GenApi::INode ^ Alias
                {
                    SpinnakerNET::GenApi::INode ^ __clrcall get(void);
                }

                [System::ComponentModel::Browsable(false)]
                virtual property SpinnakerNET::GenApi::NodeMap ^ NodeMap
                {
                    SpinnakerNET::GenApi::NodeMap ^ __clrcall get(void);
                    protected:
                    void __clrcall set(SpinnakerNET::GenApi::NodeMap ^map);
                }

                virtual property bool VerifyWrite;

                virtual property bool VerifyRead;

                virtual property bool IgnoreCache;

                [System::ComponentModel::Browsable(false)]
                virtual property System::Collections::Generic::Dictionary<System::String^,Property^> ^ Properties
                {
                    System::Collections::Generic::Dictionary<System::String^,Property^> ^ __clrcall get(void);
                }

                event NodeEventHandler ^ Updated
                {
                    virtual void add(NodeEventHandler ^handler);
                    virtual void remove(NodeEventHandler ^handler);
                    virtual void raise(SpinnakerNET::GenApi::INode ^node);
                }

#pragma endregion

#pragma region INode Helper Properties / Methods
            public:
                [System::ComponentModel::Browsable(false)]
                virtual property bool IsAvailable
                {
                    bool __clrcall get(void) sealed;
                }

                [System::ComponentModel::Browsable(false)]
                virtual property bool IsImplemented
                {
                    bool __clrcall get(void) sealed;
                }

                [System::ComponentModel::Browsable(false)]
                virtual property bool IsReadable
                {
                    bool __clrcall get(void) sealed;
                }

                [System::ComponentModel::Browsable(false)]
                virtual property bool IsRegister
                {
                    bool __clrcall get(void) sealed;
                }

                [System::ComponentModel::Browsable(false)]
                virtual property bool IsWritable
                {
                    bool __clrcall get(void) sealed;
                }

                virtual bool __clrcall IsVisible(SpinnakerNET::GenApi::Visibility reference) sealed;
#pragma endregion

#pragma region ISelector Interface
            public:
                property bool IsSelector
                {
                    virtual bool __clrcall get();
                }

                property array<SpinnakerNET::GenApi::IValue^> ^ SelectedFeatures
                {
                    virtual array<SpinnakerNET::GenApi::IValue^> ^ __clrcall get();
                }

                property array<SpinnakerNET::GenApi::IValue^> ^ SelectingFeatures
                {
                    virtual array<SpinnakerNET::GenApi::IValue^> ^ __clrcall get();
                }
#pragma endregion

#pragma region Node Properties
            public:
                [System::ComponentModel::Browsable(false)]
                virtual property bool Disposed
                {
                    bool __clrcall get(void) sealed;
                    protected:
                    void __clrcall set(bool disposed) sealed;
                }

                [System::ComponentModel::Browsable(false)]
                virtual property System::IntPtr Handle
                {
                    System::IntPtr __clrcall get(void);
                    protected:
                    void __clrcall set(System::IntPtr handle);
                }
#pragma endregion

#pragma region Internal Methods
            protected:
                virtual void __clrcall CheckStatus(void) sealed;
#pragma endregion

#pragma region Member
            private:
                SpinnakerNET::GenApi::NodeMap ^ nodeMap;

                ::Spinnaker::GenApi::INode * nodeHandle;

                ::Spinnaker::GenApi::ISelector * selectorHandle;

                bool disposed;

                NodeEventHandler ^ updatedEvent;

                Helper::NodeUpdatedHelper * updateHelper;
#pragma endregion
        };
    }
}