File Node.h¶
File List > include > SpinGenApi > 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.
//=============================================================================
#ifndef SPINNAKER_GENAPI_NODE_H
#define SPINNAKER_GENAPI_NODE_H
#include "SpinnakerPlatform.h"
#include "Types.h"
#include "Base.h"
#include "GCString.h"
#include "Container.h"
#include "ISelector.h"
#include "INode.h"
#include "GCStringVector.h"
#include <list>
#ifdef _WIN32
#pragma warning(push)
#pragma warning(disable : 4251) // XXX needs to have dll-interface to be used by clients of class YYY
#pragma warning(disable : 4275) // non dll-interface structXXX used as base
#endif
namespace Spinnaker
{
namespace GenApi
{
interface INodeMap;
struct CallbackHandleType_t;
//*************************************************************
// Node implementation
//*************************************************************
class SPINNAKER_API Node : virtual public INode
{
public:
struct NodeImpl; // forward declaration
Node();
Node(std::shared_ptr<Node::NodeImpl> pNodeHandle);
~Node();
virtual GenICam::gcstring GetName(bool FullQualified = false) const;
virtual GenApi::ENameSpace GetNameSpace() const;
virtual EVisibility GetVisibility() const;
virtual void InvalidateNode();
virtual bool IsCachable() const;
virtual EYesNo IsAccessModeCacheable() const;
virtual ECachingMode GetCachingMode() const;
virtual int64_t GetPollingTime() const;
virtual GenICam::gcstring GetToolTip() const;
virtual GenICam::gcstring GetDescription() const;
virtual GenICam::gcstring GetDisplayName() const;
virtual GenICam::gcstring GetDeviceName() const;
virtual void GetChildren(GenApi::NodeList_t& Children, ELinkType LinkType = ctReadingChildren) const;
virtual void GetParents(GenApi::NodeList_t& Parents) const;
virtual void GetLockNodes(GenApi::NodeList_t& LockNodes) const;
virtual CallbackHandleType RegisterCallback(CNodeCallback* pCallback);
virtual bool DeregisterCallback(CallbackHandleType hCallback);
virtual INodeMap* GetNodeMap() const;
virtual GenICam::gcstring GetEventID() const;
virtual bool IsStreamable() const;
virtual void GetPropertyNames(GenICam::gcstring_vector& PropertyNames) const;
virtual bool GetProperty(
const GenICam::gcstring& PropertyName,
GenICam::gcstring& ValueStr,
GenICam::gcstring& AttributeStr);
virtual void ImposeAccessMode(EAccessMode ImposedAccessMode);
virtual void ImposeVisibility(EVisibility ImposedVisibility);
virtual INode* GetAlias() const;
virtual INode* GetCastAlias() const;
virtual GenICam::gcstring GetDocuURL() const;
virtual bool IsDeprecated() const;
virtual EInterfaceType GetPrincipalInterfaceType() const;
virtual bool IsFeature() const;
void SetNodeHandle(std::shared_ptr<Node::NodeImpl> pNodeHandle);
std::shared_ptr<Node::NodeImpl> GetNodeHandle() const;
virtual EAccessMode GetAccessMode() const;
virtual bool IsSelector() const;
virtual void GetSelectedFeatures(FeatureList_t&) const;
virtual void GetSelectingFeatures(FeatureList_t&) const;
virtual void SetReference(INode* pBase);
virtual void SetReference(ISelector* pBase);
void SetNodeMap(INodeMap* pNodeMap);
// helpers
virtual bool operator==(int nullPtr) const;
virtual bool operator!=(int nullPtr) const;
protected:
std::shared_ptr<Node::NodeImpl> m_pNodeData;
std::list<CallbackHandleType_t*> m_Callbacks;
INodeMap* m_pNodeMap;
};
typedef Node CNodeRef;
typedef Node CSelectorRef;
} // namespace GenApi
} // namespace Spinnaker
#ifdef _WIN32
#pragma warning(pop)
#endif
#endif // ifndef SPINNAKER_GENAPI_NODE_H