package jpos.services;

import jpos.*;

public interface BaseService
{
    // Properties
    public String  getCheckHealthText() throws JposException;
    public boolean getClaimed() throws JposException;
    public boolean getDeviceEnabled() throws JposException;
    public void    setDeviceEnabled(boolean deviceEnabled)
                       throws JposException;
    public String  getDeviceServiceDescription() throws JposException;
    public int     getDeviceServiceVersion() throws JposException;
    public boolean getFreezeEvents() throws JposException;
    public void    setFreezeEvents(boolean freezeEvents) throws JposException;
    public String  getPhysicalDeviceDescription() throws JposException;
    public String  getPhysicalDeviceName() throws JposException;
    public int     getResultCodeExtended() throws JposException;
    public int     getState() throws JposException;

    // Methods supported by all device services.
    public void    claim(int timeout) throws JposException;
    public void    close() throws JposException;
    public void    checkHealth(int level) throws JposException;
    public void    directIO(int command, int[] data, Object string)
                       throws JposException;
    public void    open(String logicalName, int controlVersion,
                        String controlDescription, EventCallbacks cb)
                        throws JposException;
    public void    release() throws JposException;
}