// $Id$ // // Copyright (C) 2009 // Fraunhofer Institute for Open Communication Systems (FOKUS) // // The contents of this file are subject to the Fraunhofer FOKUS Public License // Version 1.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://senf.berlios.de/license.html // // The Fraunhofer FOKUS Public License Version 1.0 is based on, // but modifies the Mozilla Public License Version 1.1. // See the full license text for the amendments. // // Software distributed under the License is distributed on an "AS IS" basis, // WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License // for the specific language governing rights and limitations under the License. // // The Original Code is Fraunhofer FOKUS code. // // The Initial Developer of the Original Code is Fraunhofer-Gesellschaft e.V. // (registered association), Hansastraße 27 c, 80686 Munich, Germany. // All Rights Reserved. // // Contributor(s): // Stefan Bund /** \file \brief Format inline non-template implementation */ #include "Format.ih" // Custom includes #define prefix_ inline //-///////////////////////////////////////////////////////////////////////////////////////////////// //-///////////////////////////////////////////////////////////////////////////////////////////////// // senf::format::eng prefix_ senf::format::eng::eng(float v, float d) : v_ (v), d_ (d), haveWidth_ (false), width_ (0), havePrecision_ (false), precision_ (0), haveFill_ (false), fill_ (' '), mask_ (), flags_ () {} prefix_ senf::format::eng const & senf::format::eng::setw(unsigned w) const { haveWidth_ = true; width_ = w; return *this; } prefix_ senf::format::eng const & senf::format::eng::setprecision(unsigned p) const { havePrecision_ = true; precision_ = p; return *this; } prefix_ senf::format::eng const & senf::format::eng::setfill(char c) const { haveFill_ = true; fill_ = c; return *this; } prefix_ senf::format::eng const & senf::format::eng::showbase() const { mask_ |= std::ios_base::showbase; flags_ |= std::ios_base::showbase; return *this; } prefix_ senf::format::eng const & senf::format::eng::noshowbase() const { mask_ |= std::ios_base::showbase; flags_ &= ~std::ios_base::showbase; return *this; } prefix_ senf::format::eng const & senf::format::eng::showpos() const { mask_ |= std::ios_base::showpos; flags_ |= std::ios_base::showpos; return *this; } prefix_ senf::format::eng const & senf::format::eng::noshowpos() const { mask_ |= std::ios_base::showpos; flags_ &= ~std::ios_base::showpos; return *this; } prefix_ senf::format::eng const & senf::format::eng::showpoint() const { mask_ |= std::ios_base::showpoint; flags_ |= std::ios_base::showpoint; return *this; } prefix_ senf::format::eng const & senf::format::eng::noshowpoint() const { mask_ |= std::ios_base::showpoint; flags_ &= ~std::ios_base::showpoint; return *this; } prefix_ senf::format::eng const & senf::format::eng::uppercase() const { mask_ |= std::ios_base::uppercase; flags_ |= std::ios_base::uppercase; return *this; } prefix_ senf::format::eng const & senf::format::eng::nouppercase() const { mask_ |= std::ios_base::uppercase; flags_ &= ~std::ios_base::uppercase; return *this; } prefix_ senf::format::eng const & senf::format::eng::left() const { mask_ |= std::ios_base::adjustfield; flags_ &= ~std::ios_base::adjustfield; flags_ |= std::ios_base::left; return *this; } prefix_ senf::format::eng const & senf::format::eng::internal() const { mask_ |= std::ios_base::adjustfield; flags_ &= ~std::ios_base::adjustfield; flags_ |= std::ios_base::internal; return *this; } prefix_ senf::format::eng const & senf::format::eng::right() const { mask_ |= std::ios_base::adjustfield; flags_ &= ~std::ios_base::adjustfield; flags_ |= std::ios_base::right; return *this; } //-///////////////////////////////////////////////////////////////////////////////////////////////// // senf::format::IndentHelper prefix_ senf::format::IndentHelper::IndentHelper() : instance_level(1) { ++static_level; } prefix_ senf::format::IndentHelper::~IndentHelper() { static_level -= instance_level; } prefix_ void senf::format::IndentHelper::increase() { ++static_level; ++instance_level; } prefix_ unsigned int senf::format::IndentHelper::level() const { return static_level; } prefix_ std::ostream & senf::format::operator<<(std::ostream & os, senf::format::IndentHelper const & indent) { for (unsigned int i=0, j=indent.level(); i