All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Node.h
Go to the documentation of this file.
1 //-----------------------------------------------------------------------------
2 // (c) 2006-2009 by Basler Vision Technologies
3 // Section: Vision Components
4 // Project: GenApi
5 // Author: Fritz Dierks
6 // $Header$
7 //
8 // License: This file is published under the license of the EMVA GenICam Standard Group.
9 // A text file describing the legal terms is included in your installation as 'GenICam_license.pdf'.
10 // If for some reason you are missing this file please contact the EMVA or visit the website
11 // (http://www.genicam.org) for a full copy.
12 //
13 // THIS SOFTWARE IS PROVIDED BY THE EMVA GENICAM STANDARD GROUP "AS IS"
14 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15 // THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE EMVA GENICAM STANDARD GROUP
17 // OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
20 // OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
21 // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
23 // POSSIBILITY OF SUCH DAMAGE.
24 //-----------------------------------------------------------------------------
30 #ifndef GENAPI_NODE_H
31 #define GENAPI_NODE_H
32 
33 #include <string>
34 #include <sstream>
35 #include <algorithm>
36 #include <cctype>
37 #include "Base/GCException.h"
38 #include "../GenApiDll.h"
39 #include "../Synch.h"
40 #include "../Types.h"
41 #include "../INode.h"
42 #include "../ICategory.h"
43 #include "INodePrivate.h"
44 #include "INodeMapPrivate.h"
45 #include "../IInteger.h"
46 #include "../IBoolean.h"
47 #include "../ISelector.h"
48 #include "../NodeCallback.h"
49 #include "../EnumClasses.h"
50 #include "Log.h"
51 #include "Value2String.h"
52 #include "PolyReference.h"
53 #include "NodeMapData/NodeMapDataTypes.h"
54 #include "NodeMapData/NodeData.h"
55 //#include "NodeMap.h"
56 #include "../IUserData.h"
57 #include <list>
58 
59 class CProperty;
60 class CNodeDataMap;
61 class CNodeMap;
62 
63 namespace GENAPI_NAMESPACE
64 {
65  namespace detail
66  {
68  template< typename C, typename V>
69  void push_back_unique(C &c, const V &v)
70  {
71  if (std::find(c.begin(), c.end(), v) == c.end())
72  {
73  c.push_back(v);
74  }
75  }
76  }
77 
78  //*************************************************************
79  // CNodeImpl class
80  //*************************************************************
81 
86  class CNodeImpl : public INodePrivate, public ISelector, public IUserData
87  {
88  public:
89  //-------------------------------------------------------------
91 
92  CNodeImpl();
94 
96  virtual ~CNodeImpl();
98 
99  protected:
100  //-------------------------------------------------------------
102 
103  virtual EAccessMode InternalGetAccessMode() const;
105 
107  #pragma BullseyeCoverage off
109  {
110  return intfIBase;
111  }
112  #pragma BullseyeCoverage on
113 
115  EAccessMode InternalGetAccessMode(IBase* pValue) const;
117 
118  protected:
119  //-------------------------------------------------------------
121 
122  virtual GENICAM_NAMESPACE::gcstring InternalGetName(bool FullQualified=false) const;
124 
127 
129  virtual EVisibility InternalGetVisibility() const;
130 
131  // Invalidate the node
132  virtual void InternalInvalidateNode( std::list<CNodeCallback*> &CallbacksToFire );
133 
135  virtual bool InternalIsCachable() const;
136 
138  virtual ECachingMode InternalGetCachingMode() const;
139 
141  virtual int64_t InternalGetPollingTime() const;
142 
145 
148 
149  // Get node display name
151 
154 
156  virtual void InternalGetChildren(GENAPI_NAMESPACE::NodeList_t &Children, ELinkType LinkType) const;
157 
159 
161 
163 
166  virtual bool InternalDeregisterCallback( CallbackHandleType hCallback );
167 
169  virtual INodeMap* InternalGetNodeMap() const;
170 
172  virtual GENICAM_NAMESPACE::gcstring GetEventID() const;
173 
175  virtual bool IsStreamable() const;
176 
177  virtual void GetParents(GENAPI_NAMESPACE::NodeList_t &Parents) const;
178 
180  virtual void GetPropertyNames(GENICAM_NAMESPACE::gcstring_vector &PropertyNames) const;
181 
183 
184  virtual bool GetProperty(const GENICAM_NAMESPACE::gcstring& PropertyName, GENICAM_NAMESPACE::gcstring& ValueStr, GENICAM_NAMESPACE::gcstring& AttributeStr);
185 
187  virtual void ImposeAccessMode(EAccessMode ImposedAccessMode);
188 
190  virtual void ImposeVisibility(EVisibility ImposedVisibility);
191 
193  virtual INode* GetAlias() const;
194 
196  virtual INode* GetCastAlias() const;
197 
199  virtual void InternalCheckError() const;
200 
203 
205  virtual bool InternalIsDeprecated() const;
206 
208  virtual bool IsFeature() const;
209 
211  virtual EYesNo InternalIsAccessModeCacheable() const;
212 
214 
215  inline bool IsAccessModeCached() const
216  {
218  return false;
219 #pragma BullseyeCoverage off
221 #pragma BullseyeCoverage on
222  {
223  // the cycle is neutralized by making at least one node AccessMode cacheable
225  GCLOGWARN( m_pAccessLog, "InternalGetAccessMode : ReadCycle detected at = '%s'", m_Name.c_str() );
226  }
227  return true;
228  }
230 
231  public:
232  //-------------------------------------------------------------
234 
235  virtual void Initialize(GENAPI_NAMESPACE::INodeMapPrivate* const pNodeMap, CNodeData::ENodeType_t NodeType, NodeID_t &NodeID );
236  virtual CNodeData::ENodeType_t GetNodeType();
237  virtual NodeID_t GetNodeID();
238  virtual void FinalConstruct();
239  virtual void SetProperty( CProperty &Property );
240  virtual bool GetProperty(CNodeDataMap *pNodeDataMap, CPropertyID::EProperty_ID_t PropertyID, CNodeData::PropertyVector_t &PropertyList) const;
241  virtual void SetInvalid(ESetInvalidMode simMode);
242  virtual void CollectCallbacksToFire(std::list<CNodeCallback*> &CallbacksToFire, bool allDependents = false, bool always = false);
243  virtual bool IsTerminalNode() const;
244  virtual void GetTerminalNodes( GENAPI_NAMESPACE::NodeList_t& Terminals ) const;
245  virtual bool Poll( int64_t ElapsedTime );
246  virtual bool CanBeWritten(bool Verify);
247  virtual bool CanBeRead(bool Verify);
249 
250  public:
251  //-------------------------------------------------------------
253 
254  virtual bool IsSelector() const;
255  virtual void GetSelectedFeatures( FeatureList_t& list ) const;
256  virtual void GetSelectingFeatures( FeatureList_t& ) const;
258 
259  public:
260 
263  {
264  return m_pNodeMap;
265  }
266 
268  inline void SetParent( INodePrivate *pParent )
269  {
271  }
272 
273  // 1 : use macro for speed
274  // 0 : used function for debugging
275 #if 0
276 
277 # define ADD_ORPHAN_CHILD( PropertyID, Property ) \
278  INodePrivate *pNode = dynamic_cast<CNodeMap*>(m_pNodeMap)->_GetNodeByID( Property.NodeID() ); \
279  if( CPropertyID::IsInvalidatingPointer(PropertyID) )\
280  { \
281  detail::push_back_unique(m_InvalidatingChildren, pNode); \
282  if( CPropertyID::IsReadingPointer(PropertyID) ) \
283  { \
284  detail::push_back_unique(m_ReadingChildren, pNode); \
285  if( CPropertyID::IsWritingPointer(PropertyID) ) \
286  { \
287  detail::push_back_unique(m_WritingChildren, pNode); \
288  } \
289  } \
290  }
291 
292  // the compiler will optimize the if() statements away if PropertyID is a constant
293 # define ADD_CHILD( PropertyID, Property ) \
294  INodePrivate *pNode = dynamic_cast<CNodeMap*>(m_pNodeMap)->_GetNodeByID( Property.NodeID() ); \
295  if( CPropertyID::IsInvalidatingPointer(PropertyID) )\
296  { \
297  detail::push_back_unique(m_InvalidatingChildren, pNode);\
298  dynamic_cast<CNodeImpl*>(pNode)->SetParent( this );\
299  if( CPropertyID::IsReadingPointer(PropertyID) ) \
300  { \
301  detail::push_back_unique(m_ReadingChildren, pNode);\
302  if( CPropertyID::IsWritingPointer(PropertyID) ) \
303  { \
304  detail::push_back_unique(m_WritingChildren, pNode); \
305  } \
306  } \
307  }
308 
309 #else
310 # define ADD_ORPHAN_CHILD( PropertyID, Property ) \
311  INodePrivate *pNode = dynamic_cast<CNodeMap*>(m_pNodeMap)->_GetNodeByID(Property.NodeID()); \
312  add_orphan_child( PropertyID, Property, pNode );
313 
314 # define ADD_CHILD( PropertyID, Property ) \
315  INodePrivate *pNode = dynamic_cast<CNodeMap*>(m_pNodeMap)->_GetNodeByID(Property.NodeID()); \
316  add_child( PropertyID, Property, pNode );
317 
318  // This is a helper function performing the same tasks as the macro above
319  // In contrast to the macro however you can set breakpoint here :-)
320  void add_child(CPropertyID::EProperty_ID_t PropertyID, CProperty &/*Property*/, INodePrivate *pNode)
321  {
322  if (CPropertyID::IsInvalidatingPointer(PropertyID))
323  {
325  dynamic_cast<CNodeImpl*>(pNode)->SetParent(this); // this is not present in add_orphan_child
326  if (CPropertyID::IsReadingPointer(PropertyID))
327  {
329  if (CPropertyID::IsWritingPointer(PropertyID))
330  {
332  }
333  }
334  }
335  }
336 
337  void add_orphan_child(CPropertyID::EProperty_ID_t PropertyID, CProperty &/*Property*/, INodePrivate *pNode)
338  {
339  if (CPropertyID::IsInvalidatingPointer(PropertyID))
340  {
342  if (CPropertyID::IsReadingPointer(PropertyID))
343  {
345  if (CPropertyID::IsWritingPointer(PropertyID))
346  {
348  }
349  }
350  }
351  }
352 #endif
353  private:
354  //-------------------------------------------------------------
355  // ! \name Interface IUserData
357  UserData_t GetUserData() const;
358  UserData_t SetUserData( UserData_t userdata );
360  protected:
361  //-------------------------------------------------------------
363 
365  std::string nodetype;
366  Value2String(m_NodeTypeEnum, nodetype);
367 
368  return nodetype.c_str();
369  }
370 
373 
376 
379 
382 
385 
388 
391 
394 
397 
400 
403 
406 
409 
412 
415 
418 
420  FeatureList_t m_Selected;
421 
423  FeatureList_t m_Selecting;
424 
427 
430 
433 
436 
439 
442  {
446  };
447 
450 
453 
456 
459 
461  GENICAM_NAMESPACE::gcstring_vector m_PropertyNames;
462 
465 
467 
468  protected:
469  //-------------------------------------------------------------
471 
474 
478 
482 
486 
490 
494 
498 
499  protected:
500  //-------------------------------------------------------------
502 
505 
508 
509  inline void CacheAccessModeIfPossible( EAccessMode AccessMode ) const
510  {
512  }
513 
515  mutable bool m_ValueCacheValid;
516 
519 
521  virtual bool InternalIsValueCacheValid() const;
522 
525 
527 
528  protected:
529  //-------------------------------------------------------------
531 
534 
537 
539  typedef AutoLock Lock;
540 
542  CLock& GetLock() const;
543 
545  Counter& GetBathometer() const;
546 
548  void PreSetValue();
549 
551  void PostSetValue( std::list<CNodeCallback*> &CallbacksToFire );
552 
555 
558 
561  {
562  public:
564  PostSetValueFinalizer(CNodeImpl* pThis, std::list<CNodeCallback*> &CallbacksToFire ) :
565  m_pThis( pThis ),
566  m_CallbacksToFire( CallbacksToFire )
567  {}
568 
571  {
573  }
574 
577 
579  std::list<CNodeCallback*> &m_CallbacksToFire;
580 
581  private:
583  // \{
586  // \}
587  };
588 
590  std::list<CNodeCallback*> m_Callbacks;
591 
594  {
595  public:
597  EntryMethodFinalizer(const INodePrivate* pThis, EMethod EntryMethod, bool stremable = false, bool IgnoreCache = false)
598  {
599  assert(pThis);
600  m_pNodeMapPrivate = dynamic_cast<INodeMapPrivate*>( pThis->GetNodeMap() );
601  m_pNodeMapPrivate->SetEntryPoint(EntryMethod, pThis, stremable, IgnoreCache);
602  }
603 
606  {
607  m_pNodeMapPrivate->ResetEntryPoint();
608  }
609 
610  private:
613  };
614 
617 
619 
620  //-------------------------------------------------------------
622 
623  // for safety reasons please keep these member variables at the
624  // end of the class' memory layout
625 
628 
631 
634 
637 
640 
643 
646 
648 
649 
651  NodeID_t m_NodeID;
652 
653  CNodeData::ENodeType_t m_NodeTypeEnum;
654 
656 
660 
661  private:
662 #if defined( _WIN32 ) && !defined( PHARLAP_WIN32 )
663  typedef std::wstring string_t;
664  typedef std::wstring::size_type size_type;
665  typedef std::wostringstream ostringstream_t;
666  typedef wchar_t char_t;
667  #define QUALIFY_LITERAL( x ) _L( x )
668  #define _L( x ) L ## x
669  #define GET_MODULE_FILE_NAME GetModuleFileNameW
670  #define GET_CSTR( x ) x.w_str().c_str()
671  #define GET_LOCALE_INFO GetLocaleInfoW
672 #else
673  typedef std::string string_t;
674  typedef std::string::size_type size_type;
676  typedef char char_t;
677  #define QUALIFY_LITERAL( x ) x
678  #define GET_MODULE_FILE_NAME GetModuleFileName
679  #define GET_CSTR( x ) x.c_str()
680  #define GET_LOCALE_INFO GetLocaleInfo
681 #endif
682 
683  static const size_t MaxPath;
684  void GetNodeName( string_t& VariableContent ) const;
685  void GetStringStreamContent( const ostringstream_t& Content, string_t& VariableContent ) const;
686  void GetVendorName( string_t& VariableContent ) const;
687  void GetModelName( string_t& VariableContent ) const;
688  void GetStandardNameSpace( string_t& VariableContent ) const;
689  void GetNodeValue( const CValuePtr& ptrValue, CNodeImpl::string_t& VariableContent ) const;
690 
691  };
692 
695 
697  void DeleteDoubleCallbacks( std::list<CNodeCallback*> &CallbackList );
698 
699 }
700 
701 #endif // ifndef GENAPI_NODE_H
GCLOGWARN
#define GCLOGWARN(cat,...)
Definition: CLog.h:131
GENAPI_NAMESPACE
Lexical analyzer for CIntSwissKnife.
Definition: Destructible.h:30
GENAPI_NAMESPACE::EAccessMode
enum GENAPI_NAMESPACE::_EAccessMode EAccessMode
access mode of a node
GENAPI_NAMESPACE::CNodeImpl::m_AccessModeCache
EAccessMode m_AccessModeCache
cache access mode
Definition: Node.h:507
GENAPI_NAMESPACE::intfIBase
@ intfIBase
IBase interface.
Definition: Types.h:191
GENAPI_NAMESPACE::CNodeImpl::GetStandardNameSpace
void GetStandardNameSpace(string_t &VariableContent) const
GENAPI_NAMESPACE::CNodeImpl::GetPropertyNames
virtual void GetPropertyNames(GENICAM_NAMESPACE::gcstring_vector &PropertyNames) const
Returns a list of the names all properties set during initialization.
GENAPI_NAMESPACE::CNodeImpl::m_Selecting
FeatureList_t m_Selecting
List of selecting features.
Definition: Node.h:423
GENAPI_NAMESPACE::_CycleDetectAccesMode
@ _CycleDetectAccesMode
used internally for AccessMode cycle detection
Definition: Types.h:62
GENAPI_NAMESPACE::CNodeImpl::GetNodeMapPrivate
INodeMapPrivate * GetNodeMapPrivate()
Retrieves the INodeMapPrivate interface.
Definition: Node.h:262
GENAPI_NAMESPACE::CNodeImpl::PostSetValueFinalizer::PostSetValueFinalizer
PostSetValueFinalizer(CNodeImpl *pThis, std::list< CNodeCallback * > &CallbacksToFire)
Constructor.
Definition: Node.h:564
GENAPI_NAMESPACE::CNodeImpl::m_AllTerminalNodes
NodePrivateVector_t m_AllTerminalNodes
All indirectly connected terminal nodes For details see GenICam wiki : GenApi/SoftwareArchitecture/No...
Definition: Node.h:493
GENAPI_NAMESPACE::NodeID
GENICAM_INTERFACE GENAPI_DECL_ABSTRACT CNodeData::ENodeType_t NodeID_t NodeID
Definition: INodeMapPrivate.h:59
GENAPI_NAMESPACE::CNodeImpl::m_EventID
GENICAM_NAMESPACE::gcstring m_EventID
The EventID.
Definition: Node.h:426
GENAPI_NAMESPACE::CNodeImpl::PostSetValueFinalizer::m_CallbacksToFire
std::list< CNodeCallback * > & m_CallbacksToFire
list of callbacks to file
Definition: Node.h:579
GENAPI_NAMESPACE::CNodeImpl::CNodeImpl
CNodeImpl()
Constructor.
GENAPI_NAMESPACE::CNodeImpl::m_ExposeStatic
EYesNo m_ExposeStatic
Definition: Node.h:655
GENAPI_NAMESPACE::CNodeImpl::GetNodeName
void GetNodeName(string_t &VariableContent) const
GENAPI_NAMESPACE::CNodeImpl::GetParents
virtual void GetParents(GENAPI_NAMESPACE::NodeList_t &Parents) const
GENAPI_NAMESPACE::CNodeImpl::m_InvalidatingChildren
NodePrivateVector_t m_InvalidatingChildren
All directly connected nodes which invalidate this node For details see GenICam wiki : GenApi/Softwar...
Definition: Node.h:485
GENAPI_NAMESPACE::CNodeImpl::m_Parents
NodePrivateVector_t m_Parents
All nodes for which this node is at least a DependecyChild.
Definition: Node.h:473
GENAPI_NAMESPACE::CNodeImpl::SetUserData
UserData_t SetUserData(UserData_t userdata)
GENAPI_NAMESPACE::CNodeImpl::InternalGetNameSpace
virtual GENAPI_NAMESPACE::ENameSpace InternalGetNameSpace() const
Get name space.
GENAPI_NAMESPACE::CNodeImpl::PostSetValueFinalizer::operator=
PostSetValueFinalizer & operator=(const PostSetValueFinalizer &)
PolyReference.h
Definition of polymorphical smart pointer.
GENAPI_NAMESPACE::CNodeImpl::InternalCheckError
virtual void InternalCheckError() const
Checks for an explicitly via the <pError> element defined error.
GENAPI_NAMESPACE::CNodeImpl::InternalGetToolTip
virtual GENICAM_NAMESPACE::gcstring InternalGetToolTip() const
Get a short description of the node.
INodeMapPrivate.h
Definition of interface INodeMapPrivate.
GENAPI_NAMESPACE::CNodeImpl::Initialize
virtual void Initialize(GENAPI_NAMESPACE::INodeMapPrivate *const pNodeMap, CNodeData::ENodeType_t NodeType, NodeID_t &NodeID)
GENAPI_NAMESPACE::CNodeImpl::PostSetValue
void PostSetValue(std::list< CNodeCallback * > &CallbacksToFire)
Fires callback on all nodes which became affected by a SetValue call into the node tree.
GENAPI_NAMESPACE::CNodeImpl::PreSetValue
void PreSetValue()
Invalidates all nodes which will become affected by a SetValue call into the node tree.
GENAPI_NAMESPACE::CNodeImpl::m_DontDeleteThisCache
bool m_DontDeleteThisCache
indicates that the cache has been filled and should not be cleared at the end of the operation
Definition: Node.h:554
GENAPI_NAMESPACE::CNodeImpl::IsStreamable
virtual bool IsStreamable() const
True if the node is streamable.
GENAPI_NAMESPACE::CNodeImpl::m_propagationState
ETerminalPropagationState m_propagationState
Current state for propagating terminals.
Definition: Node.h:449
GENAPI_NAMESPACE::CNodeImpl::SetParent
void SetParent(INodePrivate *pParent)
Sets a parent : CAVE : for internal use only...
Definition: Node.h:268
GENAPI_NAMESPACE::CNodeImpl::m_pNodeMap
INodeMapPrivate * m_pNodeMap
Pointer to the node map.
Definition: Node.h:533
GENAPI_NAMESPACE::CNodeImpl
Standard implementation for the INode and the ISelector interface.
Definition: Node.h:86
GENICAM_NAMESPACE::gcstring
A string class which is a clone of std::string.
Definition: GCString.h:52
GENAPI_NAMESPACE::CNodeImpl::m_pRangeLog
GENICAM_NAMESPACE::ILogger * m_pRangeLog
Logger for messages concerning the range check.
Definition: Node.h:633
GENAPI_NAMESPACE::CNodeImpl::m_ListOfValidValuesCacheValid
bool m_ListOfValidValuesCacheValid
true if the list of valid value is cached
Definition: Node.h:518
GENAPI_NAMESPACE::CNodeImpl::CanBeRead
virtual bool CanBeRead(bool Verify)
GENAPI_NAMESPACE::CNodeImpl::GetProperty
virtual bool GetProperty(const GENICAM_NAMESPACE::gcstring &PropertyName, GENICAM_NAMESPACE::gcstring &ValueStr, GENICAM_NAMESPACE::gcstring &AttributeStr)
Retrieves a property plus an additional attribute by name.
GENAPI_NAMESPACE::CNodeImpl::GetSelectingFeatures
virtual void GetSelectingFeatures(FeatureList_t &) const
GENICAM_NAMESPACE::ILogger
Definition: ILogger.h:11
GENAPI_NAMESPACE::Value2String
void Value2String(T Value, GENICAM_NAMESPACE::gcstring &ValueStr)
Converts an T property to a string.
Definition: Value2String.h:62
GENAPI_NAMESPACE::IUserData
GENICAM_INTERFACE GENAPI_DECL_ABSTRACT IUserData
Interface to manage user data stored in nodes or nodemaps.
Definition: IUserData.h:34
GENAPI_NAMESPACE::CNodeImpl::EntryMethodFinalizer::~EntryMethodFinalizer
~EntryMethodFinalizer()
Destructor calling.
Definition: Node.h:605
GENAPI_NAMESPACE::CNodeImpl::InternalGetChildren
virtual void InternalGetChildren(GENAPI_NAMESPACE::NodeList_t &Children, ELinkType LinkType) const
Get all children of the node.
GENAPI_NAMESPACE::CNodeImpl::InternalGetNodeMap
virtual INodeMap * InternalGetNodeMap() const
Retrieves the node map.
GENAPI_NAMESPACE::CNodeImpl::m_pPortLog
GENICAM_NAMESPACE::ILogger * m_pPortLog
Logger for messages concerning the port access.
Definition: Node.h:636
GENAPI_NAMESPACE::CNodeCallback
callback body instance for INode pointers
Definition: NodeCallback.h:55
GENAPI_NAMESPACE::CNodeImpl::m_Invalidators
NodeList_t m_Invalidators
List of references to nodes which may invalidate this node.
Definition: Node.h:452
GENAPI_NAMESPACE::CNodeImpl::InternalInvalidateNode
virtual void InternalInvalidateNode(std::list< CNodeCallback * > &CallbacksToFire)
GENAPI_NAMESPACE::CNodeImpl::InternalGetPrincipalInterfaceType
virtual EInterfaceType InternalGetPrincipalInterfaceType() const
Implementation of IBase::GetPrincipalInterfaceType()
Definition: Node.h:108
GENAPI_NAMESPACE::CNodeImpl::InternalIsAccessModeCacheable
virtual EYesNo InternalIsAccessModeCacheable() const
True if the AccessMode can be cached.
GENAPI_NAMESPACE::CNodeImpl::GetLock
CLock & GetLock() const
Acquire central lock.
GENAPI_NAMESPACE::CNodeImpl::InternalGetPollingTime
virtual int64_t InternalGetPollingTime() const
recommended polling time (for not cachable nodes)
GENAPI_NAMESPACE::CNodeImpl::GetEventID
virtual GENICAM_NAMESPACE::gcstring GetEventID() const
Get the EventId of the node.
GENAPI_NAMESPACE::CNodeImpl::m_Name
GENICAM_NAMESPACE::gcstring m_Name
The name of the node.
Definition: Node.h:372
GENAPI_NAMESPACE::CNodeImpl::m_NodeID
NodeID_t m_NodeID
The node's ID.
Definition: Node.h:651
GENAPI_NAMESPACE::CNodeImpl::m_pUserData
UserData_t m_pUserData
Storage of user defined data. Ownership remains by the user!. Use IUserData interface to access the d...
Definition: Node.h:659
GENAPI_NAMESPACE::CNodeImpl::SetInvalid
virtual void SetInvalid(ESetInvalidMode simMode)
GENAPI_NAMESPACE::CNodeImpl::m_IsDeprecated
EYesNo m_IsDeprecated
indicates that the feature should not be used any more
Definition: Node.h:458
GENAPI_NAMESPACE::CNodeImpl::IsAccessModeCached
bool IsAccessModeCached() const
returns true, if the AccessModeCache is valid
Definition: Node.h:215
GENAPI_NAMESPACE::DeleteDoubleCallbacksCompare
bool DeleteDoubleCallbacksCompare(GENAPI_NAMESPACE::CNodeCallback *pA, GENAPI_NAMESPACE::CNodeCallback *pB)
Helper function for DeleteDoubleCallbacks.
GENAPI_NAMESPACE::CNodeImpl::CollectCallbacksToFire
virtual void CollectCallbacksToFire(std::list< CNodeCallback * > &CallbacksToFire, bool allDependents=false, bool always=false)
GENAPI_NAMESPACE::Verify
GENICAM_INTERFACE GENAPI_DECL_ABSTRACT bool Verify
Definition: IBoolean.h:61
GENAPI_NAMESPACE::CNodeImpl::InternalGetDisplayName
virtual GENICAM_NAMESPACE::gcstring InternalGetDisplayName() const
GENAPI_NAMESPACE::CNodeImpl::EntryMethodFinalizer::m_pNodeMapPrivate
INodeMapPrivate * m_pNodeMapPrivate
Private cache for the INodeMapPrivate pointer.
Definition: Node.h:612
GENAPI_NAMESPACE::CNodeImpl::m_IsStreamable
EYesNo m_IsStreamable
indicates if the node is streamable
Definition: Node.h:429
GENAPI_NAMESPACE::INodeMap
GENICAM_INTERFACE INodeMap
Interface to access the node map.
Definition: INode.h:52
GENAPI_NAMESPACE::CNodeImpl::SetProperty
virtual void SetProperty(CProperty &Property)
GENAPI_NAMESPACE::EInterfaceType
enum GENAPI_NAMESPACE::_EInterfaceType EInterfaceType
typedef for interface type
GENAPI_NAMESPACE::CNodeImpl::m_WritingChildren
NodePrivateVector_t m_WritingChildren
all nodes which can write a value further down the node stack For details see GenICam wiki : GenApi/S...
Definition: Node.h:481
GENAPI_NAMESPACE::CNodeImpl::InternalGetDocuURL
virtual GENICAM_NAMESPACE::gcstring InternalGetDocuURL() const
Gets a URL pointing to the documentation of that feature.
GENAPI_NAMESPACE::CNodeImpl::m_NameSpace
ENameSpace m_NameSpace
The namespace of the node.
Definition: Node.h:378
GENAPI_NAMESPACE::CNodeImpl::PostSetValueFinalizer::m_pThis
CNodeImpl * m_pThis
pointer to owner object
Definition: Node.h:576
GENAPI_NAMESPACE::CNodeImpl::CacheAccessModeIfPossible
void CacheAccessModeIfPossible(EAccessMode AccessMode) const
Definition: Node.h:509
GENAPI_NAMESPACE::CNodeImpl::add_child
void add_child(CPropertyID::EProperty_ID_t PropertyID, CProperty &, INodePrivate *pNode)
Definition: Node.h:320
GENAPI_NAMESPACE::CNodeImpl::GetNodeID
virtual NodeID_t GetNodeID()
GENAPI_NAMESPACE::CNodeImpl::m_ToolTip
GENICAM_NAMESPACE::gcstring m_ToolTip
The ToolTip for the node.
Definition: Node.h:387
GENAPI_NAMESPACE::CNodeImpl::m_DocuURL
GENICAM_NAMESPACE::gcstring m_DocuURL
A URL pointing or the documentation of this featrues.
Definition: Node.h:455
GENAPI_NAMESPACE::CNodeImpl::InternalGetVisibility
virtual EVisibility InternalGetVisibility() const
Get the recommended visibility of the node.
GENAPI_NAMESPACE::DeleteDoubleCallbacks
void DeleteDoubleCallbacks(std::list< CNodeCallback * > &CallbackList)
deletes double callbacks from list
GENAPI_NAMESPACE::CNodeImpl::m_pPreProcLog
GENICAM_NAMESPACE::ILogger * m_pPreProcLog
Logger for things done during pre-processing of the node map, e.g. determining dependencies.
Definition: Node.h:642
GENAPI_NAMESPACE::CNodeImpl::m_PropertyNames
GENICAM_NAMESPACE::gcstring_vector m_PropertyNames
Helper: A list of all properties belonging to this node.
Definition: Node.h:461
GENAPI_NAMESPACE::CNodeImpl::GetNodeType
virtual CNodeData::ENodeType_t GetNodeType()
GENAPI_NAMESPACE::CNodeImpl::m_IsLocked
CBooleanPolyRef m_IsLocked
Reference to a Node, which indicates if the node is locked (i.e. not writable)
Definition: Node.h:402
GENAPI_NAMESPACE::EMethod
EMethod
denotes through which method call the node tree was entered
Definition: Exception.h:40
GENAPI_NAMESPACE::ELinkType
enum GENAPI_NAMESPACE::_ELinkType ELinkType
typedef for link type
GENAPI_NAMESPACE::CNodeImpl::GetTerminalNodes
virtual void GetTerminalNodes(GENAPI_NAMESPACE::NodeList_t &Terminals) const
GENAPI_NAMESPACE::CNodeImpl::m_NodeTypeEnum
CNodeData::ENodeType_t m_NodeTypeEnum
Definition: Node.h:653
GENAPI_NAMESPACE::CNodeImpl::IsTerminalNode
virtual bool IsTerminalNode() const
GENAPI_NAMESPACE::IEnumeration
GENICAM_INTERFACE GENAPI_DECL_ABSTRACT IEnumeration
Interface for enumeration properties.
Definition: IEnumeration.h:60
GENAPI_NAMESPACE::CNodeImpl::PostSetValueFinalizer
Used to ensure that PostSetValue() is called in any case.
Definition: Node.h:560
GENAPI_NAMESPACE::CNodeImpl::InternalGetDeviceName
virtual GENICAM_NAMESPACE::gcstring InternalGetDeviceName() const
Get a name of the device.
GENAPI_NAMESPACE::CNodeImpl::GetQualifiedName
GENICAM_NAMESPACE::gcstring GetQualifiedName(GENICAM_NAMESPACE::gcstring Name, ENameSpace NameSpace) const
Creates the full qualified name.
GENAPI_NAMESPACE::CNodeImpl::InternalDeregisterCallback
virtual bool InternalDeregisterCallback(CallbackHandleType hCallback)
Deregister change callback.
GENAPI_NAMESPACE::CNodeImpl::m_IsAvailable
CBooleanPolyRef m_IsAvailable
Reference to a Node, which indicates if the node is available.
Definition: Node.h:399
GENAPI_NAMESPACE::CNodeImpl::eBeingVisited
@ eBeingVisited
PropagateTerminals is in progress for node, used for detecting cycles.
Definition: Node.h:444
GENAPI_NAMESPACE::UserData_t
void * UserData_t
Definition: IUserData.h:24
INodePrivate.h
Definition of interface INodePrivate.
GENAPI_NAMESPACE::CNodeImpl::InternalGetCachingMode
virtual ECachingMode InternalGetCachingMode() const
Get Caching Mode.
GENAPI_NAMESPACE::CNodeImpl::add_orphan_child
void add_orphan_child(CPropertyID::EProperty_ID_t PropertyID, CProperty &, INodePrivate *pNode)
Definition: Node.h:337
GENAPI_NAMESPACE::AutoLock
Definition: Synch.h:139
GENAPI_NAMESPACE::CNodeImpl::m_AccessModeCacheability
EYesNo m_AccessModeCacheability
indicates if the AccessMode is cacheable
Definition: Node.h:524
GENAPI_NAMESPACE::Counter
Definition: Counter.h:36
GENAPI_NAMESPACE::RW
@ RW
Read and Write.
Definition: Types.h:60
GENAPI_NAMESPACE::ESetInvalidMode
ESetInvalidMode
Three different modes of operation for INodePrivate::SetInvalid()
Definition: INodePrivate.h:91
GENAPI_NAMESPACE::CNodeImpl::size_type
std::string::size_type size_type
Definition: Node.h:674
GENAPI_NAMESPACE::CLock
A lock class.
Definition: Synch.h:63
GENAPI_NAMESPACE::CallbackHandleType
intptr_t CallbackHandleType
the callback handle for nodes
Definition: INode.h:58
GENAPI_NAMESPACE::CNodeImpl::string_t
std::string string_t
Definition: Node.h:673
GENAPI_NAMESPACE::INode
GENICAM_INTERFACE INode
Interface common to all nodes.
Definition: ICategory.h:51
GENAPI_NAMESPACE::CNodeImpl::InternalGetAccessMode
virtual EAccessMode InternalGetAccessMode() const
Get the access mode of the node.
GENAPI_NAMESPACE::CNodeImpl::ImposeVisibility
virtual void ImposeVisibility(EVisibility ImposedVisibility)
Imposes a visibility to the natural visibility of the node.
GENAPI_NAMESPACE::INodeMapPrivate
GENICAM_INTERFACE GENAPI_DECL_ABSTRACT INodeMapPrivate
NodeMap functions used for initialization.
Definition: INodeMapPrivate.h:59
GENAPI_NAMESPACE::CNodeImpl::GetCastAlias
virtual INode * GetCastAlias() const
Retrieves the a node which describes the same feature so that it can be casted.
GENAPI_NAMESPACE::EYesNo
enum GENAPI_NAMESPACE::_EYesNo EYesNo
Defines the choices of a Yes/No alternatives.
GENAPI_NAMESPACE::CNodeImpl::GetUserData
UserData_t GetUserData() const
GENAPI_NAMESPACE::CNodeImpl::m_CachingMode
ECachingMode m_CachingMode
indicates that the node has changed
Definition: Node.h:417
GENAPI_NAMESPACE::NodePrivateVector_t
std::vector< INodePrivate * > NodePrivateVector_t
a vector of node references using the INodePrivate interface
Definition: INodePrivate.h:58
GENAPI_NAMESPACE::CNodeImpl::GetModelName
void GetModelName(string_t &VariableContent) const
GENAPI_NAMESPACE::CNodeImpl::m_PollingTime
int64_t m_PollingTime
recommended polling time in [ms]
Definition: Node.h:438
GENAPI_NAMESPACE::CNodeImpl::eNotVisited
@ eNotVisited
PropagateTerminals not run for node.
Definition: Node.h:443
GENAPI_NAMESPACE::CNodeImpl::m_DisplayName
GENICAM_NAMESPACE::gcstring m_DisplayName
The display name string of the node.
Definition: Node.h:384
GENAPI_NAMESPACE::CPointer
Encapsulates a GenApi pointer dealing with the dynamic_cast automatically.
Definition: Pointer.h:51
GENAPI_NAMESPACE::Yes
@ Yes
yes
Definition: Types.h:142
GENAPI_NAMESPACE::CNodeImpl::m_pAccessLog
GENICAM_NAMESPACE::ILogger * m_pAccessLog
Logger for messages concerning the AccessMode.
Definition: Node.h:627
GENAPI_NAMESPACE::CNodeImpl::m_IsImplemented
CBooleanPolyRef m_IsImplemented
Reference to a Node, which indicates if the node is implemented.
Definition: Node.h:396
GENAPI_NAMESPACE::CNodeImpl::InternalIsValueCacheValid
virtual bool InternalIsValueCacheValid() const
Checks if the value comes from cache or is requested from another node.
GENAPI_NAMESPACE::CNodeImpl::GetNodeType
GENICAM_NAMESPACE::gcstring GetNodeType() const
Definition: Node.h:364
GENAPI_NAMESPACE::NodeType
GENICAM_INTERFACE GENAPI_DECL_ABSTRACT CNodeData::ENodeType_t NodeType
Definition: INodeMapPrivate.h:59
GENAPI_NAMESPACE::CNodeImpl::m_pCacheLog
GENICAM_NAMESPACE::ILogger * m_pCacheLog
Logger for messages concerning the caching access.
Definition: Node.h:639
GENAPI_NAMESPACE::INodePrivate
GENICAM_INTERFACE INodePrivate
Interface including the methods for node construction common to all nodes.
Definition: INodePrivate.h:54
GENAPI_NAMESPACE::CNodeImpl::m_Callbacks
std::list< CNodeCallback * > m_Callbacks
List of callbacks.
Definition: Node.h:590
GENAPI_NAMESPACE::CNodeImpl::IsSelector
virtual bool IsSelector() const
GENAPI_NAMESPACE::CNodeImpl::m_pValueLog
GENICAM_NAMESPACE::ILogger * m_pValueLog
Logger for messages concerning the getting and setting values.
Definition: Node.h:630
GENAPI_NAMESPACE::ENameSpace
enum GENAPI_NAMESPACE::_ENameSpace ENameSpace
Defines if a node name is standard or custom.
GENAPI_NAMESPACE::EVisibility
enum GENAPI_NAMESPACE::_EVisibility EVisibility
recommended visibility of a node
GENAPI_NAMESPACE::CNodeImpl::GetNodeValue
void GetNodeValue(const CValuePtr &ptrValue, CNodeImpl::string_t &VariableContent) const
GENAPI_NAMESPACE::CNodeImpl::InternalGetName
virtual GENICAM_NAMESPACE::gcstring InternalGetName(bool FullQualified=false) const
Get node name.
GENAPI_NAMESPACE::CNodeImpl::ETerminalPropagationState
ETerminalPropagationState
States when propagating terminals.
Definition: Node.h:441
int64_t
__int64 int64_t
Definition: config-win32.h:21
GENAPI_NAMESPACE::CNodeImpl::m_pCastAlias
INode * m_pCastAlias
Pointer to a Node, which describes the same feature as this one so that it can be casted.
Definition: Node.h:414
GENAPI_NAMESPACE::CNodeImpl::PostSetValueFinalizer::~PostSetValueFinalizer
~PostSetValueFinalizer()
Destructor calling PostSetValue()
Definition: Node.h:570
std::ostringstream
Definition: Portability.hh:42
GENAPI_NAMESPACE::CNodeImpl::IsFeature
virtual bool IsFeature() const
True if the node can be reached via category nodes from a category node named "Std::Root".
GENAPI_NAMESPACE::_UndefinedAccesMode
@ _UndefinedAccesMode
Object is not yet initialized.
Definition: Types.h:61
GENAPI_NAMESPACE::CNodeImpl::m_pError
IEnumeration * m_pError
Pointer to a Error class.
Definition: Node.h:408
GENAPI_NAMESPACE::CNodeImpl::m_pMiscLog
GENICAM_NAMESPACE::ILogger * m_pMiscLog
Logger for messages concerning miscellaneous access which does not fit to the other categories.
Definition: Node.h:645
GENICAM_NAMESPACE::gcstring::c_str
virtual const char * c_str(void) const
GENAPI_NAMESPACE::CNodeImpl::eTerminalPropagationDone
@ eTerminalPropagationDone
PropagateTerminals is done for node, can just copy from m_AllTerminalNodes.
Definition: Node.h:445
GENAPI_NAMESPACE::CNodeImpl::Lock
AutoLock Lock
shortcut for the lock type
Definition: Node.h:539
Value2String.h
Definition of value2string and string2value functions.
GENAPI_NAMESPACE::CNodeImpl::m_ImposedVisibility
EVisibility m_ImposedVisibility
Visibility imposed to the natural visibility of the node.
Definition: Node.h:435
GENAPI_NAMESPACE::CNodeImpl::m_ImposedAccessMode
EAccessMode m_ImposedAccessMode
Access mode imposed on the natural access mode of the node.
Definition: Node.h:432
GENAPI_NAMESPACE::ECachingMode
enum GENAPI_NAMESPACE::_ECachingMode ECachingMode
caching mode of a register
GENAPI_NAMESPACE::CNodeImpl::m_CachingModeCache
ECachingMode m_CachingModeCache
stores the cached value of the CachingMode
Definition: Node.h:504
GENAPI_NAMESPACE::CNodeImpl::m_Description
GENICAM_NAMESPACE::gcstring m_Description
The Description of the node.
Definition: Node.h:390
GENAPI_NAMESPACE::CNodeImpl::MaxPath
static const size_t MaxPath
Definition: Node.h:683
GENAPI_NAMESPACE::CNodeImpl::GetVendorName
void GetVendorName(string_t &VariableContent) const
GENAPI_NAMESPACE::CNodeImpl::m_pAlias
INode * m_pAlias
Pointer to a Node, which describes the same feature as this one.
Definition: Node.h:411
GENAPI_NAMESPACE::CNodeImpl::EntryMethodFinalizer::EntryMethodFinalizer
EntryMethodFinalizer(const INodePrivate *pThis, EMethod EntryMethod, bool stremable=false, bool IgnoreCache=false)
Constructor.
Definition: Node.h:597
GENAPI_NAMESPACE::CNodeImpl::m_ElapsedTime
int64_t m_ElapsedTime
time elapsed since the last poll
Definition: Node.h:536
GENAPI_NAMESPACE::CNodeImpl::EntryMethodFinalizer
Used to ensure that PostSetValue() is called in any case.
Definition: Node.h:593
GENAPI_NAMESPACE::CNodeImpl::m_VariableChildren
NodePrivateVector_t m_VariableChildren
All node use as variable by this node.
Definition: Node.h:496
GENAPI_NAMESPACE::CNodeImpl::InternalRegisterCallback
virtual CallbackHandleType InternalRegisterCallback(CNodeCallback *pCallback)
Register change callback.
GENAPI_NAMESPACE::CNodeImpl::m_DeviceName
GENICAM_NAMESPACE::gcstring m_DeviceName
The device name of the node tree.
Definition: Node.h:381
GENAPI_NAMESPACE::CNodeImpl::m_IsFeature
EYesNo m_IsFeature
indicates that the node is a feature that is reachable from the Root node via categories
Definition: Node.h:464
GENAPI_NAMESPACE::CNodeImpl::m_Selected
FeatureList_t m_Selected
List of selected features.
Definition: Node.h:420
GENAPI_NAMESPACE::CNodeImpl::m_Visibility
EVisibility m_Visibility
recommended visibility;
Definition: Node.h:393
GENAPI_NAMESPACE::CNodeImpl::~CNodeImpl
virtual ~CNodeImpl()
Destructor.
GENAPI_NAMESPACE::CNodeImpl::GetStringStreamContent
void GetStringStreamContent(const ostringstream_t &Content, string_t &VariableContent) const
GENAPI_NAMESPACE::CNodeImpl::GetAlias
virtual INode * GetAlias() const
Retrieves the a node which describes the same feature in a different way.
GENAPI_NAMESPACE::detail::push_back_unique
void push_back_unique(C &c, const V &v)
Add a value to container if not already present.
Definition: Node.h:69
GENAPI_NAMESPACE::CNodeImpl::m_BlockPolling
CBooleanPolyRef m_BlockPolling
Reference to a Node, which indicates if the node is not cached.
Definition: Node.h:405
GCException.h
GENAPI_NAMESPACE::CNodeImpl::GetBathometer
Counter & GetBathometer() const
The bathometer is a counter used to measure the depth of SetValue-like call chains.
GENAPI_NAMESPACE::CNodeImpl::m_AllDependingNodes
NodePrivateVector_t m_AllDependingNodes
All directly or indirectly connected nodes which are invalidated by this nodes (i....
Definition: Node.h:489
GENAPI_NAMESPACE::CNodeImpl::m_TerminalNodeWritten
bool m_TerminalNodeWritten
indicates that this terminal node was written and not yet invalidated.
Definition: Node.h:557
GENAPI_NAMESPACE::CNodeImpl::ostringstream_t
std::ostringstream ostringstream_t
Definition: Node.h:675
GENAPI_NAMESPACE::ISelector
GENICAM_INTERFACE GENAPI_DECL_ABSTRACT ISelector
Interface for groups of features selected by a single one.
Definition: ISelector.h:49
GENAPI_NAMESPACE::CNodeImpl::m_ReadingChildren
NodePrivateVector_t m_ReadingChildren
all nodes which can be read from For details see GenICam wiki : GenApi/SoftwareArchitecture/NodeDepen...
Definition: Node.h:477
GENAPI_NAMESPACE::CNodeImpl::InternalIsDeprecated
virtual bool InternalIsDeprecated() const
True if the node should not be used any more.
GENAPI_NAMESPACE::CNodeImpl::FinalConstruct
virtual void FinalConstruct()
GENAPI_NAMESPACE::CNodeImpl::m_Extension
GENICAM_NAMESPACE::gcstring m_Extension
The metadata from the extension.
Definition: Node.h:375
GENAPI_NAMESPACE::CNodeImpl::Poll
virtual bool Poll(int64_t ElapsedTime)
GENAPI_NAMESPACE::CNodeImpl::InternalGetDescription
virtual GENICAM_NAMESPACE::gcstring InternalGetDescription() const
Get a long description of the node.
GENAPI_NAMESPACE::CNodeImpl::m_ValueCacheValid
bool m_ValueCacheValid
true if the value cache is valid
Definition: Node.h:515
GENAPI_NAMESPACE::CNodeImpl::CanBeWritten
virtual bool CanBeWritten(bool Verify)
GENAPI_NAMESPACE::CNodeImpl::char_t
char char_t
Definition: Node.h:676
GENAPI_NAMESPACE::CBooleanPolyRef
A reference to a bool which can bei either an bool variable, or a pointer to an IInteger,...
Definition: PolyReference.h:449
GENAPI_NAMESPACE::CNodeImpl::ImposeAccessMode
virtual void ImposeAccessMode(EAccessMode ImposedAccessMode)
Imposes an access mode to the natural access mode of the node.
GENAPI_NAMESPACE::IBase
GENICAM_INTERFACE GENAPI_DECL_ABSTRACT IBase
Base interface common to all nodes.
Definition: IBase.h:55
GENAPI_NAMESPACE::CNodeImpl::InternalIsCachable
virtual bool InternalIsCachable() const
Is the node value cachable.
GENAPI_NAMESPACE::NodeList_t
node_vector NodeList_t
a list of node references
Definition: INode.h:55
GENAPI_NAMESPACE::CNodeImpl::GetSelectedFeatures
virtual void GetSelectedFeatures(FeatureList_t &list) const


rc_genicam_api
Author(s): Heiko Hirschmueller
autogenerated on Wed Dec 4 2024 03:10:11