Package com.ericsson.otp.erlang

# Class OtpCookedConnection

java.lang.Object
java.lang.Thread
com.ericsson.otp.erlang.AbstractConnection
com.ericsson.otp.erlang.OtpCookedConnection

All Implemented Interfaces:
  `Runnable`

public class OtpCookedConnection extends AbstractConnection

Maintains a connection between a Java process and a remote Erlang, Java or C node. The object maintains connection state and allows data to be sent to and received from the peer.

Once a connection is established between the local node and a remote node, the connection object can be used to send and receive messages between the nodes.

The various receive methods are all blocking and will return only when a valid message has been received or an exception is raised.

If an exception occurs in any of the methods in this class, the connection will be closed and must be reopened in order to resume communication with the peer.

The message delivery methods in this class deliver directly to `mailboxes` in the `OtpNode` class.

It is not possible to create an instance of this class directly. OtpCookedConnection objects are created as needed by the underlying mailbox mechanism.

## Nested Class Summary

## Nested classes/interfaces inherited from class java.lang.Thread

`Thread.Builder, Thread.State, Thread.UncaughtExceptionHandler`

## Field Summary

Fields
Modifier and Type
Field
Description
`protected com.ericsson.otp.erlang.Links`
`links`
`protected OtpNode`
`self`

### Fields inherited from class com.ericsson.otp.erlang.AbstractConnection

`ChallengeAck, ChallengeReply, ChallengeStatus, connected, cookieOk, ctrlThreshold, defaultLevel, exit2Tag, exit2TTTag, exitTag, exitTTTag, groupLeaderTag, handshakeThreshold, headerLen, linkTag, localNode, passThrough, peer, random, regSendTag, regSendTTTag, sendCookie, sendTag, sendThreshold, sendTTTag, socket, traceLevel, unlinkIdAckTag, unlinkIdTag, unlinkTag, version`

### Fields inherited from class java.lang.Thread

`MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY`

## Method Summary

Modifier and Type
Method
Description
`void`
`close()`
Close the connection to the remote node.
`void`
`deliver(OtpMsg msg)`
Deliver messages to the recipient.
`void`
`deliver(Exception e)`
Deliver communication exceptions to the recipient.
`protected void`
`finalize()`

### Methods inherited from class com.ericsson.otp.erlang.AbstractConnection

`do_send, do_send, doAccept, doConnect, doGenericConnect, doPortConnect, genChallenge, genDigest, getFlags, getTraceLevel, headerType, isConnected, read2BytePackage, readSock, recvChallenge, recvChallengeAck, recvChallengeReply, recvComplement, recvName, recvStatus, run, sendBuf, sendBuf, sendChallenge, sendChallengeAck, sendChallengeReply, sendExit, sendExit2, sendLink, sendName, sendStatus, sendUnlink, sendUnlinkAck, setFlags, setTraceLevel`

### Methods inherited from class java.lang.Thread

`activeCount, checkAccess, clone, countStackFrames, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, isVirtual, join, join, join, join, ofPlatform, ofVirtual, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, sleep, start, startVirtualThread, stop, suspend, threadId, toString, yield`

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

`equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Field Details

### self

protected OtpNode self

### links

protected com.ericsson.otp.erlang.Links links

## Method Details

### deliver

public void deliver(Exception e)
Description copied from class: `AbstractConnection`
Deliver communication exceptions to the recipient.

Specified by:
  `deliver` in class `AbstractConnection`

### deliver

public void deliver(OtpMsg msg)
Description copied from class: `AbstractConnection`
Deliver messages to the recipient.

Specified by:
  `deliver` in class `AbstractConnection`

### close

public void close()
Description copied from class: `AbstractConnection`
Close the connection to the remote node.

Overrides:
  `close` in class `AbstractConnection`

### finalize

protected void finalize()

Overrides:
  `finalize` in class `AbstractConnection`