32 #ifndef GENAPI_INODE_H 33 #define GENAPI_INODE_H 44 # pragma warning ( push ) 45 # pragma warning ( disable : 4251 ) // XXX needs to have dll-interface to be used by clients of class YYY 70 interface GENAPI_DECL_ABSTRACT
INode :
virtual public IBase 142 virtual void GetPropertyNames(GENICAM_NAMESPACE::gcstring_vector &PropertyNames)
const = 0;
180 return RO == AccessMode ||
RW == AccessMode;
186 return (p != NULL) &&
IsReadable( p->GetAccessMode() );
198 return WO == AccessMode ||
RW == AccessMode;
204 return (p != NULL) &&
IsWritable( p->GetAccessMode() );
216 return AccessMode !=
NI;
234 return ! ( AccessMode ==
NA || AccessMode ==
NI );
240 return (p != NULL) &&
IsAvailable(p->GetAccessMode() );
255 if( Peter ==
NI || Paul ==
NI )
257 else if( Peter ==
NA || Paul ==
NA )
259 else if( (Peter ==
RO && Paul ==
WO) || (Peter ==
WO && Paul ==
RO) )
261 else if( Peter ==
WO || Paul ==
WO )
263 else if( Peter ==
RO || Paul ==
RO )
274 return (Visibility <= MaxVisiblity);
286 else if( Peter ==
Guru || Paul ==
Guru )
298 return (CachingMode !=
NoCache);
320 # pragma warning ( pop ) 323 #endif // ifndef GENAPI_INODE_H Definition of interface IBase.
virtual void InvalidateNode()=0
Indicates that the node's value may have changed.
enum GENAPI_NAMESPACE::_EVisibility EVisibility
recommended visibility of a node
Common types used in the public GenApi interface.
virtual GENICAM_NAMESPACE::gcstring GetDescription() const =0
Get a long description of the node.
virtual EVisibility GetVisibility() const =0
Get the recommended visibility of the node.
Object is not yet initialized.
virtual bool IsCachable() const =0
Is the node value cachable.
bool IsCacheable(ECachingMode CachingMode)
Tests Cacheability.
virtual void ImposeVisibility(EVisibility ImposedVisibility)=0
Imposes a visibility to the natural visibility of the node.
virtual bool DeregisterCallback(CallbackHandleType hCallback)=0
De register change callback.
virtual void GetChildren(GENAPI_NAMESPACE::NodeList_t &Children, ELinkType LinkType=ctReadingChildren) const =0
Get all nodes this node directly depends on.
EAccessMode Combine(EAccessMode Peter, EAccessMode Paul)
Computes which access mode the two guards allow together.
interface GENAPI_DECL_ABSTRACT INodeMap
Interface to access the node map.
virtual bool IsFeature() const =0
True if the node can be reached via category nodes from a category node named "Root".
virtual INodeMap * GetNodeMap() const =0
Retrieves the central node map.
virtual bool GetProperty(CNodeDataMap *pNodeDataMap, CPropertyID::EProperty_ID_t PropertyID, CNodeData::PropertyVector_t &PropertyList) const =0
Retrieves a property from the node map itself.
virtual EYesNo IsAccessModeCacheable() const =0
True if the AccessMode can be cached.
callback body instance for INode pointers
bool IsReadable(EAccessMode AccessMode)
Tests if readable.
Visible for experts or Gurus.
virtual GENICAM_NAMESPACE::gcstring GetToolTip()=0
Get tool tip.
interface GENAPI_DECL_ABSTRACT IBase
Base interface common to all nodes.
bool IsAvailable(EAccessMode AccessMode)
Tests if available.
Write to cache and register.
node_vector NodeList_t
a list of node references
enum GENAPI_NAMESPACE::_ECachingMode ECachingMode
caching mode of a register
All nodes which can be read from.
enum GENAPI_NAMESPACE::_EYesNo EYesNo
Defines the choices of a Yes/No alternatives.
virtual void GetParents(GENAPI_NAMESPACE::NodeList_t &Parents) const =0
Gets all nodes this node is directly depending on.
Write to register, write to cache on read.
bool IsVisible(EVisibility Visibility, EVisibility MaxVisiblity)
Tests Visibility.
virtual GENICAM_NAMESPACE::gcstring GetDocuURL() const =0
Gets a URL pointing to the documentation of that feature.
virtual GENAPI_NAMESPACE::ENameSpace GetNameSpace() const =0
Get name space.
virtual int64_t GetPollingTime() const =0
recommended polling time (for not cachable nodes)
virtual void ImposeAccessMode(EAccessMode ImposedAccessMode)=0
Imposes an access mode to the natural access mode of the node.
virtual INode * GetAlias() const =0
Retrieves the a node which describes the same feature in a different way.
virtual bool IsStreamable() const =0
True if the node is streamable.
bool IsImplemented(EAccessMode AccessMode)
Tests if implemented.
virtual GENICAM_NAMESPACE::gcstring GetEventID() const =0
Get the EventId of the node.
intptr_t CallbackHandleType
the callback handle for nodes
A string class which is a clone of std::string.
virtual EInterfaceType GetPrincipalInterfaceType() const =0
Get the type of the main interface of a node.
virtual GENICAM_NAMESPACE::gcstring GetDeviceName() const =0
Get a name of the device.
enum GENAPI_NAMESPACE::_EAccessMode EAccessMode
access mode of a node
virtual INode * GetCastAlias() const =0
Retrieves the a node which describes the same feature so that it can be casted.
Portable string implementation.
Object is not yet initialized.
virtual ECachingMode GetCachingMode() const =0
Get Caching Mode.
bool IsWritable(EAccessMode AccessMode)
Tests if writable.
declspec's to be used for GenApi Windows dll
Portable container classes for INode & IValue pointers.
interface GENAPI_DECL_ABSTRACT INode
Interface common to all nodes.
virtual bool IsDeprecated() const =0
True if the node should not be used any more.
virtual void GetPropertyNames(GENICAM_NAMESPACE::gcstring_vector &PropertyNames) const =0
Returns a list of the names all properties set during initialization.
virtual GENICAM_NAMESPACE::gcstring GetDisplayName() const =0
Get a name string for display.
virtual CallbackHandleType RegisterCallback(CNodeCallback *pCallback)=0
Register change callback.
Part of the generic device API.
enum GENAPI_NAMESPACE::_EInterfaceType EInterfaceType
typedef for interface type
enum GENAPI_NAMESPACE::_ENameSpace ENameSpace
Defines if a node name is standard or custom.
enum GENAPI_NAMESPACE::_ELinkType ELinkType
typedef for link type