Skip to content

Commit 37cd048

Browse files
author
Ibon Tolosana
committed
Merge pull request #6 from hyperandroid/Async
Async
2 parents b1243c3 + fed8136 commit 37cd048

File tree

10 files changed

+1078
-416
lines changed

10 files changed

+1078
-416
lines changed

automata.d.ts

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
declare module FSM {
2+
3+
export interface FSMDefinitionStateTimer {
4+
timeout : number;
5+
event : FSM.TransitionMessage;
6+
}
7+
8+
export interface FSMDefinitionState {
9+
name : string;
10+
initial : boolean;
11+
onTimer : FSMDefinitionStateTimer;
12+
onEnter : string|FSM.StateCallback;
13+
onExit : string|StateCallback;
14+
}
15+
16+
export interface FSMDefinitionSubState {
17+
name : string;
18+
}
19+
20+
export interface FSMDefinitionTransition {
21+
event :string;
22+
from : string;
23+
to : string;
24+
onTransition : string|TransitionCallback;
25+
onPreGuard : string|TransitionCallback;
26+
onPostGuard : string|TransitionCallback;
27+
}
28+
29+
export interface FSMDefinition {
30+
name : string;
31+
state : FSMDefinitionState[] | FSMDefinitionSubState[];
32+
transition : FSMDefinitionTransition[];
33+
onEnter : string | StateCallback;
34+
onExit : string | StateCallback;
35+
}
36+
37+
export interface TransitionMessage {
38+
msgId : string;
39+
data? : any;
40+
}
41+
42+
export interface ConsumeCallback {
43+
(session:Session):void
44+
}
45+
46+
export interface TransitionCallback {
47+
(state:State, transition:Transition, message:TransitionMessage):void;
48+
}
49+
50+
export interface StateCallback {
51+
(state:State, transition:Transition, message:TransitionMessage):void;
52+
}
53+
54+
class Session {
55+
56+
consume( message : TransitionMessage, consumeCallback? : FSM.ConsumeCallback );
57+
addListener( sl : SessionListener );
58+
removeListener( sl : SessionListener );
59+
printStackTrace();
60+
addProperty( key:string, value:any );
61+
removeProperty( key:string );
62+
getProperty( key:string ) : any;
63+
start( callback:ConsumeCallback ) : void;
64+
}
65+
66+
class GuardException {
67+
68+
msg : string;
69+
toString() : string;
70+
}
71+
72+
class SessionListener {
73+
contextCreated( obj );
74+
contextDestroyed( obj );
75+
finalStateReached( obj );
76+
stateChanged( obj );
77+
customEvent( obj );
78+
guardPreCondition( obj );
79+
guardPostCondition( obj );
80+
}
81+
82+
class State {
83+
getName() : string;
84+
isFinal() : boolean;
85+
}
86+
87+
class Transition {
88+
getEvent() : string;
89+
}
90+
91+
export interface StateTransitionCallback {
92+
( session:Session, state:State, transition:Transition, message:TransitionMessage ) : void;
93+
}
94+
}
95+
96+
declare module Automata {
97+
98+
export function registerFSM( object:FSM.FSMDefinition );
99+
export function registerFDA( object:FSM.FSMDefinition );
100+
export function createSession( fda_name : string, controller : any ) : FSM.Session;
101+
export function newGuardException( message : string ) : FSM.GuardException;
102+
export function newSessionListener( obj : any ) : FSM.SessionListener;
103+
104+
}

0 commit comments

Comments
 (0)