www.pudn.com > jnp-src.rar > DNSRR.java


/*
 * Java Network Programming, Second Edition
 * Merlin Hughes, Michael Shoffner, Derek Hamner
 * Manning Publications Company; ISBN 188477749X
 *
 * http://nitric.com/jnp/
 *
 * Copyright (c) 1997-1999 Merlin Hughes, Michael Shoffner, Derek Hamner;
 * all rights reserved; see license.txt for details.
 */

import java.io.*; 
 
public abstract class DNSRR { 
  private String rrName; 
  private int rrType, rrClass; 
  private long rrTTL, rrCreated; 
 
  void init (String name, int type, int clas, long ttl, DNSInputStream dnsIn) throws IOException { 
    rrName = name; 
    rrType = type; 
    rrClass = clas; 
    rrTTL = ttl; 
    rrCreated = System.currentTimeMillis (); 
    decode (dnsIn); 
  } 
   
  protected abstract void decode (DNSInputStream dnsIn) throws IOException; 
 
  public String getRRName () { 
    return rrName; 
  } 
 
  public int getRRType () { 
    return rrType; 
  } 
 
  public int getRRClass () { 
    return rrClass; 
  } 
 
  public long getRRTTL () { 
    return rrTTL; 
  } 
 
  public boolean isValid () { 
    return rrTTL * 1000 > System.currentTimeMillis () - rrCreated; 
  } 
}