Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-04-17 08:35:03

0001 /*
0002  * Licensed to the Apache Software Foundation (ASF) under one
0003  * or more contributor license agreements. See the NOTICE file
0004  * distributed with this work for additional information
0005  * regarding copyright ownership. The ASF licenses this file
0006  * to you under the Apache License, Version 2.0 (the
0007  * "License"); you may not use this file except in compliance
0008  * with the License. You may obtain a copy of the License at
0009  *
0010  *   http://www.apache.org/licenses/LICENSE-2.0
0011  *
0012  * Unless required by applicable law or agreed to in writing,
0013  * software distributed under the License is distributed on an
0014  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
0015  * KIND, either express or implied. See the License for the
0016  * specific language governing permissions and limitations
0017  * under the License.
0018  */
0019 
0020 #ifndef _THRIFT_TRANSPORT_TSSLSERVERSOCKET_H_
0021 #define _THRIFT_TRANSPORT_TSSLSERVERSOCKET_H_ 1
0022 
0023 #include <thrift/transport/TServerSocket.h>
0024 
0025 namespace apache {
0026 namespace thrift {
0027 namespace transport {
0028 
0029 class TSSLSocketFactory;
0030 
0031 /**
0032  * Server socket that accepts SSL connections.
0033  */
0034 class TSSLServerSocket : public TServerSocket {
0035 public:
0036   /**
0037    * Constructor.  Binds to all interfaces.
0038    *
0039    * @param port    Listening port
0040    * @param factory SSL socket factory implementation
0041    */
0042   TSSLServerSocket(int port, std::shared_ptr<TSSLSocketFactory> factory);
0043 
0044   /**
0045    * Constructor.  Binds to the specified address.
0046    *
0047    * @param address Address to bind to
0048    * @param port    Listening port
0049    * @param factory SSL socket factory implementation
0050    */
0051   TSSLServerSocket(const std::string& address,
0052                    int port,
0053                    std::shared_ptr<TSSLSocketFactory> factory);
0054 
0055   /**
0056    * Constructor.  Binds to all interfaces.
0057    *
0058    * @param port        Listening port
0059    * @param sendTimeout Socket send timeout
0060    * @param recvTimeout Socket receive timeout
0061    * @param factory     SSL socket factory implementation
0062    */
0063   TSSLServerSocket(int port,
0064                    int sendTimeout,
0065                    int recvTimeout,
0066                    std::shared_ptr<TSSLSocketFactory> factory);
0067 
0068 protected:
0069   std::shared_ptr<TSocket> createSocket(THRIFT_SOCKET socket) override;
0070   std::shared_ptr<TSSLSocketFactory> factory_;
0071 };
0072 }
0073 }
0074 }
0075 
0076 #endif