diff options
author | khburdette <kburdet1@ford.com> | 2013-04-19 15:58:59 -0400 |
---|---|---|
committer | khburdette <kburdet1@ford.com> | 2013-04-19 15:58:59 -0400 |
commit | a46991cd5da4dbcc5510457c6bae2dab340c1ed2 (patch) | |
tree | 9f4d9ccec060c4b6cd378aa631442f710c140962 /SDL_Core/src/thirdPartyLibs/logger/log4cplus-1.1.0/src/appenderattachableimpl.cxx | |
download | smartdevicelink-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.cxx | 174 |
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 |