< prev index next >

src/share/vm/utilities/ostream.cpp

Print this page




   8  *
   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 
  25 #include "precompiled.hpp"
  26 #include "compiler/compileLog.hpp"
  27 #include "gc/shared/gcId.hpp"

  28 #include "oops/oop.inline.hpp"
  29 #include "runtime/arguments.hpp"
  30 #include "runtime/os.hpp"
  31 #include "runtime/vm_version.hpp"
  32 #include "utilities/defaultStream.hpp"
  33 #include "utilities/macros.hpp"
  34 #include "utilities/ostream.hpp"
  35 #include "utilities/top.hpp"
  36 #include "utilities/xmlstream.hpp"
  37 
  38 extern "C" void jio_print(const char* s); // Declarationtion of jvm method
  39 
  40 outputStream::outputStream(int width) {
  41   _width       = width;
  42   _position    = 0;
  43   _newlines    = 0;
  44   _precount    = 0;
  45   _indentation = 0;
  46 }
  47 


 221 void outputStream::date_stamp(bool guard,
 222                               const char* prefix,
 223                               const char* suffix) {
 224   if (!guard) {
 225     return;
 226   }
 227   print_raw(prefix);
 228   static const char error_time[] = "yyyy-mm-ddThh:mm:ss.mmm+zzzz";
 229   static const int buffer_length = 32;
 230   char buffer[buffer_length];
 231   const char* iso8601_result = os::iso8601_time(buffer, buffer_length);
 232   if (iso8601_result != NULL) {
 233     print_raw(buffer);
 234   } else {
 235     print_raw(error_time);
 236   }
 237   print_raw(suffix);
 238   return;
 239 }
 240 
 241 void outputStream::gclog_stamp(const GCId& gc_id) {
 242   date_stamp(PrintGCDateStamps);
 243   stamp(PrintGCTimeStamps);
 244   if (PrintGCID) {
 245     print("#%u: ", gc_id.id());
 246   }
 247 }
 248 
 249 outputStream& outputStream::indent() {
 250   while (_position < _indentation) sp();
 251   return *this;
 252 }
 253 
 254 void outputStream::print_jlong(jlong value) {
 255   print(JLONG_FORMAT, value);
 256 }
 257 
 258 void outputStream::print_julong(julong value) {
 259   print(JULONG_FORMAT, value);
 260 }
 261 
 262 /**
 263  * This prints out hex data in a 'windbg' or 'xxd' form, where each line is:
 264  *   <hex-address>: 8 * <hex-halfword> <ascii translation (optional)>
 265  * example:




   8  *
   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 
  25 #include "precompiled.hpp"
  26 #include "compiler/compileLog.hpp"
  27 #include "gc/shared/gcId.hpp"
  28 #include "gc/shared/gcId.hpp"
  29 #include "oops/oop.inline.hpp"
  30 #include "runtime/arguments.hpp"
  31 #include "runtime/os.hpp"
  32 #include "runtime/vm_version.hpp"
  33 #include "utilities/defaultStream.hpp"
  34 #include "utilities/macros.hpp"
  35 #include "utilities/ostream.hpp"
  36 #include "utilities/top.hpp"
  37 #include "utilities/xmlstream.hpp"
  38 
  39 extern "C" void jio_print(const char* s); // Declarationtion of jvm method
  40 
  41 outputStream::outputStream(int width) {
  42   _width       = width;
  43   _position    = 0;
  44   _newlines    = 0;
  45   _precount    = 0;
  46   _indentation = 0;
  47 }
  48 


 222 void outputStream::date_stamp(bool guard,
 223                               const char* prefix,
 224                               const char* suffix) {
 225   if (!guard) {
 226     return;
 227   }
 228   print_raw(prefix);
 229   static const char error_time[] = "yyyy-mm-ddThh:mm:ss.mmm+zzzz";
 230   static const int buffer_length = 32;
 231   char buffer[buffer_length];
 232   const char* iso8601_result = os::iso8601_time(buffer, buffer_length);
 233   if (iso8601_result != NULL) {
 234     print_raw(buffer);
 235   } else {
 236     print_raw(error_time);
 237   }
 238   print_raw(suffix);
 239   return;
 240 }
 241 
 242 void outputStream::gclog_stamp() {
 243   date_stamp(PrintGCDateStamps);
 244   stamp(PrintGCTimeStamps);
 245   if (PrintGCID) {
 246     print("#%u: ", GCId::current());
 247   }
 248 }
 249 
 250 outputStream& outputStream::indent() {
 251   while (_position < _indentation) sp();
 252   return *this;
 253 }
 254 
 255 void outputStream::print_jlong(jlong value) {
 256   print(JLONG_FORMAT, value);
 257 }
 258 
 259 void outputStream::print_julong(julong value) {
 260   print(JULONG_FORMAT, value);
 261 }
 262 
 263 /**
 264  * This prints out hex data in a 'windbg' or 'xxd' form, where each line is:
 265  *   <hex-address>: 8 * <hex-halfword> <ascii translation (optional)>
 266  * example:


< prev index next >