public:
     enum IcmpType
     {
-        EchoReply = 0,
-        DestinationUnreachable = 3,
-        SourceQuench = 4,
-        Redirect = 5,
-        EchoRequest = 8,
-        TimeExceeded = 11,
-        ParameterProblem = 12,
-        TimestampRequest = 13,
-        TimestampReply = 14,
-        InfoRequest = 15,
-        InfoReply = 16,
-        AddressRequest = 17,
-        AddressReply = 18
+        IcmpType_EchoReply = 0,
+        IcmpType_DestinationUnreachable = 3,
+        IcmpType_SourceQuench = 4,
+        IcmpType_Redirect = 5,
+        IcmpType_EchoRequest = 8,
+        IcmpType_TimeExceeded = 11,
+        IcmpType_ParameterProblem = 12,
+        IcmpType_TimestampRequest = 13,
+        IcmpType_TimestampReply = 14,
+        IcmpType_InfoRequest = 15,
+        IcmpType_InfoReply = 16,
+        IcmpType_AddressRequest = 17,
+        IcmpType_AddressReply = 18
     };
 
+public:
     IcmpHeader();
     IcmpHeader(
             IcmpType type,
 
 {
     IcmpData icmp_data( "ping-message" );
 
-    IcmpHeader::IcmpType type = IcmpHeader::EchoRequest;
+    IcmpHeader::IcmpType type = IcmpHeader::IcmpType_EchoRequest;
     uint8_t code = 0;
     uint16_t identifier = get_identifier();
     IcmpChecksumCalculator calculator( icmp_data.begin(), icmp_data.end() );
     // We can receive all ICMP packets received by the host, so we need to
     // filter out only the echo replies that match the our identifier and
     // expected sequence number.
-    if ( is && icmp_packet.match( IcmpHeader::EchoReply, get_identifier(), SequenceNumber ) )
+    if ( is && icmp_packet.match( IcmpHeader::IcmpType_EchoReply, get_identifier(), SequenceNumber ) )
     {
         // If this is the first reply, interrupt the echo reply timeout.
         if ( RepliesCount == 0 )