/*
 * LayoutAppender.cpp
 *
 * Copyright 2000, LifeLine Networks BV (www.lifeline.nl). All rights reserved.
 * Copyright 2000, Bastiaan Bakker. All rights reserved.
 *
 * See the COPYING file for the terms of usage and distribution.
 */

#include <log4cpp/Portability.hh>
#include <log4cpp/OstringStream.hh>
#include <log4cpp/LayoutAppender.hh>

namespace log4cpp {

    LayoutAppender::LayoutAppender(const std::string& name) : 
            AppenderSkeleton(name),
            _layout(new DefaultLayoutType()) {
    }
    
    LayoutAppender::~LayoutAppender() {
        delete _layout;
    }

    bool LayoutAppender::requiresLayout() const {
        return true;
    }

    void LayoutAppender::setLayout(Layout* layout) {
       if (layout != _layout) {
	  Layout *oldLayout = _layout;
	  _layout = (layout == NULL) ? new DefaultLayoutType() : layout;
	  delete oldLayout;
       }
    }

    Layout& LayoutAppender::_getLayout() {
        return *_layout;
    }
}
