ping()関数でタイムアウトをデフォルト引数で指定する
前記事
でping()を扱いましたが、ここではプロパティーのReceiveTimeoutを600msと固定的に書いていましたが、C++のデフォルト引数の機能(書き方ともいふ)を使って、指定がなければ600でそれ以外の場合は引数として指定できるように変更しますかね。とすると、まずヘッダというか関数のプロトタイプ宣言は、ping.hで、
String ping(String host);
から
String ping(String host, int timeout=600);
になります。本体ping.cppはこの変更を反映して、
#include "ping.h"
String ping(String host, int timeout=600)
{
TIdIcmpClient* icmp = new TIdIcmpClient();
icmp->Host = host;
icmp->ReceiveTimeout = timeout;
icmp->Ping();
if( icmp->ReplyStatus->ReplyStatusType == rsTimeOut )
return "time out";
else
return icmp->ReplyStatus->MsRoundTripTime;
delete icmp;
}
となります。こちらの方がより便利に使えますよね。
コメント