42# pragma warning ( push )
43# pragma warning ( disable : 4251 )
46namespace GENAPI_NAMESPACE
49 GENICAM_INTERFACE
INode;
68 GENICAM_INTERFACE GENAPI_DECL_ABSTRACT
INode :
virtual public IBase
112 virtual void GetChildren(GENAPI_NAMESPACE::NodeList_t &Children,
ELinkType LinkType=ctReadingChildren)
const = 0;
118 virtual void GetParents(GENAPI_NAMESPACE::NodeList_t &Parents)
const = 0;
140 virtual void GetPropertyNames(GENICAM_NAMESPACE::gcstring_vector &PropertyNames)
const = 0;
178 return RO == AccessMode ||
RW == AccessMode;
184 return (p != NULL) &&
IsReadable( p->GetAccessMode() );
196 return WO == AccessMode ||
RW == AccessMode;
202 return (p != NULL) &&
IsWritable( p->GetAccessMode() );
214 return AccessMode !=
NI;
232 return ! ( AccessMode ==
NA || AccessMode ==
NI );
238 return (p != NULL) &&
IsAvailable(p->GetAccessMode() );
253 if( Peter ==
NI || Paul ==
NI )
255 else if( Peter ==
NA || Paul ==
NA )
257 else if( (Peter ==
RO && Paul ==
WO) || (Peter ==
WO && Paul ==
RO) )
259 else if( Peter ==
WO || Paul ==
WO )
261 else if( Peter ==
RO || Paul ==
RO )
272 return (Visibility <= MaxVisiblity);
284 else if( Peter ==
Guru || Paul ==
Guru )
296 return (CachingMode !=
NoCache);
318# pragma warning ( pop )
Portable container classes for INode & IValue pointers.
Portable string implementation.
declspec's to be used for GenApi Windows dll
Definition of interface IBase.
virtual GENICAM_NAMESPACE::gcstring GetToolTip()=0
Get tool tip.
virtual GENICAM_NAMESPACE::gcstring GetDeviceName() const =0
Get a name of the device.
virtual GENICAM_NAMESPACE::gcstring GetDisplayName() const =0
Get a name string for display.
virtual int64_t GetPollingTime() const =0
recommended polling time (for not cachable nodes)
virtual bool IsFeature() const =0
True if the node can be reached via category nodes from a category node named "Root".
virtual bool GetProperty(const GENICAM_NAMESPACE::gcstring &PropertyName, GENICAM_NAMESPACE::gcstring &ValueStr, GENICAM_NAMESPACE::gcstring &AttributeStr)=0
Retrieves a property plus an additional attribute by name.
virtual bool DeregisterCallback(CallbackHandleType hCallback)=0
De register change callback.
virtual void ImposeAccessMode(EAccessMode ImposedAccessMode)=0
Imposes an access mode to the natural access mode of the node.
virtual EInterfaceType GetPrincipalInterfaceType() const =0
Get the type of the main interface of a node.
virtual void ImposeVisibility(EVisibility ImposedVisibility)=0
Imposes a visibility to the natural visibility of the node.
virtual EYesNo IsAccessModeCacheable() const =0
True if the AccessMode can be cached.
virtual GENAPI_NAMESPACE::ENameSpace GetNameSpace() const =0
Get name space.
virtual INode * GetAlias() const =0
Retrieves the a node which describes the same feature in a different way.
virtual bool IsDeprecated() const =0
True if the node should not be used any more.
virtual void InvalidateNode()=0
Indicates that the node's value may have changed.
virtual EVisibility GetVisibility() const =0
Get the recommended visibility of the node.
virtual void GetChildren(GENAPI_NAMESPACE::NodeList_t &Children, ELinkType LinkType=ctReadingChildren) const =0
Get all nodes this node directly depends on.
node_vector NodeList_t
a list of node references
Definition INode.h:53
intptr_t CallbackHandleType
the callback handle for nodes
Definition INode.h:56
virtual GENICAM_NAMESPACE::gcstring GetEventID() const =0
Get the EventId of the node.
virtual bool IsCachable() const =0
Is the node value cachable.
virtual void GetParents(GENAPI_NAMESPACE::NodeList_t &Parents) const =0
Gets all nodes this node is directly depending on.
virtual INodeMap * GetNodeMap() const =0
Retrieves the central node map.
virtual INode * GetCastAlias() const =0
Retrieves the a node which describes the same feature so that it can be casted.
virtual GENICAM_NAMESPACE::gcstring GetDocuURL() const =0
Gets a URL pointing to the documentation of that feature.
virtual CallbackHandleType RegisterCallback(CNodeCallback *pCallback)=0
Register change callback.
virtual GENICAM_NAMESPACE::gcstring GetDescription() const =0
Get a long description of the node.
virtual void GetPropertyNames(GENICAM_NAMESPACE::gcstring_vector &PropertyNames) const =0
Returns a list of the names all properties set during initialization.
virtual ECachingMode GetCachingMode() const =0
Get Caching Mode.
virtual bool IsStreamable() const =0
True if the node is streamable.
Common types used in the public GenApi interface.
callback body instance for INode pointers
Definition NodeCallback.h:54
A string class which is a clone of std::string.
Definition GCString.h:51
enum GENAPI_NAMESPACE::_EInterfaceType EInterfaceType
enum GENAPI_NAMESPACE::_ELinkType ELinkType
typedef for link type
bool IsImplemented(EAccessMode AccessMode)
Tests if implemented.
Definition INode.h:212
bool IsVisible(EVisibility Visibility, EVisibility MaxVisiblity)
Tests Visibility.
Definition INode.h:270
GENICAM_INTERFACE GENAPI_DECL_ABSTRACT IBase
Base interface common to all nodes.
Definition IBase.h:53
GENICAM_INTERFACE INodeMap
Interface to access the node map.
Definition INode.h:50
EAccessMode Combine(EAccessMode Peter, EAccessMode Paul)
Computes which access mode the two guards allow together.
Definition INode.h:248
bool IsCacheable(ECachingMode CachingMode)
Tests Cacheability.
Definition INode.h:294
GENICAM_INTERFACE INode
Interface common to all nodes.
Definition ICategory.h:49
bool IsWritable(EAccessMode AccessMode)
Tests if writable.
Definition INode.h:194
bool IsAvailable(EAccessMode AccessMode)
Tests if available.
Definition INode.h:230
bool IsReadable(EAccessMode AccessMode)
Tests if readable.
Definition INode.h:176
enum GENAPI_NAMESPACE::_ENameSpace ENameSpace
enum GENAPI_NAMESPACE::_ECachingMode ECachingMode
enum GENAPI_NAMESPACE::_EVisibility EVisibility
enum GENAPI_NAMESPACE::_EYesNo EYesNo
enum GENAPI_NAMESPACE::_EAccessMode EAccessMode
@ Invisible
Not Visible.
Definition Types.h:70
@ _UndefinedVisibility
Object is not yet initialized.
Definition Types.h:71
@ Guru
Visible for Gurus.
Definition Types.h:69
@ Beginner
Always visible.
Definition Types.h:67
@ Expert
Visible for experts or Gurus.
Definition Types.h:68
@ NoCache
Do not use cache.
Definition Types.h:78
@ WriteAround
Write to register, write to cache on read.
Definition Types.h:80
@ _UndefinedCachingMode
Not yet initialized.
Definition Types.h:81
@ WriteThrough
Write to cache and register.
Definition Types.h:79
@ _UndefinedAccessMode
Object is not yet initialized.
Definition Types.h:59
@ NI
Not implemented.
Definition Types.h:54
@ RO
Read Only.
Definition Types.h:57
@ WO
Write Only.
Definition Types.h:56
@ NA
Not available.
Definition Types.h:55
@ RW
Read and Write.
Definition Types.h:58