@startuml
class NormSession {
    + <<const>> NORM_SESSION_INVALID : int = 0
    - _handle : long
    + LocalNodeId : long <<get>>
    + ReportInterval : double <<get>> <<set>>
    + TxRate : double <<get>> <<set>>
    + GrttEstimate : double <<get>> <<set>>
    <<internal>> NormSession(handle:long)
    <<internal>> {static} GetSession(handle:long) : NormSession?
    + DestroySession() : void
    - DestroySessionNative() : void
    + SetTxPort(port:int) : void
    + SetTxPort(port:int, enableReuse:bool, txBindAddress:string?) : void
    + SetTxOnly(txOnly:bool) : void
    + SetTxOnly(txOnly:bool, connectToSessionAddress:bool) : void
    + SetRxPortReuse(enable:bool) : void
    + SetRxPortReuse(enable:bool, rxBindAddress:string?, senderAddress:string?, senderPort:int) : void
    + SetEcnSupport(ecnEnable:bool, ignoreLoss:bool) : void
    + SetEcnSupport(ecnEnable:bool, ignoreLoss:bool, tolerateLoss:bool) : void
    + SetMulticastInterface(interfaceName:string) : void
    + SetSSM(sourceAddress:string) : void
    + SetTTL(ttl:byte) : void
    + SetTOS(tos:byte) : void
    + SetLoopback(loopbackEnable:bool) : void
    + SetMessageTrace(flag:bool) : void
    + SetTxLoss(precent:double) : void
    + SetRxLoss(precent:double) : void
    + SetFlowControl(precent:double) : void
    + SetTxSocketBuffer(bufferSize:long) : void
    + SetCongestionControl(enable:bool) : void
    + SetCongestionControl(enable:bool, adjustRate:bool) : void
    + SetTxRateBounds(rateMin:double, rateMax:double) : void
    + SetTxCacheBounds(sizeMax:long, countMin:long, countMax:long) : void
    + StartSender(sessionId:int, bufferSpace:long, segmentSize:int, blockSize:short, numParity:short, fecId:NormFecType) : void
    + StartSender(sessionId:int, bufferSpace:long, segmentSize:int, blockSize:short, numParity:short) : void
    + StartSender(bufferSpace:long, segmentSize:int, blockSize:short, numParity:short, fecId:NormFecType) : void
    + StartSender(bufferSpace:long, segmentSize:int, blockSize:short, numParity:short) : void
    + StopSender() : void
    + FileEnqueue(filename:string) : NormFile
    + FileEnqueue(filename:string, info:byte[]?, infoOffset:int, infoLength:int) : NormFile
    + DataEnqueue(dataBuffer:SafeBuffer, dataOffset:int, dataLength:int) : NormData
    + DataEnqueue(dataBuffer:SafeBuffer, dataOffset:int, dataLength:int, info:byte[]?, infoOffset:int, infoLength:int) : NormData
    + DataEnqueue(dataPtr:nint, dataOffset:int, dataLength:int) : NormData
    + DataEnqueue(dataPtr:nint, dataOffset:int, dataLength:int, info:byte[]?, infoOffset:int, infoLength:int) : NormData
    + StreamOpen(bufferSize:long) : NormStream
    + StreamOpen(bufferSize:long, info:byte[]?, infoOffset:int, infoLength:int) : NormStream
    + StartReceiver(bufferSpace:long) : void
    + StopReceiver() : void
    + SetAutoParity(autoParity:short) : void
    + SetGrttMax(grttMax:double) : void
    + SetGrttProbingMode(probingMode:NormProbingMode) : void
    + SetGrttProbingInterval(intervalMin:double, intervalMax:double) : void
    + SetBackoffFactor(backoffFactor:double) : void
    + SetGroupSize(groupSize:long) : void
    + SetTxRobustFactor(txRobustFactor:int) : void
    + RequeueObject(normObject:NormObject) : void
    + SetWatermark(normObject:NormObject) : void
    + SetWatermark(normObject:NormObject, overrideFlush:bool) : void
    + CancelWatermark() : void
    + ResetWatermark() : void
    + AddAckingNode(nodeId:long) : void
    + RemoveAckingNode(nodeId:long) : void
    + GetAckingStatus(nodeId:long) : NormAckingStatus
    + SendCommand(cmdBuffer:byte[], cmdOffset:int, cmdLength:int, robust:bool) : void
    + CancelCommand() : void
    + SetRxCacheLimit(countMax:int) : void
    + SetRxSocketBuffer(bufferSize:long) : void
    + SetSilentReceiver(silent:bool, maxDelay:int) : void
    + SetDefaultUnicastNack(enable:bool) : void
    + SetDefaultSyncPolicy(syncPolicy:NormSyncPolicy) : void
    + SetDefaultNackingMode(nackingMode:NormNackingMode) : void
    + SetDefaultRepairBoundary(repairBoundary:NormRepairBoundary) : void
    + SetDefaultRxRobustFactor(rxRobustFactor:int) : void
}
class "Dictionary`2"<T1,T2> {
}
NormSession o-> "_normSessions<long,NormSession>" "Dictionary`2"
@enduml
