From df006e29c27e27570223b294f8a9b3e319ca620a Mon Sep 17 00:00:00 2001 From: Ido Barnea Date: Wed, 6 Apr 2016 18:15:52 +0300 Subject: added type to TrexException --- src/stateless/cp/trex_exception.h | 64 +++++++++++++++++++++++++++++---------- 1 file changed, 48 insertions(+), 16 deletions(-) (limited to 'src/stateless/cp/trex_exception.h') diff --git a/src/stateless/cp/trex_exception.h b/src/stateless/cp/trex_exception.h index b9e20761..e184fa30 100644 --- a/src/stateless/cp/trex_exception.h +++ b/src/stateless/cp/trex_exception.h @@ -1,22 +1,22 @@ /* - Itay Marom - Cisco Systems, Inc. + Itay Marom + Cisco Systems, Inc. */ /* -Copyright (c) 2015-2015 Cisco Systems, Inc. + Copyright (c) 2015-2016 Cisco Systems, Inc. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 + http://www.apache.org/licenses/LICENSE-2.0 -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. */ #ifndef __TREX_EXCEPTION_H__ #define __TREX_EXCEPTION_H__ @@ -28,14 +28,46 @@ limitations under the License. * generic exception for errors * TODO: move this to a better place */ -class TrexException : public std::runtime_error + +class TrexException : public std::runtime_error { -public: - TrexException() : std::runtime_error("") { + public: + enum TrexExceptionTypes_t { + T_FLOW_STAT_PG_ID_DIFF_L4, + T_FLOW_STAT_ADD_FAIL, + T_FLOW_STAT_DEL_NON_EXIST, + T_FLOW_STAT_ASSOC_NON_EXIST_ID, + T_FLOW_STAT_ASSOC_OCC_ID, + T_FLOW_STAT_NON_EXIST_ID, + T_FLOW_STAT_BAD_PKT_FORMAT, + T_FLOW_STAT_UNSUPP_PKT_FORMAT, + T_FLOW_STAT_BAD_RULE_TYPE, + T_FLOW_STAT_BAD_RULE_TYPE_FOR_IF, + T_FLOW_STAT_FAILED_FIND_L4, + T_FLOW_STAT_PAYLOAD_TOO_SHORT, + T_FLOW_STAT_NO_STREAMS_EXIST, + T_FLOW_STAT_ALREADY_STARTED, + T_FLOW_STAT_ALREADY_EXIST, + T_FLOW_STAT_FAILED_CHANGE_IP_ID, + T_FLOW_STAT_NO_FREE_HW_ID, + T_FLOW_STAT_RX_CORE_START_FAIL, + T_FLOW_STAT_BAD_HW_ID, + T_INVALID + }; + + TrexException() : std::runtime_error(""), m_type(T_INVALID) { + } + TrexException(enum TrexExceptionTypes_t type=T_INVALID) : std::runtime_error(""), m_type(type) { } - TrexException(const std::string &what) : std::runtime_error(what) { + + TrexException(const std::string &what, enum TrexExceptionTypes_t type=T_INVALID) : std::runtime_error(what), m_type(type) { } + + enum TrexExceptionTypes_t type() {return m_type;} + + private: + enum TrexExceptionTypes_t m_type; }; #endif /* __TREX_EXCEPTION_H__ */ -- cgit 1.2.3-korg