diff --git a/core/containers/concurrent_task_queue.h b/core/containers/concurrent_task_queue.h index 061de52..7eb2ee3 100644 --- a/core/containers/concurrent_task_queue.h +++ b/core/containers/concurrent_task_queue.h @@ -15,7 +15,6 @@ #pragma once #include "core/containers/task_queue.h" -#include #include #include #include @@ -29,7 +28,7 @@ namespace trantor * can be called a threads pool. * */ -class TRANTOR_EXPORT ConcurrentTaskQueue : public TaskQueue +class ConcurrentTaskQueue : public TaskQueue { public: /** diff --git a/core/containers/serial_task_queue.h b/core/containers/serial_task_queue.h index dc900fb..5578b9b 100644 --- a/core/containers/serial_task_queue.h +++ b/core/containers/serial_task_queue.h @@ -16,7 +16,6 @@ #include "task_queue.h" #include "core/loops/event_loop_thread.h" -#include #include #include #include @@ -28,7 +27,7 @@ namespace trantor * by one. * */ -class TRANTOR_EXPORT SerialTaskQueue : public TaskQueue +class SerialTaskQueue : public TaskQueue { public: /** diff --git a/core/loops/timing_wheel.h b/core/loops/timing_wheel.h index 64b4011..11e90e7 100644 --- a/core/loops/timing_wheel.h +++ b/core/loops/timing_wheel.h @@ -16,7 +16,6 @@ #include "core/loops/event_loop.h" #include "core/log/logger.h" -#include #include #include #include @@ -42,7 +41,7 @@ using BucketQueue = std::deque; * accuracy. This is usually used internally. * */ -class TRANTOR_EXPORT TimingWheel +class TimingWheel { public: class CallbackEntry diff --git a/core/net/resolver.h b/core/net/resolver.h index 71f8232..1d42a0a 100644 --- a/core/net/resolver.h +++ b/core/net/resolver.h @@ -6,7 +6,7 @@ // Author: Tao An #pragma once -#include + #include #include "core/loops/event_loop.h" #include "core/net/inet_address.h" @@ -18,7 +18,7 @@ namespace trantor * @note Although the c-ares library is not essential, it is recommended to * install it for higher performance */ -class TRANTOR_EXPORT Resolver +class Resolver { public: using Callback = std::function; diff --git a/core/net/tcp_client.h b/core/net/tcp_client.h index c7dd474..587ab9a 100644 --- a/core/net/tcp_client.h +++ b/core/net/tcp_client.h @@ -17,14 +17,15 @@ // Author: Tao An #pragma once + #include "core/loops/event_loop.h" #include "core/net/inet_address.h" #include "tcp_connection.h" -#include #include #include #include #include + namespace trantor { class Connector; @@ -34,7 +35,7 @@ class SSLContext; * @brief This class represents a TCP client. * */ -class TRANTOR_EXPORT TcpClient : NonCopyable +class TcpClient : NonCopyable { public: /** diff --git a/core/net/tcp_connection.h b/core/net/tcp_connection.h index dee1adf..e5ec0af 100644 --- a/core/net/tcp_connection.h +++ b/core/net/tcp_connection.h @@ -13,249 +13,241 @@ */ #pragma once -#include + +#include "core/containers/msg_buffer.h" +#include "core/loops/callbacks.h" #include "core/loops/event_loop.h" #include "core/net/inet_address.h" #include -#include "core/containers/msg_buffer.h" -#include "core/loops/callbacks.h" -#include #include +#include #include -namespace trantor -{ +namespace trantor { class SSLContext; -TRANTOR_EXPORT std::shared_ptr newSSLServerContext( - const std::string &certPath, - const std::string &keyPath, - bool useOldTLS = false, - const std::vector> &sslConfCmds = {}); +std::shared_ptr newSSLServerContext( + const std::string &certPath, + const std::string &keyPath, + bool useOldTLS = false, + const std::vector > &sslConfCmds = {}); /** * @brief This class represents a TCP connection. * */ -class TRANTOR_EXPORT TcpConnection -{ - public: - TcpConnection() = default; - virtual ~TcpConnection(){}; +class TcpConnection { +public: + TcpConnection() = default; + virtual ~TcpConnection(){}; - /** - * @brief Send some data to the peer. - * - * @param msg - * @param len - */ - virtual void send(const char *msg, size_t len) = 0; - virtual void send(const void *msg, size_t len) = 0; - virtual void send(const std::string &msg) = 0; - virtual void send(std::string &&msg) = 0; - virtual void send(const MsgBuffer &buffer) = 0; - virtual void send(MsgBuffer &&buffer) = 0; - virtual void send(const std::shared_ptr &msgPtr) = 0; - virtual void send(const std::shared_ptr &msgPtr) = 0; + /** + * @brief Send some data to the peer. + * + * @param msg + * @param len + */ + virtual void send(const char *msg, size_t len) = 0; + virtual void send(const void *msg, size_t len) = 0; + virtual void send(const std::string &msg) = 0; + virtual void send(std::string &&msg) = 0; + virtual void send(const MsgBuffer &buffer) = 0; + virtual void send(MsgBuffer &&buffer) = 0; + virtual void send(const std::shared_ptr &msgPtr) = 0; + virtual void send(const std::shared_ptr &msgPtr) = 0; - /** - * @brief Send a file to the peer. - * - * @param fileName - * @param offset - * @param length - */ - virtual void sendFile(const char *fileName, - size_t offset = 0, - size_t length = 0) = 0; + /** + * @brief Send a file to the peer. + * + * @param fileName + * @param offset + * @param length + */ + virtual void sendFile(const char *fileName, + size_t offset = 0, + size_t length = 0) = 0; - /** - * @brief Get the local address of the connection. - * - * @return const InetAddress& - */ - virtual const InetAddress &localAddr() const = 0; + /** + * @brief Get the local address of the connection. + * + * @return const InetAddress& + */ + virtual const InetAddress &localAddr() const = 0; - /** - * @brief Get the remote address of the connection. - * - * @return const InetAddress& - */ - virtual const InetAddress &peerAddr() const = 0; + /** + * @brief Get the remote address of the connection. + * + * @return const InetAddress& + */ + virtual const InetAddress &peerAddr() const = 0; - /** - * @brief Return true if the connection is established. - * - * @return true - * @return false - */ - virtual bool connected() const = 0; + /** + * @brief Return true if the connection is established. + * + * @return true + * @return false + */ + virtual bool connected() const = 0; - /** - * @brief Return false if the connection is established. - * - * @return true - * @return false - */ - virtual bool disconnected() const = 0; + /** + * @brief Return false if the connection is established. + * + * @return true + * @return false + */ + virtual bool disconnected() const = 0; - /** - * @brief Get the buffer in which the received data stored. - * - * @return MsgBuffer* - */ - virtual MsgBuffer *getRecvBuffer() = 0; + /** + * @brief Get the buffer in which the received data stored. + * + * @return MsgBuffer* + */ + virtual MsgBuffer *getRecvBuffer() = 0; - /** - * @brief Set the high water mark callback - * - * @param cb The callback is called when the data in sending buffer is - * larger than the water mark. - * @param markLen The water mark in bytes. - */ - virtual void setHighWaterMarkCallback(const HighWaterMarkCallback &cb, - size_t markLen) = 0; + /** + * @brief Set the high water mark callback + * + * @param cb The callback is called when the data in sending buffer is + * larger than the water mark. + * @param markLen The water mark in bytes. + */ + virtual void setHighWaterMarkCallback(const HighWaterMarkCallback &cb, + size_t markLen) = 0; - /** - * @brief Set the TCP_NODELAY option to the socket. - * - * @param on - */ - virtual void setTcpNoDelay(bool on) = 0; + /** + * @brief Set the TCP_NODELAY option to the socket. + * + * @param on + */ + virtual void setTcpNoDelay(bool on) = 0; - /** - * @brief Shutdown the connection. - * @note This method only closes the writing direction. - */ - virtual void shutdown() = 0; + /** + * @brief Shutdown the connection. + * @note This method only closes the writing direction. + */ + virtual void shutdown() = 0; - /** - * @brief Close the connection forcefully. - * - */ - virtual void forceClose() = 0; + /** + * @brief Close the connection forcefully. + * + */ + virtual void forceClose() = 0; - /** - * @brief Get the event loop in which the connection I/O is handled. - * - * @return EventLoop* - */ - virtual EventLoop *getLoop() = 0; + /** + * @brief Get the event loop in which the connection I/O is handled. + * + * @return EventLoop* + */ + virtual EventLoop *getLoop() = 0; - /** - * @brief Set the custom data on the connection. - * - * @param context - */ - void setContext(const std::shared_ptr &context) - { - contextPtr_ = context; - } - void setContext(std::shared_ptr &&context) - { - contextPtr_ = std::move(context); - } + /** + * @brief Set the custom data on the connection. + * + * @param context + */ + void setContext(const std::shared_ptr &context) { + contextPtr_ = context; + } + void setContext(std::shared_ptr &&context) { + contextPtr_ = std::move(context); + } - /** - * @brief Get the custom data from the connection. - * - * @tparam T - * @return std::shared_ptr - */ - template - std::shared_ptr getContext() const - { - return std::static_pointer_cast(contextPtr_); - } + /** + * @brief Get the custom data from the connection. + * + * @tparam T + * @return std::shared_ptr + */ + template + std::shared_ptr getContext() const { + return std::static_pointer_cast(contextPtr_); + } - /** - * @brief Return true if the custom data is set by user. - * - * @return true - * @return false - */ - bool hasContext() const - { - return (bool)contextPtr_; - } + /** + * @brief Return true if the custom data is set by user. + * + * @return true + * @return false + */ + bool hasContext() const { + return (bool)contextPtr_; + } - /** - * @brief Clear the custom data. - * - */ - void clearContext() - { - contextPtr_.reset(); - } + /** + * @brief Clear the custom data. + * + */ + void clearContext() { + contextPtr_.reset(); + } - /** - * @brief Call this method to avoid being kicked off by TcpServer, refer to - * the kickoffIdleConnections method in the TcpServer class. - * - */ - virtual void keepAlive() = 0; + /** + * @brief Call this method to avoid being kicked off by TcpServer, refer to + * the kickoffIdleConnections method in the TcpServer class. + * + */ + virtual void keepAlive() = 0; - /** - * @brief Return true if the keepAlive() method is called. - * - * @return true - * @return false - */ - virtual bool isKeepAlive() = 0; + /** + * @brief Return true if the keepAlive() method is called. + * + * @return true + * @return false + */ + virtual bool isKeepAlive() = 0; - /** - * @brief Return the number of bytes sent - * - * @return size_t - */ - virtual size_t bytesSent() const = 0; + /** + * @brief Return the number of bytes sent + * + * @return size_t + */ + virtual size_t bytesSent() const = 0; - /** - * @brief Return the number of bytes received. - * - * @return size_t - */ - virtual size_t bytesReceived() const = 0; + /** + * @brief Return the number of bytes received. + * + * @return size_t + */ + virtual size_t bytesReceived() const = 0; - /** - * @brief Check whether the connection is SSL encrypted. - * - * @return true - * @return false - */ - virtual bool isSSLConnection() const = 0; + /** + * @brief Check whether the connection is SSL encrypted. + * + * @return true + * @return false + */ + virtual bool isSSLConnection() const = 0; - /** - * @brief Start the SSL encryption on the connection (as a client). - * - * @param callback The callback is called when the SSL connection is - * established. - * @param hostname The server hostname for SNI. If it is empty, the SNI is - * not used. - * @param sslConfCmds The commands used to call the SSL_CONF_cmd function in - * OpenSSL. - */ - virtual void startClientEncryption( - std::function callback, - bool useOldTLS = false, - bool validateCert = true, - std::string hostname = "", - const std::vector> &sslConfCmds = - {}) = 0; + /** + * @brief Start the SSL encryption on the connection (as a client). + * + * @param callback The callback is called when the SSL connection is + * established. + * @param hostname The server hostname for SNI. If it is empty, the SNI is + * not used. + * @param sslConfCmds The commands used to call the SSL_CONF_cmd function in + * OpenSSL. + */ + virtual void startClientEncryption( + std::function callback, + bool useOldTLS = false, + bool validateCert = true, + std::string hostname = "", + const std::vector > &sslConfCmds = {}) = 0; - /** - * @brief Start the SSL encryption on the connection (as a server). - * - * @param ctx The SSL context. - * @param callback The callback is called when the SSL connection is - * established. - */ - virtual void startServerEncryption(const std::shared_ptr &ctx, - std::function callback) = 0; + /** + * @brief Start the SSL encryption on the connection (as a server). + * + * @param ctx The SSL context. + * @param callback The callback is called when the SSL connection is + * established. + */ + virtual void startServerEncryption(const std::shared_ptr &ctx, + std::function callback) = 0; - protected: - bool validateCert_ = false; +protected: + bool validateCert_ = false; - private: - std::shared_ptr contextPtr_; +private: + std::shared_ptr contextPtr_; }; -} // namespace trantor +} // namespace trantor diff --git a/core/net/tcp_server.h b/core/net/tcp_server.h index 3396f89..f7afd8f 100644 --- a/core/net/tcp_server.h +++ b/core/net/tcp_server.h @@ -20,7 +20,6 @@ #include "core/net/inet_address.h" #include "core/net/tcp_connection.h" #include "core/loops/timing_wheel.h" -#include #include #include #include @@ -33,7 +32,7 @@ class SSLContext; * @brief This class represents a TCP server. * */ -class TRANTOR_EXPORT TcpServer : NonCopyable +class TcpServer : NonCopyable { public: /**