Command.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: Hartmut Nebelung
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 //-----------------------------------------------------------------------------
31 #ifndef GENAPI_COMMAND_H
32 #define GENAPI_COMMAND_H
33 
34 #include "../ICommand.h"
35 #include "Node.h"
36 #include "BaseT.h"
37 #include "ValueT.h"
38 #include "NodeT.h"
39 #include "NodeMap.h"
40 #include "CommandT.h"
41 #include "PolyReference.h"
42 
43 namespace GENAPI_NAMESPACE
44 {
45 
46  //*************************************************************
47  // CCommand class
48  //*************************************************************
49 
60  class CCommandImpl : public ICommand, public CNodeImpl
61  {
62  public:
64  CCommandImpl();
65 
66  //-------------------------------------------------------------
69 
72  {
73  return intfICommand;
74  }
75 
76  //-------------------------------------------------------------
78 
80  virtual bool Poll( int64_t ElapsedTime );
81 
82  //-------------------------------------------------------------
84  //\{
85  // Get value of the node as string
86  virtual GENICAM_NAMESPACE::gcstring InternalToString(bool Verify = false, bool IgnoreCache = false);
87 
88  // Set value of the node as string
89  virtual void InternalFromString(const GENICAM_NAMESPACE::gcstring& valueString, bool Verify = true);
90 
91  // \}
92 
93  protected:
94  //-------------------------------------------------------------
96  //\{
97  // do it!
98  virtual void InternalExecute(bool Verify = true);
99 
100  // done ?
101  virtual bool InternalIsDone(bool Verify, bool &FireCallbacks );
102  // \}
103 
104  public:
106  virtual void SetProperty( CProperty &Property );
107  virtual bool GetProperty( CNodeDataMap *pNodeDataMap, CPropertyID::EProperty_ID_t PropertyID, CNodeData::PropertyVector_t &PropertyList ) const;
108 
109  //-------------------------------------------------------------
110  // Initializing
111  //-------------------------------------------------------------
112 
113  protected:
114 
115  //-------------------------------------------------------------
116  // Member variables
117  //-------------------------------------------------------------
118 
120  typedef enum _EStatus
121  {
125  } EStatus;
126 
128  EStatus m_Status;
129 
132 
135 
136  };
137 
138 
139  class CCommand : public BaseT< ValueT< NodeT< CommandT< CCommandImpl > > > >
140  {
141  };
142 }
143 
144 #endif // GENAPI_COMMAND_H
Definition of the ValueT class template.
ICommand interface.
Definition: Types.h:194
virtual void SetProperty(CProperty &Property)
GENICAM_INTERFACE GENAPI_DECL_ABSTRACT bool Verify
Definition: IBoolean.h:61
virtual void InternalExecute(bool Verify=true)
CIntegerPolyRef m_CommandValue
Value for On.
Definition: Command.h:134
virtual bool Poll(int64_t ElapsedTime)
Invalidates the node if the polling time has elapsed.
__int64 int64_t
Definition: config-win32.h:21
Definition of CommandT class template.
GENICAM_INTERFACE GENAPI_DECL_ABSTRACT ICommand
Interface for command like properties.
Definition: ICommand.h:59
ICommand implementation.
Definition: Command.h:60
Implementation of the IBase interface.
Definition: BaseT.h:48
Definition of the NodeT class template.
virtual EInterfaceType InternalGetPrincipalInterfaceType() const
Implementation of IBase::GetPrincipalInterfaceType()
Definition: Command.h:71
virtual GENICAM_NAMESPACE::gcstring InternalToString(bool Verify=false, bool IgnoreCache=false)
virtual void InternalFromString(const GENICAM_NAMESPACE::gcstring &valueString, bool Verify=true)
EStatus m_Status
the internal status of the command node
Definition: Command.h:128
enum GENAPI_NAMESPACE::CCommandImpl::_EStatus EStatus
possible statuses of the command node
Definition of polymorphical smart pointer.
Definition of the BaseT class template.
EAccessMode InternalGetAccessMode() const
Get the access mode of the node.
Standard implementation for the INode and the ISelector interface.
Definition: Node.h:86
_EStatus
possible statuses of the command node
Definition: Command.h:120
A string class which is a clone of std::string.
Definition: GCString.h:52
virtual bool GetProperty(CNodeDataMap *pNodeDataMap, CPropertyID::EProperty_ID_t PropertyID, CNodeData::PropertyVector_t &PropertyList) const
enum GENAPI_NAMESPACE::_EAccessMode EAccessMode
access mode of a node
A reference to an int64 which can bei either an int64 variable, or a pointer to an IInteger...
Definition: PolyReference.h:68
CIntegerPolyRef m_Value
Reference to value or node representing the value.
Definition: Command.h:131
Declaration of CNodeMap.
virtual bool InternalIsDone(bool Verify, bool &FireCallbacks)
Lexical analyzer for CIntSwissKnife.
Definition: Destructible.h:30
enum GENAPI_NAMESPACE::_EInterfaceType EInterfaceType
typedef for interface type


rc_genicam_api
Author(s): Heiko Hirschmueller
autogenerated on Sun Jun 18 2023 02:43:55