# SSLSessionContext

public interface **SSLSessionContext** A `SSLSessionContext` represents a set of
`SSLSession`s associated with a single entity. For example,
it could be associated with a server or client who participates in many
sessions concurrently.


Not all environments will contain session contexts.


There are `SSLSessionContext` parameters that affect how
sessions are stored:

- Sessions can be set to expire after a specified time limit.
- The number of sessions that can be stored in context can be limited.

A session can be retrieved based on its session id, and all session id's in a `SSLSessionContext` can be listed.

<br />

##### See Also

- `https://developers.google.com/j2objc/javadoc/jre/reference/javax/net/ssl/SSLSession.html`

### Public Method Summary

|---|---|
| abstract [Enumeration](https://developers.google.com/j2objc/javadoc/jre/reference/java/util/Enumeration.html)\<byte\[\]\> | [getIds](https://developers.google.com/j2objc/javadoc/jre/reference/javax/net/ssl/SSLSessionContext.html#getIds())() Returns an Enumeration of all session id's grouped under this `SSLSessionContext`. |
| abstract [SSLSession](https://developers.google.com/j2objc/javadoc/jre/reference/javax/net/ssl/SSLSession.html) | [getSession](https://developers.google.com/j2objc/javadoc/jre/reference/javax/net/ssl/SSLSessionContext.html#getSession(byte[]))(byte\[\] sessionId) Returns the `SSLSession` bound to the specified session id. |
| abstract int | [getSessionCacheSize](https://developers.google.com/j2objc/javadoc/jre/reference/javax/net/ssl/SSLSessionContext.html#getSessionCacheSize())() Returns the size of the cache used for storing `SSLSession` objects grouped under this `SSLSessionContext`. |
| abstract int | [getSessionTimeout](https://developers.google.com/j2objc/javadoc/jre/reference/javax/net/ssl/SSLSessionContext.html#getSessionTimeout())() Returns the timeout limit of `SSLSession` objects grouped under this `SSLSessionContext`. |
| abstract void | [setSessionCacheSize](https://developers.google.com/j2objc/javadoc/jre/reference/javax/net/ssl/SSLSessionContext.html#setSessionCacheSize(int))(int size) Sets the size of the cache used for storing `SSLSession` objects grouped under this `SSLSessionContext`. |
| abstract void | [setSessionTimeout](https://developers.google.com/j2objc/javadoc/jre/reference/javax/net/ssl/SSLSessionContext.html#setSessionTimeout(int))(int seconds) Sets the timeout limit for `SSLSession` objects grouped under this `SSLSessionContext`. |

## Public Methods

#### public abstract [Enumeration](https://developers.google.com/j2objc/javadoc/jre/reference/java/util/Enumeration.html)\<byte\[\]\>
**getIds**
()

Returns an Enumeration of all session id's grouped under this
`SSLSessionContext`.

##### Returns

- an enumeration of all the Session id's

#### public abstract [SSLSession](https://developers.google.com/j2objc/javadoc/jre/reference/javax/net/ssl/SSLSession.html)
**getSession**
(byte\[\] sessionId)

Returns the `SSLSession` bound to the specified session id.

##### Parameters

| sessionId | the Session identifier |
|---|---|

##### Returns

- the `SSLSession` or null if the specified session id does not refer to a valid SSLSession.

##### Throws

| [NullPointerException](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/NullPointerException.html) | if `sessionId` is null. |
|---|---|

#### public abstract int
**getSessionCacheSize**
()

Returns the size of the cache used for storing
`SSLSession` objects grouped under this
`SSLSessionContext`.

##### Returns

- size of the session cache; zero means there is no size limit.

##### See Also

- `https://developers.google.com/j2objc/javadoc/jre/reference/javax/net/ssl/SSLSessionContext.html#setSessionCacheSize(int)`

#### public abstract int
**getSessionTimeout**
()

Returns the timeout limit of `SSLSession` objects grouped
under this `SSLSessionContext`.


If the timeout limit is set to 't' seconds, a session exceeds the
timeout limit 't' seconds after its creation time.
When the timeout limit is exceeded for a session, the
`SSLSession` object is invalidated and future connections
cannot resume or rejoin the session.
A check for sessions exceeding the timeout limit is made immediately
whenever the timeout limit is changed for this
`SSLSessionContext`.

##### Returns

- the session timeout limit in seconds; zero means there is no limit.

##### See Also

- `https://developers.google.com/j2objc/javadoc/jre/reference/javax/net/ssl/SSLSessionContext.html#setSessionTimeout(int)`

#### public abstract void
**setSessionCacheSize**
(int size)

Sets the size of the cache used for storing
`SSLSession` objects grouped under this
`SSLSessionContext`.

##### Parameters

| size | the new session cache size limit; zero means there is no limit. |
|---|---|

##### Throws

| [IllegalArgumentException](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/IllegalArgumentException.html) | if the specified size is `< 0`. |
|---|---|

##### See Also

- `https://developers.google.com/j2objc/javadoc/jre/reference/javax/net/ssl/SSLSessionContext.html#getSessionCacheSize()`

#### public abstract void
**setSessionTimeout**
(int seconds)

Sets the timeout limit for `SSLSession` objects grouped
under this `SSLSessionContext`.


If the timeout limit is set to 't' seconds, a session exceeds the
timeout limit 't' seconds after its creation time.
When the timeout limit is exceeded for a session, the
`SSLSession` object is invalidated and future connections
cannot resume or rejoin the session.
A check for sessions exceeding the timeout is made immediately whenever
the timeout limit is changed for this `SSLSessionContext`.

##### Parameters

| seconds | the new session timeout limit in seconds; zero means there is no limit. |
|---|---|

##### Throws

| [IllegalArgumentException](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/IllegalArgumentException.html) | if the timeout specified is `< 0`. |
|---|---|

##### See Also

- `https://developers.google.com/j2objc/javadoc/jre/reference/javax/net/ssl/SSLSessionContext.html#getSessionTimeout()`