/*
 * 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 "PortabilityImpl.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;
    }
} // namespace log4cpp
