summaryrefslogtreecommitdiff
path: root/SDL_Core/src/thirdPartyLibs/logger/log4cplus-1.1.0/src/appenderattachableimpl.cxx
diff options
context:
space:
mode:
authorkhburdette <kburdet1@ford.com>2013-04-19 15:58:59 -0400
committerkhburdette <kburdet1@ford.com>2013-04-19 15:58:59 -0400
commita46991cd5da4dbcc5510457c6bae2dab340c1ed2 (patch)
tree9f4d9ccec060c4b6cd378aa631442f710c140962 /SDL_Core/src/thirdPartyLibs/logger/log4cplus-1.1.0/src/appenderattachableimpl.cxx
downloadsmartdevicelink-a46991cd5da4dbcc5510457c6bae2dab340c1ed2.tar.gz
Initial Ford commit with Core and Proxies
Diffstat (limited to 'SDL_Core/src/thirdPartyLibs/logger/log4cplus-1.1.0/src/appenderattachableimpl.cxx')
-rw-r--r--SDL_Core/src/thirdPartyLibs/logger/log4cplus-1.1.0/src/appenderattachableimpl.cxx174
1 files changed, 174 insertions, 0 deletions
diff --git a/SDL_Core/src/thirdPartyLibs/logger/log4cplus-1.1.0/src/appenderattachableimpl.cxx b/SDL_Core/src/thirdPartyLibs/logger/log4cplus-1.1.0/src/appenderattachableimpl.cxx
new file mode 100644
index 000000000..7eb6953a5
--- /dev/null
+++ b/SDL_Core/src/thirdPartyLibs/logger/log4cplus-1.1.0/src/appenderattachableimpl.cxx
@@ -0,0 +1,174 @@
+// Module: Log4CPLUS
+// File: appenderattachableimpl.cxx
+// Created: 6/2001
+// Author: Tad E. Smith
+//
+//
+// Copyright 2001-2010 Tad E. Smith
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+
+#include <log4cplus/appender.h>
+#include <log4cplus/helpers/appenderattachableimpl.h>
+#include <log4cplus/helpers/loglog.h>
+#include <log4cplus/spi/loggingevent.h>
+#include <log4cplus/thread/syncprims-pub-impl.h>
+
+#include <algorithm>
+
+
+namespace log4cplus
+{
+
+
+namespace spi
+{
+
+
+AppenderAttachable::~AppenderAttachable()
+{ }
+
+
+} // namespace spi
+
+
+namespace helpers
+{
+
+
+//////////////////////////////////////////////////////////////////////////////
+// log4cplus::helpers::AppenderAttachableImpl ctor and dtor
+//////////////////////////////////////////////////////////////////////////////
+
+AppenderAttachableImpl::AppenderAttachableImpl()
+{ }
+
+
+AppenderAttachableImpl::~AppenderAttachableImpl()
+{ }
+
+
+
+///////////////////////////////////////////////////////////////////////////////
+// log4cplus::helpers::AppenderAttachableImpl public methods
+///////////////////////////////////////////////////////////////////////////////
+
+void
+AppenderAttachableImpl::addAppender(SharedAppenderPtr newAppender)
+{
+ if(newAppender == NULL) {
+ getLogLog().warn( LOG4CPLUS_TEXT("Tried to add NULL appender") );
+ return;
+ }
+
+ thread::MutexGuard guard (appender_list_mutex);
+
+ ListType::iterator it =
+ std::find(appenderList.begin(), appenderList.end(), newAppender);
+ if(it == appenderList.end()) {
+ appenderList.push_back(newAppender);
+ }
+}
+
+
+
+AppenderAttachableImpl::ListType
+AppenderAttachableImpl::getAllAppenders()
+{
+ thread::MutexGuard guard (appender_list_mutex);
+
+ return appenderList;
+}
+
+
+
+SharedAppenderPtr
+AppenderAttachableImpl::getAppender(const log4cplus::tstring& name)
+{
+ thread::MutexGuard guard (appender_list_mutex);
+
+ for(ListType::iterator it=appenderList.begin();
+ it!=appenderList.end();
+ ++it)
+ {
+ if((*it)->getName() == name) {
+ return *it;
+ }
+ }
+
+ return SharedAppenderPtr(NULL);
+}
+
+
+
+void
+AppenderAttachableImpl::removeAllAppenders()
+{
+ thread::MutexGuard guard (appender_list_mutex);
+
+ appenderList.erase(appenderList.begin(), appenderList.end());
+}
+
+
+
+void
+AppenderAttachableImpl::removeAppender(SharedAppenderPtr appender)
+{
+ if(appender == NULL) {
+ getLogLog().warn( LOG4CPLUS_TEXT("Tried to remove NULL appender") );
+ return;
+ }
+
+ thread::MutexGuard guard (appender_list_mutex);
+
+ ListType::iterator it =
+ std::find(appenderList.begin(), appenderList.end(), appender);
+ if(it != appenderList.end()) {
+ appenderList.erase(it);
+ }
+}
+
+
+
+void
+AppenderAttachableImpl::removeAppender(const log4cplus::tstring& name)
+{
+ removeAppender(getAppender(name));
+}
+
+
+
+int
+AppenderAttachableImpl::appendLoopOnAppenders(const spi::InternalLoggingEvent& event) const
+{
+ int count = 0;
+
+ thread::MutexGuard guard (appender_list_mutex);
+
+ for(ListType::const_iterator it=appenderList.begin();
+ it!=appenderList.end();
+ ++it)
+ {
+ ++count;
+ (*it)->doAppend(event);
+ }
+
+ return count;
+}
+
+
+} // namespace helpers
+
+
+} // namespace log4cplus