118 lines
2.6 KiB
C++
118 lines
2.6 KiB
C++
/*
|
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
|
* contributor license agreements. See the NOTICE file distributed with
|
|
* this work for additional information regarding copyright ownership.
|
|
* The ASF licenses this file to You 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.
|
|
*/
|
|
|
|
#ifndef _LOG4CXX_HELPER_FORMATTING_INFO_H
|
|
#define _LOG4CXX_HELPER_FORMATTING_INFO_H
|
|
|
|
|
|
#include <log4cxx/helpers/objectimpl.h>
|
|
#include <log4cxx/logstring.h>
|
|
|
|
namespace log4cxx {
|
|
namespace pattern {
|
|
|
|
|
|
class FormattingInfo;
|
|
typedef helpers::ObjectPtrT<FormattingInfo> FormattingInfoPtr;
|
|
|
|
|
|
/**
|
|
* Modifies the output of a pattern converter for a specified minimum
|
|
* and maximum width and alignment.
|
|
*
|
|
* @author Curt Arnold
|
|
*
|
|
* @since 0.9.8
|
|
*/
|
|
class LOG4CXX_EXPORT FormattingInfo : public virtual log4cxx::helpers::ObjectImpl {
|
|
|
|
/**
|
|
* Minimum length.
|
|
*/
|
|
const int minLength;
|
|
|
|
/**
|
|
* Maximum length.
|
|
*/
|
|
const int maxLength;
|
|
|
|
/**
|
|
* Alignment.
|
|
*/
|
|
const bool leftAlign;
|
|
|
|
public:
|
|
DECLARE_ABSTRACT_LOG4CXX_OBJECT(FormattingInfo)
|
|
BEGIN_LOG4CXX_CAST_MAP()
|
|
LOG4CXX_CAST_ENTRY(FormattingInfo)
|
|
END_LOG4CXX_CAST_MAP()
|
|
|
|
|
|
/**
|
|
* Creates new instance.
|
|
* @param leftAlign left align if true.
|
|
* @param minLength minimum length.
|
|
* @param maxLength maximum length.
|
|
*/
|
|
FormattingInfo(
|
|
const bool leftAlign, const int minLength, const int maxLength);
|
|
|
|
/**
|
|
* Gets default instance.
|
|
* @return default instance.
|
|
*/
|
|
static FormattingInfoPtr getDefault();
|
|
|
|
/**
|
|
* Determine if left aligned.
|
|
* @return true if left aligned.
|
|
*/
|
|
inline bool isLeftAligned() const {
|
|
return leftAlign;
|
|
}
|
|
|
|
/**
|
|
* Get minimum length.
|
|
* @return minimum length.
|
|
*/
|
|
inline int getMinLength() const {
|
|
return minLength;
|
|
}
|
|
|
|
/**
|
|
* Get maximum length.
|
|
* @return maximum length.
|
|
*/
|
|
inline int getMaxLength() const {
|
|
return maxLength;
|
|
}
|
|
|
|
/**
|
|
* Adjust the content of the buffer based on the specified lengths and alignment.
|
|
*
|
|
* @param fieldStart start of field in buffer.
|
|
* @param buffer buffer to be modified.
|
|
*/
|
|
void format(const int fieldStart, LogString& buffer) const;
|
|
};
|
|
|
|
}
|
|
}
|
|
|
|
|
|
#endif
|