← Back to Patent Explorer
US6463565B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Method for designing object-oriented table driven state machines

Assignee: Net2phone Inc
•
Filing: 2000-01-04
•
Granted: 2002-10-08
•
Expires: 2020-01-04
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A finite state machine is implemented by encapsulating the portions of a state table, which are associated with each state in a state object. Each state object is instantiated when the associated state is entered and destroyed when the state is exited. Since memory is only allocated at runtime when an object is instantiated and in existence, the amount of memory required to implement the state table is minimized. The state class from which the state object is instantiated can be subclassed. In accordance with normal object-oriented class design, a subclass inherits the state table of its parent class. However, the subclass allows table rows to be added and table rows present in the parent class to be overwritten in the subclass. The state table in each state class includes methods that are called when the class is created and destroyed.

Inventors

  • 👤 Keith C. Kelly
  • 👤 Mark A. Pietras
  • 👤 Michael Kelly

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-01 03:43
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/44; G06F30/00; G06F30/30

Claims Analysis

Total Claims: 44
Claim 1
Independent Claim 116 words
A method for implementing a finite state machine having a plurality of states wherein the responses of the plurality of states to system events are defined by a state table, the method comprising: (a) creating a state class associated with each state of the finite state machine, the state class encapsulating a portion of the state table, which portion defines the response of the associated state to system events; (b) when a state is entered, instantiating a state object from the state class associated with the state so that memory is allocated for the encapsulated portion of the state table; and (c) when a state is exited, destroying the associated state object to release allocated memory.
Claim 2
Independent Claim 116 words
A method for implementing a finite state machine having a plurality of states wherein the responses of the plurality of states to system events are defined by a state table, the method comprising: (a) creating a state class associated with each state of the finite state machine, the state class encapsulating a portion of the state table, which portion defines the response of the associated state to system events; (b) when a state is entered, instantiating a state object from the state class associated with the state so that memory is allocated for the encapsulated portion of the state table; and (c) when a state is exited, destroying the associated state object to release allocated memory.
Claim 3
Dependent Claim 22 words
The method of claim 1 wherein the portion of the state table comprises responses of the associated state to all system events.
Claim 4
Dependent Claim 26 words
The method of claim 1 wherein the portion of the state table includes at least one method which is run in response to a system event.
Claim 5
Dependent Claim 28 words
The method of claim 1 wherein the portion of the state table includes information identifying at least one state which is entered in response to a system event.
Claim 6
Dependent Claim 51 words
The method of claim 1 further comprising: (d) creating a state subclass of a state class associated with a state of the finite state machine, the state subclass encapsulating a portion of the state table, which portion defines the response of the state associated with the state class to system events.
Claim 7
Dependent Claim 60 words
The method of claim 5 wherein step (b) comprises: (b1) when a state is entered, instantiating a state object from the state sub class associated with the state so that the portion of the state table is a composite of the state table portion encapsulated in the state sub class and the state table portion encapsulated in the state class.
Claim 8
Dependent Claim 60 words
The method of claim 6 wherein the composite includes selected parts of the state table portion encapsulated in the state class which are not overwritten by the state table portion encapsulated in the state sub class and selected parts of the state table portion encapsulated in the state subclass which overwrite the state table portion encapsulated in the state class.
Claim 9
Dependent Claim 24 words
The method of claim 1 wherein the portion of the state table includes a method which is run when the associated state is entered.
Claim 10
Dependent Claim 30 words
The method of claim 8 wherein the method which is run when the associated state is entered redefines the portion of the state table encapsulated in the associated state object.
Claim 11
Dependent Claim 24 words
The method of claim 1 wherein the portion of the state table includes a method which is run when the associated state is exited.
Claim 12
Dependent Claim 122 words
Apparatus for implementing a finite state machine having a plurality of states wherein the responses of the plurality of states to system events are defined by a state table, the apparatus comprising: a state class associated with each state of the finite state machine, the state class encapsulating a portion of the state table, which portion defines the response of the associated state to system events; and a state machine engine which responds to a state being entered by instantiating a state object from the state class associated with the state so that memory is allocated for the encapsulated portion of the state table and which responds to a state being exited by destroying the associated state object to release allocated memory.
Claim 13
Dependent Claim 122 words
Apparatus for implementing a finite state machine having a plurality of states wherein the responses of the plurality of states to system events are defined by a state table, the apparatus comprising: a state class associated with each state of the finite state machine, the state class encapsulating a portion of the state table, which portion defines the response of the associated state to system events; and a state machine engine which responds to a state being entered by instantiating a state object from the state class associated with the state so that memory is allocated for the encapsulated portion of the state table and which responds to a state being exited by destroying the associated state object to release allocated memory.
Claim 14
Dependent Claim 22 words
The apparatus of claim 11 wherein the portion of the state table comprises responses of the associated state to all system events.
Claim 15
Dependent Claim 26 words
The apparatus of claim 11 wherein the portion of the state table includes at least one method which is run in response to a system event.
Claim 16
Dependent Claim 28 words
The apparatus of claim 11 wherein the portion of the state table includes information identifying at least one state which is entered in response to a system event.
Claim 17
Dependent Claim 49 words
The apparatus of claim 11 further comprising: a state subclass of a state class associated with a state of the finite state machine, the state subclass encapsulating a portion of the state table, which portion defines the response of the state associated with the state class to system events.
Claim 18
Dependent Claim 60 words
The apparatus of claim 15 wherein the state machine engine responds to a state being entered by instantiating a state object from the state subclass associated with the state so that the portion of the state table is a composite of the state table portion encapsulated in the state subclass and the state table portion encapsulated in the state class.
Claim 19
Dependent Claim 60 words
The apparatus of claim 16 wherein the composite includes selected parts of the state table portion encapsulated in the state class which are not overwritten by the state table portion encapsulated in the state sub class and selected parts of the state table portion encapsulated in the state subclass which overwrite the state table portion encapsulated in the state class.
Claim 20
Dependent Claim 24 words
The apparatus of claim 11 wherein the portion of the state table includes a method which is run when the associated state is entered.
Claim 21
Dependent Claim 31 words
The apparatus of claim 18 wherein the method which is run when the associated state is entered can redefine the portion of the state table encapsulated in the associated state object.
Claim 22
Dependent Claim 24 words
The apparatus of claim 11 wherein the portion of the state table includes a method which is run when the associated state is exited.
Claim 23
Dependent Claim 135 words
A computer program product for implementing a finite state machine having a plurality of states wherein the responses of the plurality of states to system events are defined by a state table, the computer program product comprising a computer usable media, having computer readable program code thereon, including: a state class associated with each state of the finite state machine, the state class encapsulating a portion of the state table, which portion defines the response of the associated state to system events; program code, operable when a state is entered, for instantiating a state object from the state class associated with the state so that memory is allocated for the encapsulated portion of the state table; and program code, operable when a state is exited, for destroying the associated state object to release allocated memory.
Claim 24
Dependent Claim 135 words
A computer program product for implementing a finite state machine having a plurality of states wherein the responses of the plurality of states to system events are defined by a state table, the computer program product comprising a computer usable media, having computer readable program code thereon, including: a state class associated with each state of the finite state machine, the state class encapsulating a portion of the state table, which portion defines the response of the associated state to system events; program code, operable when a state is entered, for instantiating a state object from the state class associated with the state so that memory is allocated for the encapsulated portion of the state table; and program code, operable when a state is exited, for destroying the associated state object to release allocated memory.
Claim 25
Dependent Claim 24 words
The computer program product of claim 21 wherein the portion of the state table comprises responses of the associated state to all system events.
Claim 26
Dependent Claim 28 words
The computer program product of claim 21 wherein the portion of the state table includes at least one method which is run in response to a system event.
Claim 27
Dependent Claim 30 words
The computer program product of claim 21 wherein the portion of the state table includes information identifying at least one state which is entered in response to a system event.
Claim 28
Dependent Claim 51 words
The computer program product of claim 21 further comprising a state subclass of a state class associated with a state of the finite state machine, the state subclass encapsulating a portion of the state table, which portion defines the response of the state associated with the state class to system events.
Claim 29
Dependent Claim 65 words
The computer program product of claim 25 wherein the state machine engine is operable when a state is entered for instantiating a state object from the state sub class associated with the state so that the portion of the state table is a composite of the state table portion encapsulated in the state sub class and the state table portion encapsulated in the state class.
Claim 30
Dependent Claim 62 words
The computer program product of claim 26 wherein the composite includes selected parts of the state table portion encapsulated in the state class which are not overwritten by the state table portion encapsulated in the state sub class and selected parts of the state table portion encapsulated in the state subclass which overwrite the state table portion encapsulated in the state class.
Claim 31
Dependent Claim 26 words
The computer program product of claim 21 wherein the portion of the state table includes a method which is run when the associated state is entered.
Claim 32
Dependent Claim 33 words
The computer program product of claim 28 wherein the method which is run when the associated state is entered can redefine the portion of the state table encapsulated in the associated state object.
Claim 33
Dependent Claim 26 words
The computer program product of claim 21 wherein the portion of the state table includes a method which is run when the associated state is exited.
Claim 34
Dependent Claim 129 words
A computer data signal embodied in a carrier wave for implementing a finite state machine having a plurality of states wherein the responses of the plurality of states to system events are defined by a state table, the computer data signal comprising: a state class associated with each state of the finite state machine, the state class encapsulating a portion of the state table, which portion defines the response of the associated state to system events; program code, operable when a state is entered, for instantiating a state object from the state class associated with the state so that memory is allocated for the encapsulated portion of the state table; and program code, operable when a state is exited, for destroying the associated state object to release allocated memory.
Claim 35
Dependent Claim 129 words
A computer data signal embodied in a carrier wave for implementing a finite state machine having a plurality of states wherein the responses of the plurality of states to system events are defined by a state table, the computer data signal comprising: a state class associated with each state of the finite state machine, the state class encapsulating a portion of the state table, which portion defines the response of the associated state to system events; program code, operable when a state is entered, for instantiating a state object from the state class associated with the state so that memory is allocated for the encapsulated portion of the state table; and program code, operable when a state is exited, for destroying the associated state object to release allocated memory.
Claim 36
Dependent Claim 24 words
The computer data signal of claim 31 wherein the portion of the state table comprises responses of the associated state to all system events.
Claim 37
Dependent Claim 28 words
The computer data signal of claim 31 wherein the portion of the state table includes at least one method which is run in response to a system event.
Claim 38
Dependent Claim 30 words
The computer data signal of claim 31 wherein the portion of the state table includes information identifying at least one state which is entered in response to a system event.
Claim 39
Dependent Claim 51 words
The computer data signal of claim 31 further comprising a state subclass of a state class associated with a state of the finite state machine, the state subclass encapsulating a portion of the state table, which portion defines the response of the state associated with the state class to system events.
Claim 40
Dependent Claim 65 words
The computer data signal of claim 35 wherein the state machine engine is operable when a state is entered for instantiating a state object from the state sub class associated with the state so that the portion of the state table is a composite of the state table portion encapsulated in the state sub class and the state table portion encapsulated in the state class.
Claim 41
Dependent Claim 62 words
The computer data signal of claim 36 wherein the composite includes selected parts of the state table portion encapsulated in the state class which are not overwritten by the state table portion encapsulated in the state sub class and selected parts of the state table portion encapsulated in the state subclass which overwrite the state table portion encapsulated in the state class.
Claim 42
Dependent Claim 26 words
The computer data signal of claim 31 wherein the portion of the state table includes a method which is run when the associated state is entered.
Claim 43
Dependent Claim 33 words
The computer data signal of claim 38 wherein the method which is run when the associated state is entered can redefine the portion of the state table encapsulated in the associated state object.
Claim 44
Dependent Claim 26 words
The computer data signal of claim 31 wherein the portion of the state table includes a method which is run when the associated state is exited.

References Cited (Backward Citations)

US5473531A Cited
US5517432A Cited
US6198303B1 Cited
US6055594A Cited
US6212625B1 Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2005-10-07 2006-04-08 2006-10-08 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2009-10-07 2010-04-08 2010-10-08 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2013-10-07 2014-04-08 2014-10-08 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag