package org.tanukisoftware.wrapper;
/*
* Copyright (c) 1999, 2009 Tanuki Software, Ltd.
* http://www.tanukisoftware.com
* All rights reserved.
*
* This software is the proprietary information of Tanuki Software.
* You shall use it only in accordance with the terms of the
* license agreement you entered into with Tanuki Software.
* http://wrapper.tanukisoftware.org/doc/english/licenseOverview.html
*/
/**
* A WrapperWin32Service contains information about an individual service
* registered with the current system.
*
* @author Leif Mortenson <leif@tanukisoftware.com>
*/
public class WrapperWin32Service
{
public static final int SERVICE_STATE_STOPPED = 0x00000001;
public static final int SERVICE_STATE_START_PENDING = 0x00000002;
public static final int SERVICE_STATE_STOP_PENDING = 0x00000003;
public static final int SERVICE_STATE_RUNNING = 0x00000004;
public static final int SERVICE_STATE_CONTINUE_PENDING = 0x00000005;
public static final int SERVICE_STATE_PAUSE_PENDING = 0x00000006;
public static final int SERVICE_STATE_PAUSED = 0x00000007;
/** The name of the service. */
private String m_name;
/** The display name of the service. */
private String m_displayName;
/** The last known state of the service. */
private int m_serviceState;
/** The exit of the service. */
private int m_exitCode;
/*---------------------------------------------------------------
* Constructors
*-------------------------------------------------------------*/
WrapperWin32Service( byte[] name, byte[] displayName, int serviceState, int exitCode )
{
// Decode the parameters using the default system encoding.
m_name = new String( name );
m_displayName = new String( displayName );
m_serviceState = serviceState;
m_exitCode = exitCode;
}
/*---------------------------------------------------------------
* Methods
*-------------------------------------------------------------*/
/**
* Returns the name of the service.
*
* @return The name of the service.
*/
public String getName()
{
return m_name;
}
/**
* Returns the display name of the service.
*
* @return The display name of the service.
*/
public String getDisplayName()
{
return m_displayName;
}
/**
* Returns the last known state name of the service.
*
* @return The last known state name of the service.
*/
public String getServiceStateName()
{
int serviceState = getServiceState();
switch( serviceState )
{
case SERVICE_STATE_STOPPED:
return "STOPPED";
case SERVICE_STATE_START_PENDING:
return "START_PENDING";
case SERVICE_STATE_STOP_PENDING:
return "STOP_PENDING";
case SERVICE_STATE_RUNNING:
return "RUNNING";
case SERVICE_STATE_CONTINUE_PENDING:
return "CONTINUE_PENDING";
case SERVICE_STATE_PAUSE_PENDING:
return "PAUSE_PENDING";
case SERVICE_STATE_PAUSED:
return "PAUSED";
default:
return "UNKNOWN(" + serviceState + ")";
}
}
/**
* Returns the last known state of the service.
*
* @return The last known state of the service.
*/
public int getServiceState()
{
return m_serviceState;
}
/**
* Returns the exit of the service, or 0 if it is still running.
*
* @return The exit of the service.
*/
public int getExitCode()
{
return m_exitCode;
}
/**
* Returns a string representation of the user.
*
* @return A string representation of the user.
*/
public String toString()
{
StringBuffer sb = new StringBuffer();
sb.append( "WrapperWin32Service[name=\"" );
sb.append( getName() );
sb.append( "\", displayName=\"" );
sb.append( getDisplayName() );
sb.append( "\", state=" );
sb.append( getServiceStateName() );
sb.append( ", exitCode=" );
sb.append( getExitCode() );
sb.append( "]" );
return sb.toString();
}
}