CLProtocol 3.5.1
CLException.h
1//-----------------------------------------------------------------------------
2// (c) 2008 by Basler Vision Technologies
3// Section: Vision Components
4// Project: GenApi
5// Author: Fritz Dierks
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//-----------------------------------------------------------------------------
29#ifndef CLPROTOCOL_CLEXCEPTION_H
30#define CLPROTOCOL_CLEXCEPTION_H
31
32#include <Base/GCBase.h>
33#include <CLProtocol/CLProtocol.h>
34
35namespace CLProtocol
36{
37
39 class CLErrException : public GENICAM_NAMESPACE::GenericException
40 {
41 public:
42 // must have this c'tor signature to use the ExceptionReporter
43 CLErrException(const char* description, const char *pSourceFileName, int SourceLine, const char* pExceptionType)
44 : GENICAM_NAMESPACE::GenericException(description, pSourceFileName, SourceLine, pExceptionType)
45 , m_CLCode(CL_ERR_NO_ERR)
46 {
47 }
48
49 public:
50 CLINT32 GetCLErrorCode() const
51 {
52 return m_CLCode;
53 }
54
55 CLErrException& SetCLErrorCode(CLINT32 errorCode)
56 {
57 m_CLCode = errorCode;
58 return *this;
59 }
60 protected:
61 CLINT32 m_CLCode;
62 };
63
64
65#if !defined(CL_ERR_EXCEPTION)
66# define CLERR_EXCEPTION GENICAM_NAMESPACE::ExceptionReporter<CLProtocol::CLErrException>(__FILE__, __LINE__, "CLErrException" ).Report
67#endif
68
69}
70#endif // CLPROTOCOL_CLEXCEPTION_H
CL Serial Exception type to hold the CL_ERR-code.
Definition CLException.h:40