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/06 00:43:09 UTC

[logging-log4cxx] 04/20: Changed the private structs to be inner classes

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 1858d23e897c87373fb217849ae3d4943f554c90
Author: Robert Middleton <ro...@rm5248.com>
AuthorDate: Mon Sep 27 21:51:23 2021 -0400

    Changed the private structs to be inner classes
---
 src/main/cpp/appenderskeleton.cpp                        |  6 +++---
 src/main/cpp/asyncappender.cpp                           |  3 ++-
 src/main/cpp/consoleappender.cpp                         |  2 +-
 src/main/cpp/fileappender.cpp                            | 12 ++++++------
 src/main/cpp/odbcappender.cpp                            |  4 ++--
 src/main/cpp/rollingfileappender.cpp                     |  2 +-
 src/main/cpp/smtpappender.cpp                            |  6 +++---
 src/main/cpp/socketappenderskeleton.cpp                  |  2 +-
 src/main/cpp/sockethubappender.cpp                       |  2 +-
 src/main/cpp/syslogappender.cpp                          |  8 ++++----
 src/main/cpp/telnetappender.cpp                          |  2 +-
 src/main/cpp/writerappender.cpp                          | 10 +++++-----
 src/main/cpp/xmlsocketappender.cpp                       |  2 +-
 src/main/include/log4cxx/appenderskeleton.h              |  9 +++------
 src/main/include/log4cxx/asyncappender.h                 |  3 +++
 src/main/include/log4cxx/consoleappender.h               |  3 +++
 src/main/include/log4cxx/db/odbcappender.h               |  3 +++
 src/main/include/log4cxx/fileappender.h                  |  8 ++++----
 src/main/include/log4cxx/net/smtpappender.h              |  1 +
 src/main/include/log4cxx/net/socketappenderskeleton.h    |  3 +++
 src/main/include/log4cxx/net/sockethubappender.h         |  2 ++
 src/main/include/log4cxx/net/syslogappender.h            |  1 +
 src/main/include/log4cxx/net/telnetappender.h            |  2 ++
 src/main/include/log4cxx/net/xmlsocketappender.h         |  2 ++
 src/main/include/log4cxx/private/appenderskeleton_priv.h |  4 +---
 src/main/include/log4cxx/private/fileappender_priv.h     |  5 ++---
 src/main/include/log4cxx/private/odbcappender_priv.h     |  9 +++++++--
 src/main/include/log4cxx/private/syslogappender_priv.h   |  4 ++--
 src/main/include/log4cxx/private/writerappender_priv.h   |  5 ++---
 src/main/include/log4cxx/rolling/rollingfileappender.h   |  2 ++
 src/main/include/log4cxx/writerappender.h                |  8 +++-----
 31 files changed, 77 insertions(+), 58 deletions(-)

diff --git a/src/main/cpp/appenderskeleton.cpp b/src/main/cpp/appenderskeleton.cpp
index 2c433d8..d709cfe 100644
--- a/src/main/cpp/appenderskeleton.cpp
+++ b/src/main/cpp/appenderskeleton.cpp
@@ -30,20 +30,20 @@ using namespace log4cxx::helpers;
 
 IMPLEMENT_LOG4CXX_OBJECT(AppenderSkeleton)
 
-AppenderSkeleton::AppenderSkeleton( std::unique_ptr<priv::AppenderSkeletonPrivate> priv )
+AppenderSkeleton::AppenderSkeleton( std::unique_ptr<AppenderSkeletonPrivate> priv )
 	:	m_priv(std::move(priv))
 {
 
 }
 
 AppenderSkeleton::AppenderSkeleton()
-	:   m_priv(std::make_unique<priv::AppenderSkeletonPrivate>())
+	:   m_priv(std::make_unique<AppenderSkeletonPrivate>())
 {
 
 }
 
 AppenderSkeleton::AppenderSkeleton(const LayoutPtr& layout1)
-	:	m_priv(std::make_unique<priv::AppenderSkeletonPrivate>())
+	:	m_priv(std::make_unique<AppenderSkeletonPrivate>())
 {
 
 }
diff --git a/src/main/cpp/asyncappender.cpp b/src/main/cpp/asyncappender.cpp
index f878038..71b29a1 100644
--- a/src/main/cpp/asyncappender.cpp
+++ b/src/main/cpp/asyncappender.cpp
@@ -88,8 +88,9 @@ class DiscardSummary
 
 typedef std::map<LogString, DiscardSummary> DiscardMap;
 
-struct AsyncAppenderPriv : public priv::AppenderSkeletonPrivate {
+struct AsyncAppender::AsyncAppenderPriv : public AppenderSkeleton::AppenderSkeletonPrivate {
 	AsyncAppenderPriv()	:
+		AppenderSkeletonPrivate(),
 		buffer(),
 		bufferSize(DEFAULT_BUFFER_SIZE),
 		appenders(std::make_shared<AppenderAttachableImpl>(pool)),
diff --git a/src/main/cpp/consoleappender.cpp b/src/main/cpp/consoleappender.cpp
index c77c409..026627d 100644
--- a/src/main/cpp/consoleappender.cpp
+++ b/src/main/cpp/consoleappender.cpp
@@ -27,7 +27,7 @@
 using namespace log4cxx;
 using namespace log4cxx::helpers;
 
-struct ConsoleAppenderPriv : public priv::WriterAppenderPriv{
+struct ConsoleAppender::ConsoleAppenderPriv : public WriterAppender::WriterAppenderPriv{
 	ConsoleAppenderPriv(LogString target) :
 		WriterAppenderPriv(),
 		target(target){}
diff --git a/src/main/cpp/fileappender.cpp b/src/main/cpp/fileappender.cpp
index 29ed49c..ed53c5d 100644
--- a/src/main/cpp/fileappender.cpp
+++ b/src/main/cpp/fileappender.cpp
@@ -35,10 +35,10 @@ using namespace log4cxx::spi;
 
 IMPLEMENT_LOG4CXX_OBJECT(FileAppender)
 
-#define _priv static_cast<priv::FileAppenderPriv*>(m_priv.get())
+#define _priv static_cast<FileAppenderPriv*>(m_priv.get())
 
 FileAppender::FileAppender() :
-	WriterAppender (std::make_unique<priv::FileAppenderPriv>())
+	WriterAppender (std::make_unique<FileAppenderPriv>())
 {
 	_priv->fileAppend = true;
 	_priv->bufferedIO = false;
@@ -47,7 +47,7 @@ FileAppender::FileAppender() :
 
 FileAppender::FileAppender(const LayoutPtr& layout1, const LogString& fileName1,
 	bool append1, bool bufferedIO1, int bufferSize1)
-	: WriterAppender(std::make_unique<priv::FileAppenderPriv>(layout1))
+	: WriterAppender(std::make_unique<FileAppenderPriv>(layout1))
 {
 	_priv->fileAppend = append1;
 	_priv->fileName = fileName1;
@@ -59,7 +59,7 @@ FileAppender::FileAppender(const LayoutPtr& layout1, const LogString& fileName1,
 
 FileAppender::FileAppender(const LayoutPtr& layout1, const LogString& fileName1,
 	bool append1)
-	: WriterAppender(std::make_unique<priv::FileAppenderPriv>(layout1))
+	: WriterAppender(std::make_unique<FileAppenderPriv>(layout1))
 {
 	_priv->fileAppend = append1;
 	_priv->fileName = fileName1;
@@ -70,7 +70,7 @@ FileAppender::FileAppender(const LayoutPtr& layout1, const LogString& fileName1,
 }
 
 FileAppender::FileAppender(const LayoutPtr& layout1, const LogString& fileName1)
-	: WriterAppender(std::make_unique<priv::FileAppenderPriv>(layout1))
+	: WriterAppender(std::make_unique<FileAppenderPriv>(layout1))
 {
 	_priv->fileAppend = true;
 	_priv->fileName = fileName1;
@@ -80,7 +80,7 @@ FileAppender::FileAppender(const LayoutPtr& layout1, const LogString& fileName1)
 	activateOptions(p);
 }
 
-FileAppender::FileAppender(std::unique_ptr<priv::FileAppenderPriv> priv) :
+FileAppender::FileAppender(std::unique_ptr<FileAppenderPriv> priv) :
 	WriterAppender (std::move(priv)){
 
 }
diff --git a/src/main/cpp/odbcappender.cpp b/src/main/cpp/odbcappender.cpp
index fb1632c..1e79f1a 100644
--- a/src/main/cpp/odbcappender.cpp
+++ b/src/main/cpp/odbcappender.cpp
@@ -91,10 +91,10 @@ const char* SQLException::formatMessage(short fHandleType,
 
 IMPLEMENT_LOG4CXX_OBJECT(ODBCAppender)
 
-#define _priv static_cast<priv::ODBCAppenderPriv*>(m_priv.get())
+#define _priv static_cast<ODBCAppenderPriv*>(m_priv.get())
 
 ODBCAppender::ODBCAppender()
-	: AppenderSkeleton (std::make_unique<priv::ODBCAppenderPriv>())
+	: AppenderSkeleton (std::make_unique<ODBCAppenderPriv>())
 {
 }
 
diff --git a/src/main/cpp/rollingfileappender.cpp b/src/main/cpp/rollingfileappender.cpp
index fe0cfa1..31a2460 100644
--- a/src/main/cpp/rollingfileappender.cpp
+++ b/src/main/cpp/rollingfileappender.cpp
@@ -48,7 +48,7 @@ using namespace log4cxx::rolling;
 using namespace log4cxx::helpers;
 using namespace log4cxx::spi;
 
-struct RollingFileAppenderPriv : public priv::FileAppenderPriv{
+struct RollingFileAppender::RollingFileAppenderPriv : public FileAppenderPriv{
 	RollingFileAppenderPriv() :
 		FileAppenderPriv(),
 		fileLength(0){}
diff --git a/src/main/cpp/smtpappender.cpp b/src/main/cpp/smtpappender.cpp
index 41b6153..7aee2b3 100644
--- a/src/main/cpp/smtpappender.cpp
+++ b/src/main/cpp/smtpappender.cpp
@@ -377,9 +377,9 @@ class LOG4CXX_EXPORT DefaultEvaluator :
 IMPLEMENT_LOG4CXX_OBJECT(DefaultEvaluator)
 IMPLEMENT_LOG4CXX_OBJECT(SMTPAppender)
 
-struct SMTPPriv : public priv::AppenderSkeletonPrivate {
+struct SMTPAppender::SMTPPriv : public AppenderSkeletonPrivate {
 	SMTPPriv() :
-		priv::AppenderSkeletonPrivate(),
+		AppenderSkeletonPrivate(),
 		smtpPort(25),
 		bufferSize(512),
 		locationInfo(false),
@@ -387,7 +387,7 @@ struct SMTPPriv : public priv::AppenderSkeletonPrivate {
 		evaluator(new DefaultEvaluator()){}
 
 	SMTPPriv(spi::TriggeringEventEvaluatorPtr evaluator) :
-		priv::AppenderSkeletonPrivate(),
+		AppenderSkeletonPrivate(),
 		smtpPort(25),
 		bufferSize(512),
 		locationInfo(false),
diff --git a/src/main/cpp/socketappenderskeleton.cpp b/src/main/cpp/socketappenderskeleton.cpp
index c1d6beb..e2702b2 100644
--- a/src/main/cpp/socketappenderskeleton.cpp
+++ b/src/main/cpp/socketappenderskeleton.cpp
@@ -34,7 +34,7 @@ using namespace log4cxx;
 using namespace log4cxx::helpers;
 using namespace log4cxx::net;
 
-struct SocketAppenderSkeletonPriv : public priv::AppenderSkeletonPrivate {
+struct SocketAppenderSkeleton::SocketAppenderSkeletonPriv : public AppenderSkeletonPrivate {
 	SocketAppenderSkeletonPriv(int defaultPort, int reconnectionDelay) :
 		AppenderSkeletonPrivate(),
 		remoteHost(),
diff --git a/src/main/cpp/sockethubappender.cpp b/src/main/cpp/sockethubappender.cpp
index 15ec6d1..2352504 100644
--- a/src/main/cpp/sockethubappender.cpp
+++ b/src/main/cpp/sockethubappender.cpp
@@ -43,7 +43,7 @@ IMPLEMENT_LOG4CXX_OBJECT(SocketHubAppender)
 
 int SocketHubAppender::DEFAULT_PORT = 4560;
 
-struct SocketHubAppenderPriv : public priv::AppenderSkeletonPrivate{
+struct SocketHubAppender::SocketHubAppenderPriv : public AppenderSkeletonPrivate{
 	SocketHubAppenderPriv(int port) :
 		AppenderSkeletonPrivate(),
 		port(port),
diff --git a/src/main/cpp/syslogappender.cpp b/src/main/cpp/syslogappender.cpp
index 527d855..9e8f398 100644
--- a/src/main/cpp/syslogappender.cpp
+++ b/src/main/cpp/syslogappender.cpp
@@ -37,10 +37,10 @@ using namespace log4cxx::net;
 
 IMPLEMENT_LOG4CXX_OBJECT(SyslogAppender)
 
-#define _priv static_cast<priv::SyslogAppenderPriv*>(m_priv.get())
+#define _priv static_cast<SyslogAppenderPriv*>(m_priv.get())
 
 SyslogAppender::SyslogAppender()
-	: AppenderSkeleton (std::make_unique<priv::SyslogAppenderPriv>())
+	: AppenderSkeleton (std::make_unique<SyslogAppenderPriv>())
 {
 	this->initSyslogFacilityStr();
 
@@ -48,14 +48,14 @@ SyslogAppender::SyslogAppender()
 
 SyslogAppender::SyslogAppender(const LayoutPtr& layout1,
 	int syslogFacility1)
-	: AppenderSkeleton (std::make_unique<priv::SyslogAppenderPriv>(layout1, syslogFacility1))
+	: AppenderSkeleton (std::make_unique<SyslogAppenderPriv>(layout1, syslogFacility1))
 {
 	this->initSyslogFacilityStr();
 }
 
 SyslogAppender::SyslogAppender(const LayoutPtr& layout1,
 	const LogString& syslogHost1, int syslogFacility1)
-	: AppenderSkeleton (std::make_unique<priv::SyslogAppenderPriv>(layout1, syslogHost1, syslogFacility1))
+	: AppenderSkeleton (std::make_unique<SyslogAppenderPriv>(layout1, syslogHost1, syslogFacility1))
 {
 	this->initSyslogFacilityStr();
 	setSyslogHost(syslogHost1);
diff --git a/src/main/cpp/telnetappender.cpp b/src/main/cpp/telnetappender.cpp
index 8071937..a3a4b9d 100644
--- a/src/main/cpp/telnetappender.cpp
+++ b/src/main/cpp/telnetappender.cpp
@@ -34,7 +34,7 @@ using namespace log4cxx::net;
 
 IMPLEMENT_LOG4CXX_OBJECT(TelnetAppender)
 
-struct TelnetAppenderPriv : public priv::AppenderSkeletonPrivate{
+struct TelnetAppender::TelnetAppenderPriv : public AppenderSkeletonPrivate{
 	TelnetAppenderPriv( int port, int maxConnections ) : AppenderSkeletonPrivate(),
 		port(port),
 		connections(maxConnections),
diff --git a/src/main/cpp/writerappender.cpp b/src/main/cpp/writerappender.cpp
index bbd4842..52ffaf3 100644
--- a/src/main/cpp/writerappender.cpp
+++ b/src/main/cpp/writerappender.cpp
@@ -27,29 +27,29 @@ using namespace log4cxx;
 using namespace log4cxx::helpers;
 using namespace log4cxx::spi;
 
-#define _priv static_cast<priv::WriterAppenderPriv*>(m_priv.get())
+#define _priv static_cast<WriterAppenderPriv*>(m_priv.get())
 
 IMPLEMENT_LOG4CXX_OBJECT(WriterAppender)
 
 WriterAppender::WriterAppender() :
-	AppenderSkeleton (std::make_unique<priv::WriterAppenderPriv>())
+	AppenderSkeleton (std::make_unique<WriterAppenderPriv>())
 {
 }
 
 WriterAppender::WriterAppender(const LayoutPtr& layout1,
 	log4cxx::helpers::WriterPtr& writer1)
-	: AppenderSkeleton (std::make_unique<priv::WriterAppenderPriv>(layout1, writer1))
+	: AppenderSkeleton (std::make_unique<WriterAppenderPriv>(layout1, writer1))
 {
 	Pool p;
 	activateOptions(p);
 }
 
 WriterAppender::WriterAppender(const LayoutPtr& layout1)
-	: AppenderSkeleton (std::make_unique<priv::WriterAppenderPriv>(layout1))
+	: AppenderSkeleton (std::make_unique<WriterAppenderPriv>(layout1))
 {
 }
 
-WriterAppender::WriterAppender(std::unique_ptr<priv::WriterAppenderPriv> priv)
+WriterAppender::WriterAppender(std::unique_ptr<WriterAppenderPriv> priv)
 	: AppenderSkeleton (std::move(priv)){
 
 }
diff --git a/src/main/cpp/xmlsocketappender.cpp b/src/main/cpp/xmlsocketappender.cpp
index 1b34573..16cb0bd 100644
--- a/src/main/cpp/xmlsocketappender.cpp
+++ b/src/main/cpp/xmlsocketappender.cpp
@@ -35,7 +35,7 @@ using namespace log4cxx::xml;
 
 IMPLEMENT_LOG4CXX_OBJECT(XMLSocketAppender)
 
-struct XMLSocketAppenderPriv : public priv::AppenderSkeletonPrivate {
+struct XMLSocketAppender::XMLSocketAppenderPriv : public AppenderSkeletonPrivate {
 	XMLSocketAppenderPriv() : AppenderSkeletonPrivate(){}
 
 	log4cxx::helpers::WriterPtr writer;
diff --git a/src/main/include/log4cxx/appenderskeleton.h b/src/main/include/log4cxx/appenderskeleton.h
index 1076335..bb7c783 100644
--- a/src/main/include/log4cxx/appenderskeleton.h
+++ b/src/main/include/log4cxx/appenderskeleton.h
@@ -34,10 +34,6 @@
 
 namespace log4cxx
 {
-namespace priv
-{
-struct AppenderSkeletonPrivate;
-}
 
 /**
 *  Implementation base class for all appenders.
@@ -50,7 +46,8 @@ class LOG4CXX_EXPORT AppenderSkeleton :
 	public virtual helpers::Object
 {
 	protected:
-		AppenderSkeleton( std::unique_ptr<priv::AppenderSkeletonPrivate> priv );
+		struct AppenderSkeletonPrivate;
+		AppenderSkeleton( std::unique_ptr<AppenderSkeletonPrivate> priv );
 
 		/**
 		Subclasses of <code>AppenderSkeleton</code> should implement this
@@ -177,7 +174,7 @@ class LOG4CXX_EXPORT AppenderSkeleton :
 		void setThreshold(const LevelPtr& threshold);
 
 protected:
-		std::unique_ptr<priv::AppenderSkeletonPrivate> m_priv;
+		std::unique_ptr<AppenderSkeletonPrivate> m_priv;
 
 }; // class AppenderSkeleton
 }  // namespace log4cxx
diff --git a/src/main/include/log4cxx/asyncappender.h b/src/main/include/log4cxx/asyncappender.h
index 1f767b2..c427244 100644
--- a/src/main/include/log4cxx/asyncappender.h
+++ b/src/main/include/log4cxx/asyncappender.h
@@ -57,6 +57,9 @@ class LOG4CXX_EXPORT AsyncAppender :
 	public virtual spi::AppenderAttachable,
 	public virtual AppenderSkeleton
 {
+protected:
+	struct AsyncAppenderPriv;
+
 	public:
 		DECLARE_LOG4CXX_OBJECT(AsyncAppender)
 		BEGIN_LOG4CXX_CAST_MAP()
diff --git a/src/main/include/log4cxx/consoleappender.h b/src/main/include/log4cxx/consoleappender.h
index 31bfb17..2cb4f91 100644
--- a/src/main/include/log4cxx/consoleappender.h
+++ b/src/main/include/log4cxx/consoleappender.h
@@ -35,6 +35,9 @@ namespace log4cxx
 */
 class LOG4CXX_EXPORT ConsoleAppender : public WriterAppender
 {
+private:
+	struct ConsoleAppenderPriv;
+
 	public:
 		DECLARE_LOG4CXX_OBJECT(ConsoleAppender)
 		BEGIN_LOG4CXX_CAST_MAP()
diff --git a/src/main/include/log4cxx/db/odbcappender.h b/src/main/include/log4cxx/db/odbcappender.h
index b16baaa..67e46eb 100644
--- a/src/main/include/log4cxx/db/odbcappender.h
+++ b/src/main/include/log4cxx/db/odbcappender.h
@@ -227,6 +227,9 @@ class LOG4CXX_EXPORT ODBCAppender : public AppenderSkeleton
 #endif
 		static void encode(unsigned short** dest, const LogString& src,
 			log4cxx::helpers::Pool& p);
+
+protected:
+		struct ODBCAppenderPriv;
 }; // class ODBCAppender
 LOG4CXX_PTR_DEF(ODBCAppender);
 
diff --git a/src/main/include/log4cxx/fileappender.h b/src/main/include/log4cxx/fileappender.h
index bca07da..39c6d9d 100644
--- a/src/main/include/log4cxx/fileappender.h
+++ b/src/main/include/log4cxx/fileappender.h
@@ -35,9 +35,6 @@ namespace helpers
 {
 class Pool;
 }
-namespace priv{
-struct FileAppenderPriv;
-}
 
 /**
 *  FileAppender appends log events to a file.
@@ -48,6 +45,9 @@ struct FileAppenderPriv;
 */
 class LOG4CXX_EXPORT FileAppender : public WriterAppender
 {
+protected:
+	struct FileAppenderPriv;
+
 	public:
 		DECLARE_LOG4CXX_OBJECT(FileAppender)
 		BEGIN_LOG4CXX_CAST_MAP()
@@ -209,7 +209,7 @@ class LOG4CXX_EXPORT FileAppender : public WriterAppender
 		FileAppender(const FileAppender&);
 		FileAppender& operator=(const FileAppender&);
 protected:
-		FileAppender(std::unique_ptr<priv::FileAppenderPriv> priv);
+		FileAppender(std::unique_ptr<FileAppenderPriv> priv);
 
 }; // class FileAppender
 LOG4CXX_PTR_DEF(FileAppender);
diff --git a/src/main/include/log4cxx/net/smtpappender.h b/src/main/include/log4cxx/net/smtpappender.h
index 593950d..0838f44 100644
--- a/src/main/include/log4cxx/net/smtpappender.h
+++ b/src/main/include/log4cxx/net/smtpappender.h
@@ -45,6 +45,7 @@ delivering useful application context.
 class LOG4CXX_EXPORT SMTPAppender : public AppenderSkeleton
 {
 	private:
+		struct SMTPPriv;
 		SMTPAppender(const SMTPAppender&);
 		SMTPAppender& operator=(const SMTPAppender&);
 		static bool asciiCheck(const LogString& value, const LogString& label);
diff --git a/src/main/include/log4cxx/net/socketappenderskeleton.h b/src/main/include/log4cxx/net/socketappenderskeleton.h
index b4158f4..77fccd9 100644
--- a/src/main/include/log4cxx/net/socketappenderskeleton.h
+++ b/src/main/include/log4cxx/net/socketappenderskeleton.h
@@ -40,6 +40,9 @@ namespace net
  */
 class LOG4CXX_EXPORT SocketAppenderSkeleton : public AppenderSkeleton
 {
+protected:
+	struct SocketAppenderSkeletonPriv;
+
 	public:
 		SocketAppenderSkeleton(int defaultPort, int reconnectionDelay);
 		~SocketAppenderSkeleton();
diff --git a/src/main/include/log4cxx/net/sockethubappender.h b/src/main/include/log4cxx/net/sockethubappender.h
index 33be85a..023eae7 100644
--- a/src/main/include/log4cxx/net/sockethubappender.h
+++ b/src/main/include/log4cxx/net/sockethubappender.h
@@ -179,6 +179,8 @@ class LOG4CXX_EXPORT SocketHubAppender : public AppenderSkeleton
 
 		void monitor();
 
+		struct SocketHubAppenderPriv;
+
 }; // class SocketHubAppender
 LOG4CXX_PTR_DEF(SocketHubAppender);
 }  // namespace net
diff --git a/src/main/include/log4cxx/net/syslogappender.h b/src/main/include/log4cxx/net/syslogappender.h
index 87bee2d..e401fab 100644
--- a/src/main/include/log4cxx/net/syslogappender.h
+++ b/src/main/include/log4cxx/net/syslogappender.h
@@ -144,6 +144,7 @@ class LOG4CXX_EXPORT SyslogAppender : public AppenderSkeleton
 		void initSyslogFacilityStr();
 
 	private:
+		struct SyslogAppenderPriv;
 		SyslogAppender(const SyslogAppender&);
 		SyslogAppender& operator=(const SyslogAppender&);
 }; // class SyslogAppender
diff --git a/src/main/include/log4cxx/net/telnetappender.h b/src/main/include/log4cxx/net/telnetappender.h
index e25d19d..e996755 100644
--- a/src/main/include/log4cxx/net/telnetappender.h
+++ b/src/main/include/log4cxx/net/telnetappender.h
@@ -137,6 +137,8 @@ class LOG4CXX_EXPORT TelnetAppender : public AppenderSkeleton
 		void write(log4cxx::helpers::ByteBuffer&);
 		void writeStatus(const log4cxx::helpers::SocketPtr& socket, const LogString& msg, log4cxx::helpers::Pool& p);
 		void acceptConnections();
+
+		struct TelnetAppenderPriv;
 }; // class TelnetAppender
 
 LOG4CXX_PTR_DEF(TelnetAppender);
diff --git a/src/main/include/log4cxx/net/xmlsocketappender.h b/src/main/include/log4cxx/net/xmlsocketappender.h
index 2ce7be2..dad19f7 100644
--- a/src/main/include/log4cxx/net/xmlsocketappender.h
+++ b/src/main/include/log4cxx/net/xmlsocketappender.h
@@ -138,6 +138,8 @@ class LOG4CXX_EXPORT XMLSocketAppender : public SocketAppenderSkeleton
 		//  prevent copy and assignment statements
 		XMLSocketAppender(const XMLSocketAppender&);
 		XMLSocketAppender& operator=(const XMLSocketAppender&);
+
+		struct XMLSocketAppenderPriv;
 }; // class XMLSocketAppender
 
 LOG4CXX_PTR_DEF(XMLSocketAppender);
diff --git a/src/main/include/log4cxx/private/appenderskeleton_priv.h b/src/main/include/log4cxx/private/appenderskeleton_priv.h
index af81db2..0ee66ae 100644
--- a/src/main/include/log4cxx/private/appenderskeleton_priv.h
+++ b/src/main/include/log4cxx/private/appenderskeleton_priv.h
@@ -23,9 +23,8 @@
 #include <memory>
 
 namespace log4cxx {
-namespace priv{
 
-struct AppenderSkeletonPrivate {
+struct AppenderSkeleton::AppenderSkeletonPrivate {
     AppenderSkeletonPrivate() :
         threshold(Level::getAll()),
         errorHandler(std::make_shared<log4cxx::helpers::OnlyOnceErrorHandler>()),
@@ -70,6 +69,5 @@ struct AppenderSkeletonPrivate {
 };
 
 }
-}
 
 #endif /* _LOG4CXX_APPENDERSKELETON_PRIV */
diff --git a/src/main/include/log4cxx/private/fileappender_priv.h b/src/main/include/log4cxx/private/fileappender_priv.h
index fe9cf2d..ac0a742 100644
--- a/src/main/include/log4cxx/private/fileappender_priv.h
+++ b/src/main/include/log4cxx/private/fileappender_priv.h
@@ -19,11 +19,11 @@
 #define _LOG4CXX_FILEAPPENDER_PRIV_H
 
 #include <log4cxx/private/writerappender_priv.h>
+#include <log4cxx/fileappender.h>
 
 namespace log4cxx{
-namespace priv{
 
-struct FileAppenderPriv : public WriterAppenderPriv {
+struct FileAppender::FileAppenderPriv : public WriterAppender::WriterAppenderPriv {
     FileAppenderPriv() : WriterAppenderPriv(){}
 
     FileAppenderPriv(LayoutPtr layout) : WriterAppenderPriv(layout){}
@@ -51,6 +51,5 @@ struct FileAppenderPriv : public WriterAppenderPriv {
 };
 
 }
-}
 
 #endif
diff --git a/src/main/include/log4cxx/private/odbcappender_priv.h b/src/main/include/log4cxx/private/odbcappender_priv.h
index e6c5a85..547fdc0 100644
--- a/src/main/include/log4cxx/private/odbcappender_priv.h
+++ b/src/main/include/log4cxx/private/odbcappender_priv.h
@@ -15,15 +15,18 @@
  * limitations under the License.
  */
 
+#ifndef LOG4CXX_ODBCAPPENDER_PRIV
+#define LOG4CXX_ODBCAPPENDER_PRIV
+
 #include <log4cxx/db/odbcappender.h>
 #include "appenderskeleton_priv.h"
 
 #include <list>
 
 namespace log4cxx{
-namespace priv{
+namespace db{
 
-struct ODBCAppenderPriv : public AppenderSkeletonPrivate {
+struct ODBCAppender::ODBCAppenderPriv : public AppenderSkeleton::AppenderSkeletonPrivate {
     ODBCAppenderPriv() :
         AppenderSkeletonPrivate(),
         connection(nullptr),
@@ -80,3 +83,5 @@ struct ODBCAppenderPriv : public AppenderSkeletonPrivate {
 
 }
 }
+
+#endif /* LOG4CXX_ODBCAPPENDER_PRIV */
diff --git a/src/main/include/log4cxx/private/syslogappender_priv.h b/src/main/include/log4cxx/private/syslogappender_priv.h
index 2e4519b..4253bbf 100644
--- a/src/main/include/log4cxx/private/syslogappender_priv.h
+++ b/src/main/include/log4cxx/private/syslogappender_priv.h
@@ -50,9 +50,9 @@
 #endif
 
 namespace log4cxx{
-namespace priv{
+namespace net{
 
-struct SyslogAppenderPriv : public AppenderSkeletonPrivate{
+struct SyslogAppender::SyslogAppenderPriv : public AppenderSkeleton::AppenderSkeletonPrivate{
     SyslogAppenderPriv() :
         AppenderSkeletonPrivate(),
         syslogFacility(LOG_USER),
diff --git a/src/main/include/log4cxx/private/writerappender_priv.h b/src/main/include/log4cxx/private/writerappender_priv.h
index 9ff3100..e748253 100644
--- a/src/main/include/log4cxx/private/writerappender_priv.h
+++ b/src/main/include/log4cxx/private/writerappender_priv.h
@@ -16,6 +16,7 @@
  */
 
 #include <log4cxx/helpers/writer.h>
+#include <log4cxx/writerappender.h>
 #include <atomic>
 
 #include "appenderskeleton_priv.h"
@@ -24,9 +25,8 @@
 #define _LOG4CXX_WRITERAPPENDER_PRIV_H
 
 namespace log4cxx{
-namespace priv{
 
-struct WriterAppenderPriv : public priv::AppenderSkeletonPrivate {
+struct WriterAppender::WriterAppenderPriv : public AppenderSkeleton::AppenderSkeletonPrivate {
         WriterAppenderPriv() :
 	        AppenderSkeletonPrivate(),
 	        immediateFlush(true){}
@@ -72,6 +72,5 @@ struct WriterAppenderPriv : public priv::AppenderSkeletonPrivate {
 };
 
 }
-}
 
 #endif /* _LOG4CXX_WRITERAPPENDER_PRIV_H */
diff --git a/src/main/include/log4cxx/rolling/rollingfileappender.h b/src/main/include/log4cxx/rolling/rollingfileappender.h
index db95090..4cb4240 100644
--- a/src/main/include/log4cxx/rolling/rollingfileappender.h
+++ b/src/main/include/log4cxx/rolling/rollingfileappender.h
@@ -82,6 +82,8 @@ class LOG4CXX_EXPORT RollingFileAppender : public FileAppender
 		BEGIN_LOG4CXX_CAST_MAP()
 		LOG4CXX_CAST_ENTRY(RollingFileAppender)
 		END_LOG4CXX_CAST_MAP()
+		protected:
+			struct RollingFileAppenderPriv;
 
 	public:
 		RollingFileAppender();
diff --git a/src/main/include/log4cxx/writerappender.h b/src/main/include/log4cxx/writerappender.h
index 8dc9e62..f8d68a4 100644
--- a/src/main/include/log4cxx/writerappender.h
+++ b/src/main/include/log4cxx/writerappender.h
@@ -36,15 +36,13 @@ namespace helpers
 class Transcoder;
 }
 
-namespace priv{
-struct WriterAppenderPriv;
-}
-
 /**
 WriterAppender appends log events to a standard output stream
 */
 class LOG4CXX_EXPORT WriterAppender : public AppenderSkeleton
 {
+protected:
+	struct WriterAppenderPriv;
 	public:
 		DECLARE_ABSTRACT_LOG4CXX_OBJECT(WriterAppender)
 		BEGIN_LOG4CXX_CAST_MAP()
@@ -59,7 +57,7 @@ class LOG4CXX_EXPORT WriterAppender : public AppenderSkeleton
 		WriterAppender(const LayoutPtr& layout,
 			log4cxx::helpers::WriterPtr& writer);
 		WriterAppender(const LayoutPtr& layout);
-		WriterAppender(std::unique_ptr<priv::WriterAppenderPriv> priv);
+		WriterAppender(std::unique_ptr<WriterAppenderPriv> priv);
 
 	public:
 		~WriterAppender();