com.deltavsoft.rcfproto

## Class RcfProtoServer

- java.lang.Object
- - com.deltavsoft.rcfproto.RcfProtoServer

-     public class RcfProtoServer
      extends java.lang.Object

  Serves up Protocol Buffer-based services to clients, over one or more server transports.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `RcfProtoServer()`
    `RcfProtoServer(Endpoint endpoint)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `ServerTransport` | `addEndpoint(Endpoint endpoint)` Adds a transport endpoint to the server.
    `void` | `bindService(com.google.protobuf.Service svc)`
    `void` | `delete()`
    `protected void` | `finalize()`
    `Certificate` | `getCaCertificate()` Gets the SSL certificate authority of the server.
    `Certificate` | `getCertificate()` Gets the SSL certificate of the server.
    `java.lang.String` | `getEnableSchannelCertificateValidation()` Gets the Schannel certificate validation setting.
    `java.lang.String` | `getOpenSslCipherSuite()` Gets the OpenSSL cipher suite.
    `long` | `getSessionHarvestingIntervalMs()` Returns the session harvesting interval, in milliseconds.
    `long` | `getSessionTimeoutMs()` Returns the session timeout value, in milliseconds.
    `SslImplementation` | `getSslImplementation()` Gets the SSL implementation of the server.
    `TransportProtocolList` | `getSupportedTransportProtocols()` Returns the list of supported protocols for the server.
    `ThreadPool` | `getThreadPool()` Returns the thread pool the server is using.
    `void` | `setCaCertificate(Certificate certificatePtr)` Sets the SSL certificate authority of the server.
    `void` | `setCertificate(Certificate certificatePtr)` Sets the SSL certificate of the server.
    `void` | `setEnableSchannelCertificateValidation(java.lang.String peerName)` Sets the Schannel certificate validation setting.
    `void` | `setOpenSslCipherSuite(java.lang.String cipherSuite)` Sets the OpenSSL cipher suite.
    `void` | `setSessionHarvestingIntervalMs(long sessionHarvestingIntervalMs)` Sets the session harvesting interval, in milliseconds.
    `void` | `setSessionTimeoutMs(long sessionTimeoutMs)` Sets the session timeout value, in milliseconds.
    `void` | `setSslImplementation(SslImplementation sslImplementation)`
    `void` | `setSupportedTransportProtocols(TransportProtocolList protocols)` Sets the list of supported protocols the server supports.
    `void` | `setThreadPool(ThreadPool threadPoolPtr)` Sets the thread pool the server will use.
    `void` | `start()` Starts the RCFProto server.
    `void` | `stop()` Stops the RCFProto server.

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

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

- - ### Constructor Detail

    - #### RcfProtoServer

          public RcfProtoServer()

    - #### RcfProtoServer

          public RcfProtoServer(Endpoint endpoint)

  - ### Method Detail

    - #### bindService

          public void bindService(com.google.protobuf.Service svc)

    - #### finalize

          protected void finalize()

      Overrides:
        `finalize` in class `java.lang.Object`

    - #### delete

          public void delete()

    - #### start

          public void start()

      Starts the RCFProto server.

    - #### stop

          public void stop()

      Stops the RCFProto server.

    - #### setThreadPool

          public void setThreadPool(ThreadPool threadPoolPtr)

      Sets the thread pool the server will use. Thread pools can also be assigned to individual transports.

    - #### getThreadPool

          public ThreadPool getThreadPool()

      Returns the thread pool the server is using.

    - #### addEndpoint

          public ServerTransport addEndpoint(Endpoint endpoint)

      Adds a transport endpoint to the server.

    - #### setSupportedTransportProtocols

          public void setSupportedTransportProtocols(TransportProtocolList protocols)

      Sets the list of supported protocols the server supports. Clients that connect without using one of the supported protocols are dropped. If the list of supported protocols is empty, all protocols are allowed. Note that supported protocols can also be specified on a server transport, in which case the server transport setting overrides the server setting.

    - #### getSupportedTransportProtocols

          public TransportProtocolList getSupportedTransportProtocols()

      Returns the list of supported protocols for the server.

    - #### setSessionTimeoutMs

          public void setSessionTimeoutMs(long sessionTimeoutMs)

      Sets the session timeout value, in milliseconds. Client connections that are idle for this amount of time will be dropped by the server.

    - #### getSessionTimeoutMs

          public long getSessionTimeoutMs()

      Returns the session timeout value, in milliseconds.

    - #### setSessionHarvestingIntervalMs

          public void setSessionHarvestingIntervalMs(long sessionHarvestingIntervalMs)

      Sets the session harvesting interval, in milliseconds. This setting determines how often the server will scan for idle client connections.

    - #### getSessionHarvestingIntervalMs

          public long getSessionHarvestingIntervalMs()

      Returns the session harvesting interval, in milliseconds.

    - #### setCertificate

          public void setCertificate(Certificate certificatePtr)

      Sets the SSL certificate of the server.

    - #### getCertificate

          public Certificate getCertificate()

      Gets the SSL certificate of the server.

    - #### setOpenSslCipherSuite

          public void setOpenSslCipherSuite(java.lang.String cipherSuite)

      Sets the OpenSSL cipher suite. Only applicable when OpenSSL is used as the SSL implementation.

    - #### getOpenSslCipherSuite

          public java.lang.String getOpenSslCipherSuite()

      Gets the OpenSSL cipher suite.

    - #### setCaCertificate

          public void setCaCertificate(Certificate certificatePtr)

      Sets the SSL certificate authority of the server.

    - #### getCaCertificate

          public Certificate getCaCertificate()

      Gets the SSL certificate authority of the server.

    - #### setEnableSchannelCertificateValidation

          public void setEnableSchannelCertificateValidation(java.lang.String peerName)

      Sets the Schannel certificate validation setting. Only applicable when using Schannel as the SSL implementation. If this setting is non-empty, it will be used by Schannel to automatically validate peer certificates.

    - #### getEnableSchannelCertificateValidation

          public java.lang.String getEnableSchannelCertificateValidation()

      Gets the Schannel certificate validation setting.

    - #### setSslImplementation

          public void setSslImplementation(SslImplementation sslImplementation)

    - #### getSslImplementation

          public SslImplementation getSslImplementation()

      Gets the SSL implementation of the server.