You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by rm...@apache.org on 2021/11/28 17:14:32 UTC
[logging-log4cxx] 01/02: Made syslogwriter ABI-stable
This is an automated email from the ASF dual-hosted git repository.
rmiddleton pushed a commit to branch LOGCXX-510
in repository https://gitbox.apache.org/repos/asf/logging-log4cxx.git
commit 56e99877270ff03214d712940b860bada1e41d51
Author: Robert Middleton <ro...@rm5248.com>
AuthorDate: Sun Nov 28 11:28:40 2021 -0500
Made syslogwriter ABI-stable
---
src/main/cpp/syslogwriter.cpp | 24 ++++++++++++++++++------
src/main/include/log4cxx/helpers/syslogwriter.h | 7 +++----
2 files changed, 21 insertions(+), 10 deletions(-)
diff --git a/src/main/cpp/syslogwriter.cpp b/src/main/cpp/syslogwriter.cpp
index b3e9a81..ad8c92e 100644
--- a/src/main/cpp/syslogwriter.cpp
+++ b/src/main/cpp/syslogwriter.cpp
@@ -29,12 +29,22 @@
using namespace log4cxx;
using namespace log4cxx::helpers;
+struct SyslogWriter::SyslogWriterPrivate {
+ SyslogWriterPrivate(const LogString& syslogHost1, int syslogHostPort1)
+ : syslogHost(syslogHost1), syslogHostPort(syslogHostPort1){}
+
+ LogString syslogHost;
+ int syslogHostPort;
+ InetAddressPtr address;
+ DatagramSocketPtr ds;
+};
+
SyslogWriter::SyslogWriter(const LogString& syslogHost1, int syslogHostPort1)
- : syslogHost(syslogHost1), syslogHostPort(syslogHostPort1)
+ : m_priv(std::make_unique<SyslogWriterPrivate>(syslogHost1, syslogHostPort1))
{
try
{
- this->address = InetAddress::getByName(syslogHost1);
+ m_priv->address = InetAddress::getByName(syslogHost1);
}
catch (UnknownHostException& e)
{
@@ -44,7 +54,7 @@ SyslogWriter::SyslogWriter(const LogString& syslogHost1, int syslogHostPort1)
try
{
- this->ds = DatagramSocketPtr(new DatagramSocket());
+ m_priv->ds = DatagramSocketPtr(new DatagramSocket());
}
catch (SocketException& e)
{
@@ -53,16 +63,18 @@ SyslogWriter::SyslogWriter(const LogString& syslogHost1, int syslogHostPort1)
}
}
+SyslogWriter::~SyslogWriter(){}
+
void SyslogWriter::write(const LogString& source)
{
- if (this->ds != 0 && this->address != 0)
+ if (m_priv->ds != 0 && m_priv->address != 0)
{
LOG4CXX_ENCODE_CHAR(data, source);
DatagramPacketPtr packet(
new DatagramPacket((void*) data.data(), data.length(),
- address, syslogHostPort));
+ m_priv->address, m_priv->syslogHostPort));
- ds->send(packet);
+ m_priv->ds->send(packet);
}
}
diff --git a/src/main/include/log4cxx/helpers/syslogwriter.h b/src/main/include/log4cxx/helpers/syslogwriter.h
index 2071f01..547459b 100644
--- a/src/main/include/log4cxx/helpers/syslogwriter.h
+++ b/src/main/include/log4cxx/helpers/syslogwriter.h
@@ -41,13 +41,12 @@ class LOG4CXX_EXPORT SyslogWriter
public:
#define SYSLOG_PORT 514
SyslogWriter(const LogString& syslogHost, int syslogHostPort = SYSLOG_PORT);
+ ~SyslogWriter();
void write(const LogString& string);
private:
- LogString syslogHost;
- int syslogHostPort;
- InetAddressPtr address;
- DatagramSocketPtr ds;
+ struct SyslogWriterPrivate;
+ std::unique_ptr<SyslogWriterPrivate> m_priv;
};
} // namespace helpers
} // namespace log4cxx