/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (the "License"). You may not use this file except in compliance
* with the License.
*
* You can obtain a copy of the license at legal-notices/CDDLv1_0.txt
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at legal-notices/CDDLv1_0.txt.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information:
* Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*
*
* Copyright 2010 Sun Microsystems, Inc.
* Portions Copyright 2014 ForgeRock AS
*/
/**
* Class used to add points periodically to the end of the output.
*/
{
private Thread t;
private boolean stopPointAdder;
private boolean pointAdderStopped;
private final boolean isError;
/**
* The default period time used to write points in the output.
*/
/**
* Default constructor.
*
* @param app
* The console application to be used. Creates a PointAdder that
* writes to the standard output with the default period time.
*/
{
this(app, DEFAULT_PERIOD_TIME, false,
}
/**
* Default constructor.
*
* @param app
* The console application to be used.
* @param periodTime
* The time between printing two points.
* @param isError
* Whether the points must be printed in error stream or output
* stream.
* @param formatter
* The text formatter.
*/
long periodTime, boolean isError,
{
this.periodTime = periodTime;
}
/**
* Starts the PointAdder: points are added at the end of the logs
* periodically.
*/
public void start()
{
for (int i=0; i< 5; i++)
{
}
t = new Thread(this);
t.start();
}
/**
* Stops the PointAdder: points are no longer added at the end of the logs
* periodically.
*/
public synchronized void stop()
{
stopPointAdder = true;
while (!pointAdderStopped)
{
try
{
t.interrupt();
// To allow the thread to set the boolean.
}
catch (Throwable t)
{
}
}
}
/** {@inheritDoc} */
public void run()
{
while (!stopPointAdder)
{
try
{
}
catch (Throwable t)
{
}
}
pointAdderStopped = true;
}
}