Pleora Technologies Inc. eBUS SDK v6.2.8.5877 API



PvGenParameter.h
1 // *****************************************************************************
2 //
3 // Copyright (c) 2007, Pleora Technologies Inc., All rights reserved.
4 //
5 // *****************************************************************************
6 
7 #ifndef __PVGENPARAMETER_H__
8 #define __PVGENPARAMETER_H__
9 
10 #include <PvGenICamLib.h>
11 #include <PvGenParameterList.h>
12 #include <PvGenTypes.h>
13 #include <PvGenApi.h>
14 
15 
16 class PvGenEventSink;
17 class PvGenParameterList;
18 
19 namespace PvGenICamLib
20 {
21  class GenParameterArray;
22  class GenParameterInternal;
23  class GenParameterArrayManager;
24 }
25 
26 
27 #ifdef PV_INTERNAL_HEADERS
28  class PvGenBoolean;
29  class PvGenCommand;
30  class PvGenEnum;
31  class PvGenFloat;
32  class PvGenInteger;
33  class PvGenRegister;
34  class PvGenString;
35 #endif // PV_INTERNAL_HEADERS
36 
38 {
39 public:
40 
41 #ifndef EBUS_PYTHON_DOXYGEN
42  PV_GENICAM_API PvString GetName() const;
43  PV_GENICAM_API PvResult GetName( PvString &aName ) const;
44  PV_GENICAM_API PvResult GetType( PvGenType &aType ) const;
45  PV_GENICAM_API PvResult GetCategory( PvString &aCategory ) const;
46  PV_GENICAM_API PvResult GetToolTip( PvString &aToolTip ) const;
47  PV_GENICAM_API PvResult GetDescription( PvString &aDescription ) const;
48  PV_GENICAM_API PvResult GetDisplayName( PvString &aDisplayName ) const;
49  PV_GENICAM_API PvResult GetNameSpace( PvGenNameSpace &aNameSpace ) const;
50 
51  PV_GENICAM_API PvResult IsValueCached( bool &aCached ) const;
52  PV_GENICAM_API PvResult IsPersistent( bool &aPersistent ) const;
53  PV_GENICAM_API PvResult IsImplemented( bool &aImplemented ) const;
54  PV_GENICAM_API PvResult IsAvailable( bool &aAvailable ) const;
55  PV_GENICAM_API PvResult IsWritable( bool &aWritable ) const;
56  PV_GENICAM_API PvResult IsReadable( bool &aReadable ) const;
57  PV_GENICAM_API PvResult IsStreamable( bool &aStreamable ) const;
58 
59  PV_GENICAM_API bool IsValueCached() const;
60  PV_GENICAM_API bool IsPersistent() const;
61  PV_GENICAM_API bool IsImplemented() const;
62  PV_GENICAM_API bool IsAvailable() const;
63  PV_GENICAM_API bool IsWritable() const;
64  PV_GENICAM_API bool IsReadable() const;
65  PV_GENICAM_API bool IsVisible( PvGenVisibility aCurrentVisibility ) const;
66  PV_GENICAM_API bool IsStreamable() const;
67 
68  PV_GENICAM_API PvResult GetVisibility( PvGenVisibility &aVisibility ) const;
69  PV_GENICAM_API PvResult IsVisible( PvGenVisibility aCurrentVisibility, bool &aVisible ) const;
70 
71  PV_GENICAM_API PvResult IsSelector( bool &aSelector ) const;
72  PV_GENICAM_API PvResult GetSelectedParameters( PvGenParameterList &aList ) const;
73  PV_GENICAM_API PvResult GetSelectingParameters( PvGenParameterList &aList ) const;
74 
75  PV_GENICAM_API PvResult RegisterEventSink( PvGenEventSink *aEventSink );
76  PV_GENICAM_API PvResult UnregisterEventSink( PvGenEventSink *aEventSink );
77 
78  PV_GENICAM_API PvString ToString() const;
79  PV_GENICAM_API PvResult ToString( PvString &aValue ) const;
80  PV_GENICAM_API PvResult FromString( const PvString &aValue );
81 
82  PV_GENICAM_API PV_GENAPI_NS::INode *GetNode();
83 
84  // Temporarily disable (or re-enable) parameter update notifications
85  PV_GENICAM_API bool GetUpdatesEnabled();
86  PV_GENICAM_API void SetUpdatesEnabled( bool aEnabled );
87 #else
88  PvString GetName();
89  PvGenType GetType();
90  PvString GetCategory();
91  PvString GetToolTip();
92  PvString GetDescription();
93  PvString GetDisplayName();
94  PvGenNameSpace GetNameSpace();
95 
96  bool IsValueCached();
97  bool IsPersistent();
98  bool IsImplemented();
99  bool IsAvailable();
100  bool IsWritable();
101  bool IsReadable();
102  bool IsStreamable();
103 
104  PvGenVisibility GetVisibility();
105  PvGenVisibility IsVisible();
106 
107  bool IsSelector();
108  PvGenParameterList GetSelectedParameters();
109  PvGenParameterList GetSelectingParameters();
110 
111  PvResult RegisterEventSink( PvGenEventSink *aEventSink );
112  PvResult UnregisterEventSink( PvGenEventSink *aEventSink );
113 
114  PvString ToString();
115  const FromString();
116 
117  PV_GENAPI_NS::INode *GetNode();
118 
119  bool GetUpdatesEnabled();
120  void SetUpdatesEnabled( bool aEnabled );
121 #endif
122 
123 protected:
124 
125  PvGenParameter();
126  virtual ~PvGenParameter();
127 
128 #ifndef PV_GENERATING_DOXYGEN_DOC
129 
130  PvGenICamLib::GenParameterInternal *mThis;
131 
132  friend class PvGenICamLib::GenParameterArray;
133  friend class PvGenICamLib::GenParameterArrayManager;
134 
135 #endif // PV_GENERATING_DOXYGEN_DOC
136 
137 private:
138 
139  // Not implemented
140  PvGenParameter( const PvGenParameter & );
141  const PvGenParameter &operator=( const PvGenParameter & );
142 
143 };
144 
145 
147 {
148 public:
149 
150  virtual void OnParameterUpdate( PvGenParameter *aParameter ) = 0;
151 
152 };
153 
154 #endif
Class used to hold a group of PvGenParameter pointers.
Definition: PvGenParameterList.h:23
PvGenVisibility
Feature (PvGenParameter object) visibility.
Definition: PvGenTypes.h:11
String class.
Definition: PvString.h:21
Definition: PvGenCategory.h:15
Result information.
Definition: PvResult.h:13
GenICam feature: Float.
Definition: PvGenFloat.h:13
GenICam feature: Enumeration. A feature which can take one of many defined values.
Definition: PvGenEnum.h:14
GenICam feature-related constants.
GenICam feature: Boolean. A feature which can either be true or false.
Definition: PvGenBoolean.h:13
GenICam feature: Command. A feature which can only be activated.
Definition: PvGenCommand.h:13
Observer interface for an observable PvGenParameter object.
Definition: PvGenParameter.h:146
Base class for all GenICam feature types.
Definition: PvGenParameter.h:37
PvGenType
Feature data type (Boolean, integer, etc.)
Definition: PvGenTypes.h:22
GenICam feature: Integer.
Definition: PvGenInteger.h:13
GenICam feature: String.
Definition: PvGenString.h:13
GenICam feature: Register, or IRegister. A feature providing direct access to a section of the device...
Definition: PvGenRegister.h:13

Copyright (c) 2002-2021 Pleora Technologies Inc.
www.pleora.com