Address( address ),
Port( 0 ),
ProtocolList(),
- ProtocolFallbackCount( 0 ),
IntervalInSec( 0 )
{
}
}
/**
- * @return The amount of pings to perform before change the protocol.
- */
-int Host::get_ping_protocol_fallback_count() const
-{
- return ProtocolFallbackCount;
-}
-
-/**
- * @param protocol_fallback_count The amount of pings to perform before change the protocol.
- */
-void Host::set_ping_protocol_fallback_count( const int protocol_fallback_count )
-{
- BOOST_ASSERT( ( 0 <= protocol_fallback_count ) && ( protocol_fallback_count < numeric_limits<int>::max() ) );
-
- this->ProtocolFallbackCount = protocol_fallback_count;
-}
-
-/**
* @return The interval between each ping to the host.
*/
int Host::get_interval_in_sec() const
PingProtocolList get_ping_protocol_list() const;
void set_ping_protocol_list( const PingProtocolList &ping_protocol );
- int get_ping_protocol_fallback_count() const;
- void set_ping_protocol_fallback_count( const int protocol_fallback_count );
-
int get_interval_in_sec() const;
void set_interval_in_sec( const int interval_in_sec );
uint16_t Port;
/// The list of protocols used to ping
PingProtocolList ProtocolList;
- /// The amount of pings to perform before change the protocol.
- int ProtocolFallbackCount;
/// The interval between each ping to the host
int IntervalInSec;
#include <boost/assert.hpp>
#include <boost/foreach.hpp>
-#include <boost/lexical_cast.hpp>
#include <logfunc.hpp>
HostConfigurationOption(
"host.ping-protocol",
value< vector<string> >(),
- "Defines which protocols will be used to ping the destination."
+ "Defines which protocol will be used to ping the destination."
)
{
}
BOOST_ASSERT( !protocols_string.empty() );
HostItem host_item = *hosts_list_iterator;
- PingProtocolList host_protocols;
- int protocol_fallback_count = 0;
- parse_protocol_list( protocols_string, &host_protocols, &protocol_fallback_count );
+ PingProtocolList host_protocols = parse_protocol_list( protocols_string );
host_item->set_ping_protocol_list( host_protocols );
- host_item->set_ping_protocol_fallback_count( protocol_fallback_count );
++hosts_list_iterator;
GlobalLogger.info() << get_command_string() << "="
return parsed_success;
}
-void HostPingProtocolOption::parse_protocol_list(
- const std::string &protocol_list_string,
- PingProtocolList *protocol_list,
- int *protocol_fallback_count
-
+PingProtocolList HostPingProtocolOption::parse_protocol_list(
+ const std::string &protocol_list_string
) const
{
BOOST_ASSERT( !protocol_list_string.empty() );
- size_t protocol_index = 0;
+ PingProtocolList protocol_list;
string protocol_string;
istringstream iss( protocol_list_string );
{
BOOST_ASSERT( !protocol_string.empty());
- // The second item in the list is the amount of pings to perform before change from the
- // first protocol to the second (e.g. ICMP,10,ICMPv6).
- if ( protocol_index == 1 )
- {
- try
- {
- *protocol_fallback_count = boost::lexical_cast< int >( protocol_string );
- }
- catch ( boost::bad_lexical_cast const &ex )
- {
- GlobalLogger.error() << "Error: input string was not valid" << endl;
- }
- }
- else
- {
- PingProtocol protocol = get_ping_protocol_from_string( protocol_string );
- protocol_list->push_back( protocol );
+ PingProtocol protocol = get_ping_protocol_from_string( protocol_string );
+ protocol_list.push_back( protocol );
- GlobalLogger.debug() << "- " << protocol_string;
+ GlobalLogger.debug() << "- " << protocol_string;
- BOOST_ASSERT( ( PingProtocol_First <= protocol ) && ( protocol <= PingProtocol_Last ) );
- }
-
- protocol_index++;
+ BOOST_ASSERT( ( PingProtocol_First <= protocol ) && ( protocol <= PingProtocol_Last ) );
}
- BOOST_ASSERT( 0 < protocol_list->size() );
+ BOOST_ASSERT( 0 < protocol_list.size() );
+
+ return protocol_list;
}