All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
INodePrivate.h
Go to the documentation of this file.
1 //-----------------------------------------------------------------------------
2 // (c) 2006 by Basler Vision Technologies
3 // Section: Vision Components
4 // Project: GenApi
5 // Author: MargretAlbrecht
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 //-----------------------------------------------------------------------------
32 #ifndef GENAPI_INODEPRIVATE_H
33 #define GENAPI_INODEPRIVATE_H
34 
35 #include "../GenApiDll.h"
36 #include "../Types.h"
37 #include "../INode.h"
38 #include "../INodeMap.h"
39 #include "NodeMapData/NodeData.h"
40 
41 #include <vector>
42 #include <set>
43 #include <list>
44 
45 struct NodeID_t;
46 class CProperty;
47 
48 namespace GENAPI_NAMESPACE
49 {
50  //*************************************************************
51  // INodePrivate interface
52  //*************************************************************
53 
56 
58  typedef std::vector< INodePrivate* > NodePrivateVector_t;
59 
64  GENICAM_INTERFACE GENAPI_DECL_ABSTRACT INodePrivate : public INode
65  {
66  /**** Methods to create nodes ****/
67 
69  virtual void Initialize(GENAPI_NAMESPACE::INodeMapPrivate* const pNodeMap, CNodeData::ENodeType_t NodeType, NodeID_t &NodeID) = 0;
70 
72  virtual CNodeData::ENodeType_t GetNodeType() = 0;
73 
75  virtual NodeID_t GetNodeID() = 0;
76 
78  virtual void FinalConstruct() = 0;
79 
81  virtual void SetProperty(CProperty &Property) = 0;
82 
84  // BEWARE: PropertyList contains pointers to CProperty objects on the heap. The caller is responsible for deleting them
85  // e.g. by calling CNodeData::FreePropertiesList( PropertyList )
86  virtual bool GetProperty(CNodeDataMap *pNodeDataMap, CPropertyID::EProperty_ID_t PropertyID, CNodeData::PropertyVector_t &PropertyList) const = 0;
87 
88  /**** Methods to handle callbacks ****/
89 
92  {
95  simDependentsAfterWrite, // !< Invalidate all of its dependents but not itself after a write of a terninal node
96  simDependents // !< Invalidate all of its dependents but not itself
97  };
98 
100  virtual void SetInvalid(ESetInvalidMode simMode) = 0;
101 
103  virtual void CollectCallbacksToFire(std::list<CNodeCallback*> &CallbacksToFire, bool allDependents = false, bool always = false) = 0;
104 
106  virtual bool IsTerminalNode() const = 0;
107 
109  virtual void GetTerminalNodes(NodeList_t &) const = 0;
110 
112 
115  virtual bool Poll( int64_t ElapsedTime ) = 0;
116 
117  virtual bool CanBeWritten(bool Verify) = 0;
118 
119  virtual bool CanBeRead(bool Verify) = 0;
120  };
121 
122 
123 }
124 
125 #endif // ifndef GENAPI_INODEPRIVATE_H
GENAPI_NAMESPACE::IsTerminalNode
virtual bool IsTerminalNode() const =0
Returns true, if this node is terminal.
GENAPI_NAMESPACE
Lexical analyzer for CIntSwissKnife.
Definition: Destructible.h:30
GENAPI_NAMESPACE::NodeID
GENICAM_INTERFACE GENAPI_DECL_ABSTRACT CNodeData::ENodeType_t NodeID_t NodeID
Definition: INodeMapPrivate.h:59
GENAPI_NAMESPACE::GetNodeID
virtual NodeID_t GetNodeID()=0
Reads back the node id.
GENAPI_NAMESPACE::simDependentsAfterWrite
@ simDependentsAfterWrite
Definition: INodePrivate.h:95
GENAPI_NAMESPACE::simOnlyMe
@ simOnlyMe
Invalidate only the node itself.
Definition: INodePrivate.h:93
GENICAM_INTERFACE
#define GENICAM_INTERFACE
Definition: GenICamFwd.h:33
GENAPI_NAMESPACE::CanBeRead
virtual bool CanBeRead(bool Verify)=0
GENAPI_NAMESPACE::Verify
GENICAM_INTERFACE GENAPI_DECL_ABSTRACT bool Verify
Definition: IBoolean.h:61
GENAPI_NAMESPACE::GetNodeType
virtual CNodeData::ENodeType_t GetNodeType()=0
Reads back the node type.
GENAPI_NAMESPACE::GetTerminalNodes
virtual void GetTerminalNodes(NodeList_t &) const =0
Returns the list of all terminal nodes a write access to this node will eventually write to.
GENAPI_NAMESPACE::Poll
virtual bool Poll(int64_t ElapsedTime)=0
Invalidates the node if the polling time has elapsed.
GENAPI_NAMESPACE::CanBeWritten
virtual bool CanBeWritten(bool Verify)=0
GENAPI_NAMESPACE::GetProperty
virtual bool GetProperty(CNodeDataMap *pNodeDataMap, CPropertyID::EProperty_ID_t PropertyID, CNodeData::PropertyVector_t &PropertyList) const =0
Retrieves a property from the node map itself.
GENAPI_NAMESPACE::ESetInvalidMode
ESetInvalidMode
Three different modes of operation for INodePrivate::SetInvalid()
Definition: INodePrivate.h:91
GENAPI_NAMESPACE::INode
GENICAM_INTERFACE INode
Interface common to all nodes.
Definition: ICategory.h:51
GENAPI_NAMESPACE::FinalConstruct
virtual void FinalConstruct(bool DetermineDependencies)=0
finalizes construction of the node map
GENAPI_NAMESPACE::INodeMapPrivate
GENICAM_INTERFACE GENAPI_DECL_ABSTRACT INodeMapPrivate
NodeMap functions used for initialization.
Definition: INodeMapPrivate.h:59
GENAPI_NAMESPACE::NodePrivateVector_t
std::vector< INodePrivate * > NodePrivateVector_t
a vector of node references using the INodePrivate interface
Definition: INodePrivate.h:58
GENAPI_NAMESPACE::NodeType
GENICAM_INTERFACE GENAPI_DECL_ABSTRACT CNodeData::ENodeType_t NodeType
Definition: INodeMapPrivate.h:59
GENAPI_NAMESPACE::INodePrivate
GENICAM_INTERFACE INodePrivate
Interface including the methods for node construction common to all nodes.
Definition: INodePrivate.h:54
GENAPI_NAMESPACE::CollectCallbacksToFire
virtual void CollectCallbacksToFire(std::list< CNodeCallback * > &CallbacksToFire, bool allDependents=false, bool always=false)=0
Update the registered callbacks.
int64_t
__int64 int64_t
Definition: config-win32.h:21
GENAPI_NAMESPACE::simAll
@ simAll
Invalidate the node and all of its dependents.
Definition: INodePrivate.h:94
GENAPI_NAMESPACE::SetInvalid
virtual void SetInvalid(ESetInvalidMode simMode)=0
Invalidate the node resp. the node and all of its dependents.
GENAPI_NAMESPACE::SetProperty
virtual void SetProperty(CProperty &Property)=0
Sets a property to the node map itself.
GENAPI_NAMESPACE::NodeList_t
node_vector NodeList_t
a list of node references
Definition: INode.h:55
GENAPI_NAMESPACE::simDependents
@ simDependents
Definition: INodePrivate.h:96


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