00001 /*============================================================================= 00002 Copyright (C) 2012 Allied Vision Technologies. All Rights Reserved. 00003 00004 Redistribution of this file, in original or modified form, without 00005 prior written consent of Allied Vision Technologies is prohibited. 00006 00007 ------------------------------------------------------------------------------- 00008 00009 File: EnumEntry.h 00010 00011 Description: Definition of class AVT::VmbAPI::EnumEntry. 00012 An EnumEntry consists of 00013 Name 00014 DisplayName 00015 Value 00016 of one particular enumeration 00017 00018 ------------------------------------------------------------------------------- 00019 00020 THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED 00021 WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF TITLE, 00022 NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 00023 DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, 00024 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 00025 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 00026 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 00027 AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 00028 TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 00029 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00030 00031 =============================================================================*/ 00032 00033 #ifndef AVT_VMBAPI_ENUMENTRY_H 00034 #define AVT_VMBAPI_ENUMENTRY_H 00035 00036 #include <string> 00037 00038 #include <VimbaC/Include/VimbaC.h> 00039 #include <VimbaCPP/Include/VimbaCPPCommon.h> 00040 #include <VimbaCPP/Include/SharedPointerDefines.h> 00041 00042 namespace AVT { 00043 namespace VmbAPI { 00044 00045 class EnumEntry 00046 { 00047 public: 00048 // 00049 // Method: EnumEntry constructor 00050 // 00051 // Purpose: Creates an instance of class EnumEntry 00052 // 00053 // Parameters: 00054 // 00055 // [in ] const char* pName The name of the enum 00056 // [in ] const char* pDisplayName The declarative name of the enum 00057 // [in ] const char* pDescription The description of the enum 00058 // [in ] const char* pTooltip A tooltip that can be used by a GUI 00059 // [in ] const char* pSNFCNamespace The SFNC namespace of the enum 00060 // [in ] VmbFeatureVisibility_t visibility The visibility of the enum 00061 // [in ] VmbInt64_t value The integer value of the enum 00062 // 00063 EnumEntry( const char *pName, 00064 const char *pDisplayName, 00065 const char *pDescription, 00066 const char *pTooltip, 00067 const char *pSNFCNamespace, 00068 VmbFeatureVisibility_t visibility, 00069 VmbInt64_t value); 00070 00071 // 00072 // Method: EnumEntry constructor 00073 // 00074 // Purpose: Creates an instance of class EnumEntry 00075 // 00076 IMEXPORT EnumEntry(); 00077 // 00078 // Method: EnumEntry copy constructor 00079 // 00080 // Purpose: Creates a copy of class EnumEntry 00081 // 00082 IMEXPORT EnumEntry( const EnumEntry &other); 00083 00084 // 00085 // Method: EnumEntry assignment operator 00086 // 00087 // Purpose: assigns EnumEntry to existing instance 00088 // 00089 IMEXPORT EnumEntry& operator=( const EnumEntry&o); 00090 00091 // 00092 // Method: EnumEntry destructor 00093 // 00094 // Purpose: Destroys an instance of class EnumEntry 00095 // 00096 IMEXPORT virtual ~EnumEntry(); 00097 00098 // 00099 // Method: GetName() 00100 // 00101 // Purpose: Gets the name of an enumeration 00102 // 00103 // Parameters: 00104 // 00105 // [out] std::string& name The name of the enumeration 00106 // 00107 VmbErrorType GetName( std::string &name ) const; 00108 00109 // 00110 // Method: GetDisplayName() 00111 // 00112 // Purpose: Gets a more declarative name of an enumeration 00113 // 00114 // Parameters: 00115 // 00116 // [out] std::string& displayName The display name of the enumeration 00117 // 00118 VmbErrorType GetDisplayName( std::string &displayName ) const; 00119 00120 // 00121 // Method: GetDescription() 00122 // 00123 // Purpose: Gets the description of an enumeration 00124 // 00125 // Parameters: 00126 // 00127 // [out] std::string& description The description of the enumeration 00128 // 00129 VmbErrorType GetDescription( std::string &description ) const; 00130 00131 // 00132 // Method: GetTooltip() 00133 // 00134 // Purpose: Gets a tooltip that can be used as pop up help in a GUI 00135 // 00136 // Parameters: 00137 // 00138 // [out] std::string& tooltip The tooltip as string 00139 // 00140 VmbErrorType GetTooltip( std::string &tooltip ) const; 00141 00142 // 00143 // Method: GetValue() 00144 // 00145 // Purpose: Gets the integer value of an enumeration 00146 // 00147 // Parameters: 00148 // 00149 // [out] VmbInt64_t& value The integer value of the enumeration 00150 // 00151 IMEXPORT VmbErrorType GetValue( VmbInt64_t &value ) const; 00152 00153 // 00154 // Method: GetVisibility() 00155 // 00156 // Purpose: Gets the visibility of an enumeration 00157 // 00158 // Parameters: 00159 // 00160 // [out] VmbFeatureVisibilityType& value The visibility of the enumeration 00161 // 00162 IMEXPORT VmbErrorType GetVisibility( VmbFeatureVisibilityType &value ) const; 00163 00164 // 00165 // Method: GetSNFCNamespace() 00166 // 00167 // Purpose: Gets the standard feature naming convention namespace of the enumeration 00168 // 00169 // Parameters: 00170 // 00171 // [out] std::string& sFNCNamespace The feature's SFNC namespace 00172 // 00173 VmbErrorType GetSFNCNamespace( std::string &sFNCNamespace ) const; 00174 00175 private: 00176 struct PrivateImpl; 00177 PrivateImpl *m_pImpl; 00178 // Array functions to pass data across DLL boundaries 00179 IMEXPORT VmbErrorType GetName( char * const pName, VmbUint32_t &size ) const; 00180 IMEXPORT VmbErrorType GetDisplayName( char * const pDisplayName, VmbUint32_t &size ) const; 00181 IMEXPORT VmbErrorType GetTooltip( char * const pStrTooltip, VmbUint32_t &size ) const; 00182 IMEXPORT VmbErrorType GetDescription( char * const pStrDescription, VmbUint32_t &size ) const; 00183 IMEXPORT VmbErrorType GetSFNCNamespace( char * const pStrNamespace, VmbUint32_t &size ) const; 00184 00185 }; 00186 00187 #include <VimbaCPP/Include/EnumEntry.hpp> 00188 00189 }} // namespace AVT::VmbAPI 00190 00191 #endif