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:195
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.
EAccessMode InternalGetAccessMode() const
Get the access mode of the node.
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
virtual bool GetProperty(CNodeDataMap *pNodeDataMap, CPropertyID::EProperty_ID_t PropertyID, CNodeData::PropertyVector_t &PropertyList) const
enum GENAPI_NAMESPACE::CCommandImpl::_EStatus EStatus
possible statuses of the command node
Definition of polymorphical smart pointer.
Definition of the BaseT class template.
Standard implementation for the INode and the ISelector interface.
Definition: Node.h:86
virtual EInterfaceType InternalGetPrincipalInterfaceType() const
Implementation of IBase::GetPrincipalInterfaceType()
Definition: Command.h:71
_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
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: Autovector.h:48
enum GENAPI_NAMESPACE::_EInterfaceType EInterfaceType
typedef for interface type


rc_genicam_api
Author(s): Heiko Hirschmueller
autogenerated on Wed Mar 17 2021 02:48:40