Updated comments and fixed tabbing
[profile/ivi/automotive-message-broker.git] / plugins / common / canobserver.h
1 /*
2 Copyright (C) 2012 Intel Corporation
3
4 This library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Lesser General Public
6 License as published by the Free Software Foundation; either
7 version 2.1 of the License, or (at your option) any later version.
8
9 This library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 Lesser General Public License for more details.
13
14 You should have received a copy of the GNU Lesser General Public
15 License along with this library; if not, write to the Free Software
16 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
17 */
18
19 #ifndef CANOBSERVER_H
20 #define CANOBSERVER_H
21
22 /**
23  *  \addtogroup libcanbus
24  *  @{
25  */
26
27 #include <stdlib.h>
28 #include <linux/can.h>
29
30 #include "canframeinfo.h"
31
32 /**
33 * \brief Interface. Receives notifications about the CAN bus traffic and errors.
34 *
35 * CANBus user has to derive from this interface.
36 * @class CANObserver
37 */
38
39 class CANObserver
40 {
41 public:
42     /**
43     * General CAN bus error. Currently only GENERAL_ERROR is specified.
44     * @enum CANError
45     * @public
46     */
47     enum CANError {
48         GENERAL_ERROR = 0
49     };
50
51     virtual ~CANObserver(){} /*LCOV_EXCL_LINE*/
52     /**
53     * Called when error occurred on the bus.
54     * @fn errorOccured
55     * @param error Bus error code
56     */
57     virtual void errorOccured(CANObserver::CANError error) = 0;             /* socket error */
58     /**
59     * Called when standard frame was is received from the bus.
60     * @fn standardFrameReceived
61     * @param frame Received frame
62     */
63     virtual void standardFrameReceived(const can_frame& frame) = 0;       /* SFF was present */
64     /**
65     * Called when extended frame was is received from the bus.
66     * @fn extendedFrameReceived
67     * @param frame Received frame
68     */
69     virtual void extendedFrameReceived(const can_frame& frame) = 0;       /* EFF was present */
70     /**
71     * Called when error frame was received from the bus.
72     * @fn errorFrameReceived
73     * @param frame Error frame
74     */
75     virtual void errorFrameReceived(const can_frame& frame) = 0;          /* error frame */
76     /**
77     * Called when remote transmission frame was received from the bus.
78     * @fn remoteTransmissionRequest
79     * @param frame RTR frame
80     */
81     virtual void remoteTransmissionRequest(const can_frame& frame) = 0;   /* remote transmission request (SFF/EFF is still present)*/
82     /**
83     * Called when timeout was detected for a cyclic message.
84      * @fn timeoutDetected
85      * @param frame
86      */
87     virtual void timeoutDetected(const can_frame& frame) = 0;             /* timeout */
88
89 };
90
91 #endif // CANOBSERVER_H
92
93 /** @} */
94