Package com.verisign.epp.pool

## Class EPPPooledGenericSession

- java.lang.Object
- - com.verisign.epp.interfaces.EPPSession
  - - com.verisign.epp.pool.EPPPooledGenericSession

- All Implemented Interfaces:
    `EPPPooledSession`

      public class EPPPooledGenericSession
      extends EPPSession
      implements EPPPooledSession

  Pooled generic `EPPSession`. Timestamp attributes were added to handle absolute session timeout and ensure that idle timeouts don't occur.

- - ### Field Summary

    - ### Fields inherited from class com.verisign.epp.interfaces.EPPSession

      `clientId, codec, connection, extensionServices, inputStream, language, loginAdapter, message, mode, MODE_ASYNC, MODE_SYNC, msgID, newPassword, OP_ACK, OP_REQ, outputStream, password, pollOp, response, responsePacket, sendReceiveLogger, services, transId, version, xmlStream`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `EPPPooledGenericSession()` | Default constructor for `EPPPooledGenericSession`.
    `EPPPooledGenericSession​(java.lang.String aHostName, int aPortNumber)` | Constructor that takes an explicit host name and port number to connect to.
    `EPPPooledGenericSession​(java.lang.String aHostName, int aPortNumber, EPPSSLContext aSSLContext)` | Constructor that takes an explicit host name and port number to connect to.
    `EPPPooledGenericSession​(java.lang.String aHostName, int aPortNumber, java.lang.String aClientHost)` | Constructor that takes an explicit server host name, server port number, and client host name to connect to.
    `EPPPooledGenericSession​(java.lang.String aHostName, int aPortNumber, java.lang.String aClientHost, EPPSSLContext aSSLContext)` | Constructor that takes an explicit server host name, server port number, and client host name to connect to.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `long` | `getAbsoluteTimeout()` | Gets the session absolute timeout in milliseconds.
    `long` | `getCreatedTime()` | Gets the time the pooled object was created.
    `long` | `getLastTouched()` | Gets the last time the pooled object was touched.
    `boolean` | `hasAbsoluteTimeout()` | Has absolute timeout set?
    `void` | `setAbsoluteTimeout​(long aAbsoluteTimeout)` | Sets the session absolute timeout in milliseconds.
    `void` | `touch()` | Sets the last touched to the current time.

    - ### Methods inherited from class com.verisign.epp.interfaces.EPPSession

      `endConnection, endSession, getClientCon, getClientID, getConnection, getInputStream, getLoginAdapter, getMode, getMsgID, getNewPassword, getOutputStream, getPassword, getPollOp, getResponse, getTransId, getVersion, hello, init, init, init, initLoginAdapter, initSession, initSession, initStreams, isModeSupported, login, login, logout, processDocument, processDocument, processGreeting, readResponse, recDocument, sendDocument, sendMessage, sendPacket, sendPoll, setClientID, setExtensions, setInputStream, setLang, setLang, setLoginAdapter, setMode, setMsgID, setNewPassword, setOutputStream, setPassword, setPollOp, setServices, setTransId, setVersion, validateClientTransId`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface com.verisign.epp.pool.EPPPooledSession

      `hello`

- - ### Constructor Detail

    - #### EPPPooledGenericSession

          public EPPPooledGenericSession()
                                  throws EPPCommandException

      Default constructor for `EPPPooledGenericSession`.
      Throws:
        `EPPCommandException` - On error

    - #### EPPPooledGenericSession

          public EPPPooledGenericSession​(java.lang.String aHostName,
                                         int aPortNumber)
                                  throws EPPCommandException

      Constructor that takes an explicit host name and port number to connect to.
      Parameters:
        `aHostName` - Host name or IP address of server
        `aPortNumber` - Server port number
      Throws:
        `EPPCommandException` - Error connecting to server

    - #### EPPPooledGenericSession

          public EPPPooledGenericSession​(java.lang.String aHostName,
                                         int aPortNumber,
                                         java.lang.String aClientHost)
                                  throws EPPCommandException

      Constructor that takes an explicit server host name, server port number, and client host name to connect to.
      Parameters:
        `aHostName` - Host name or IP address of host to connect to
        `aPortNumber` - Port number to connect to
        `aClientHost` - Host name or IP address to connect from
      Throws:
        `EPPCommandException` - Error connecting to server

    - #### EPPPooledGenericSession

          public EPPPooledGenericSession​(java.lang.String aHostName,
                                         int aPortNumber,
                                         EPPSSLContext aSSLContext)
                                  throws EPPCommandException

      Constructor that takes an explicit host name and port number to connect to.
      Parameters:
        `aHostName` - Host name or IP address of server
        `aPortNumber` - Server port number
        `aSSLContext` - Optional specific SSL context to use
      Throws:
        `EPPCommandException` - Error connecting to server

    - #### EPPPooledGenericSession

          public EPPPooledGenericSession​(java.lang.String aHostName,
                                         int aPortNumber,
                                         java.lang.String aClientHost,
                                         EPPSSLContext aSSLContext)
                                  throws EPPCommandException

      Constructor that takes an explicit server host name, server port number, and client host name to connect to.
      Parameters:
        `aHostName` - Host name or IP address of host to connect to
        `aPortNumber` - Port number to connect to
        `aClientHost` - Host name or IP address to connect from
        `aSSLContext` - Optional specific SSL context to use
      Throws:
        `EPPCommandException` - Error connecting to server

  - ### Method Detail

    - #### getCreatedTime

          public long getCreatedTime()

      Gets the time the pooled object was created.
      Specified by:
        `getCreatedTime` in interface `EPPPooledSession`
      Returns:
        Epoch time of creation

    - #### getLastTouched

          public long getLastTouched()

      Gets the last time the pooled object was touched.
      Specified by:
        `getLastTouched` in interface `EPPPooledSession`
      Returns:
        Epoch time of touch

    - #### touch

          public void touch()

      Sets the last touched to the current time.
      Specified by:
        `touch` in interface `EPPPooledSession`

    - #### hasAbsoluteTimeout

          public boolean hasAbsoluteTimeout()

      Has absolute timeout set?
      Returns:
        `true` if absolute timeout are set; `false` otherwise.

    - #### getAbsoluteTimeout

          public long getAbsoluteTimeout()

      Gets the session absolute timeout in milliseconds.
      Specified by:
        `getAbsoluteTimeout` in interface `EPPPooledSession`
      Returns:
        Absolute timeout in milliseconds

    - #### setAbsoluteTimeout

          public void setAbsoluteTimeout​(long aAbsoluteTimeout)

      Sets the session absolute timeout in milliseconds.
      Parameters:
        `aAbsoluteTimeout` - Absolute timeout in milliseconds.