simple_comms_fault_handler.cpp
Go to the documentation of this file.
1 /*
2 * Software License Agreement (BSD License)
3 *
4 * Copyright (c) 2011, Southwest Research Institute
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions are met:
9 *
10 * * Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 * * Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in the
14 * documentation and/or other materials provided with the distribution.
15 * * Neither the name of the Southwest Research Institute, nor the names
16 * of its contributors may be used to endorse or promote products derived
17 * from this software without specific prior written permission.
18 *
19 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
23 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29 * POSSIBILITY OF SUCH DAMAGE.
30 */
31 
32 #ifndef FLATHEADERS
35 #else
37 #include "log_wrapper.h"
38 #endif
39 
40 namespace industrial
41 {
42 namespace simple_comms_fault_handler
43 {
44 
46 {
47  this->connection_ = NULL;
48 }
49 
50 
52 {
53 }
54 
56 {
57  bool rtn = false;
58 
59  if (NULL != connection)
60  {
61  this->setConnection(connection);
62  LOG_INFO("Default communications fault handler successfully initialized");
63  rtn = true;
64  }
65  else
66  {
67  LOG_ERROR("Failed to initialize default communications fault handler");
68  rtn = false;
69  }
70  return rtn;
71 }
72 
74 {
75 
76  if (!(this->getConnection()->isConnected()))
77  {
78  LOG_INFO("Connection failed, attempting reconnect");
79  this->getConnection()->makeConnect();
80  }
81  else
82  {
83  LOG_WARN("Connection fail callback called while still connected (Possible bug)");
84  }
85 }
86 
87 
88 
89 }//namespace default_comms_fault_handler
90 }//namespace industrial
91 
92 
93 
94 
void setConnection(industrial::smpl_msg_connection::SmplMsgConnection *connection)
Sets connection manager.
Defines an interface and common methods for sending simple messages (see simple_message). This interface makes a bare minimum of assumptions:
#define LOG_WARN(format,...)
Definition: log_wrapper.h:107
void connectionFailCB()
Connection failure callback method: On a connection failure a blocking reconnection is attempted...
#define LOG_ERROR(format,...)
Definition: log_wrapper.h:108
#define LOG_INFO(format,...)
Definition: log_wrapper.h:106
bool init(industrial::smpl_msg_connection::SmplMsgConnection *connection)
Initializes default communications fault handler.
industrial::smpl_msg_connection::SmplMsgConnection * connection_
Reference to reply connection (called if incoming message requires a reply)
industrial::smpl_msg_connection::SmplMsgConnection * getConnection()
Gets connection for manager.
virtual bool makeConnect()=0
connects to the remote host


simple_message
Author(s): Shaun Edwards
autogenerated on Sat Sep 21 2019 03:30:09