Class OlcbProgrammerManager
- All Implemented Interfaces:
AddressedProgrammerManager,PropertyChangeFirer,PropertyChangeProvider,GlobalProgrammerManager
Programmer objects.
Programmers come in two types:
- Global, previously "Service Mode" or on a programming track. Request
these from an instance of
GlobalProgrammerManager. - Addressed, previously "Ops Mode" also known as "programming on the main". Request these from an instance of this interface.
Programmer object from a ProgrammerManager, which in turn
can be located from the InstanceManager.
This interface also provides a reserve/release system for tools that want to pretend they have exclusive use of a Programmer. This is a cooperative reservation; both tools (first and second reserver) must be using the reserve/release interface.
This file is part of JMRI.
JMRI is free software; you can redistribute it and/or modify it under the terms of version 2 of the GNU General Public License as published by the Free Software Foundation. See the "COPYING" file for a copy of this license.
JMRI is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
- Since:
- 4.1.1
- See Also:
-
Field Summary
FieldsFields inherited from class jmri.beans.PropertyChangeSupport
propertyChangeSupport -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected AddressedProgrammergetConcreteAddressedProgrammer(boolean pLongAddress, int pAddress) Gain access to a Addressed Mode Programmer without reservation.Get the list ofProgrammingMode(generally) supported by Programmers provided by this Manager.Provides the human-readable representation for including ProgrammerManagers directly in user interface components, so it should return a user-provided name for this particular one.booleanConvenience method to check whether you'll be able to get an Addressed Mode programmer.voidReturn access to an Addressed Mode Programmer, so that it can be used elsewhere.protected AddressedProgrammerreserveConcreteAddressedProgrammer(boolean pLongAddress, int pAddress) Gain access to a (the) Addressed Mode Programmer, in the process reserving it for yourself.toString()toString() provides the human-readable representation for including ProgrammerManagers directly in user interface components, so it should return a user-provided name for this particular one.Methods inherited from class jmri.managers.DefaultProgrammerManager
dispose, getAddressedProgrammer, getConcreteGlobalProgrammer, getGlobalProgrammer, isAddressedModePossible, isGlobalProgrammerAvailable, releaseGlobalProgrammer, reserveAddressedProgrammer, reserveConcreteGlobalProgrammer, reserveGlobalProgrammerMethods inherited from class jmri.beans.PropertyChangeSupport
addPropertyChangeListener, addPropertyChangeListener, fireIndexedPropertyChange, fireIndexedPropertyChange, fireIndexedPropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getPropertyChangeListeners, getPropertyChangeListeners, removePropertyChangeListener, removePropertyChangeListenerMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface jmri.AddressedProgrammerManager
getAddressedProgrammer, reserveAddressedProgrammerMethods inherited from interface jmri.beans.PropertyChangeProvider
addPropertyChangeListener, addPropertyChangeListener, getPropertyChangeListeners, getPropertyChangeListeners, removePropertyChangeListener, removePropertyChangeListener
-
Field Details
-
OPENLCBMODE
-
-
Constructor Details
-
OlcbProgrammerManager
-
-
Method Details
-
getConcreteAddressedProgrammer
Gain access to a Addressed Mode Programmer without reservation.- Overrides:
getConcreteAddressedProgrammerin classDefaultProgrammerManager- Parameters:
pLongAddress- true if this is a long (14 bit) address, else falsepAddress- Specific decoder address to use.- Returns:
- null only if there isn't an Ops Mode Programmer in the system
-
reserveConcreteAddressedProgrammer
protected AddressedProgrammer reserveConcreteAddressedProgrammer(boolean pLongAddress, int pAddress) Gain access to a (the) Addressed Mode Programmer, in the process reserving it for yourself.- Overrides:
reserveConcreteAddressedProgrammerin classDefaultProgrammerManager- Parameters:
pLongAddress- true if this is a long (14 bit) address, else falsepAddress- Specific decoder address to use.- Returns:
- null if the address is in use by a reserved programmer
-
releaseAddressedProgrammer
Return access to an Addressed Mode Programmer, so that it can be used elsewhere.- Specified by:
releaseAddressedProgrammerin interfaceAddressedProgrammerManager- Overrides:
releaseAddressedProgrammerin classDefaultProgrammerManager- Parameters:
p- the programmer to release
-
isAddressedModePossible
Convenience method to check whether you'll be able to get an Addressed Mode programmer.- Specified by:
isAddressedModePossiblein interfaceAddressedProgrammerManager- Overrides:
isAddressedModePossiblein classDefaultProgrammerManager- Returns:
- false if there's no chance of getting one
-
getDefaultModes
Get the list ofProgrammingMode(generally) supported by Programmers provided by this Manager.Use this to enquire about modes before you're ready to request a specific programmer.
If the order is significant, earlier modes are better.
- Specified by:
getDefaultModesin interfaceAddressedProgrammerManager- Overrides:
getDefaultModesin classDefaultProgrammerManager- Returns:
- a default list of programming modes that most
AddressedProgrammers make available
-
getUserName
Provides the human-readable representation for including ProgrammerManagers directly in user interface components, so it should return a user-provided name for this particular one.- Specified by:
getUserNamein interfaceAddressedProgrammerManager- Specified by:
getUserNamein interfaceGlobalProgrammerManager- Overrides:
getUserNamein classDefaultProgrammerManager- Returns:
- the name for the programmer
-
toString
toString() provides the human-readable representation for including ProgrammerManagers directly in user interface components, so it should return a user-provided name for this particular one.- Specified by:
toStringin interfaceAddressedProgrammerManager- Specified by:
toStringin interfaceGlobalProgrammerManager- Overrides:
toStringin classDefaultProgrammerManager- Returns:
- the name for the programmer
-