Main Page | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals

iriap_event.h

Go to the documentation of this file.
00001 /*********************************************************************
00002  *                
00003  * Filename:      iriap_event.h
00004  * Version:       
00005  * Description:   
00006  * Status:        Experimental.
00007  * Author:        Dag Brattli <dagb@cs.uit.no>
00008  * Created at:    Mon Aug  4 20:40:53 1997
00009  * Modified at:   Sun Oct 31 22:02:54 1999
00010  * Modified by:   Dag Brattli <dagb@cs.uit.no>
00011  * 
00012  *     Copyright (c) 1998-1999 Dag Brattli <dagb@cs.uit.no>, All Rights Reserved.
00013  *     
00014  *     This program is free software; you can redistribute it and/or 
00015  *     modify it under the terms of the GNU General Public License as 
00016  *     published by the Free Software Foundation; either version 2 of 
00017  *     the License, or (at your option) any later version.
00018  *
00019  *     Neither Dag Brattli nor University of Tromsų admit liability nor
00020  *     provide warranty for any of this software. This material is 
00021  *     provided "AS-IS" and at no charge.
00022  *
00023  ********************************************************************/
00024 
00025 #ifndef IRIAP_FSM_H
00026 #define IRIAP_FSM_H
00027 
00028 /* Forward because of circular include dependecies */
00029 struct iriap_cb;
00030 
00031 /* IrIAP states */
00032 typedef enum {
00033         /* Client */
00034         S_DISCONNECT,
00035         S_CONNECTING,
00036         S_CALL,
00037 
00038         /* S-Call */
00039         S_MAKE_CALL,
00040         S_CALLING,
00041         S_OUTSTANDING,
00042         S_REPLYING,
00043         S_WAIT_FOR_CALL,
00044         S_WAIT_ACTIVE,
00045 
00046         /* Server */
00047         R_DISCONNECT,
00048         R_CALL,
00049         
00050         /* R-Connect */
00051         R_WAITING,
00052         R_WAIT_ACTIVE,
00053         R_RECEIVING,
00054         R_EXECUTE,
00055         R_RETURNING,
00056 } IRIAP_STATE;
00057 
00058 typedef enum {
00059         IAP_CALL_REQUEST,
00060         IAP_CALL_REQUEST_GVBC,
00061         IAP_CALL_RESPONSE,
00062         IAP_RECV_F_LST,
00063         IAP_LM_DISCONNECT_INDICATION,
00064         IAP_LM_CONNECT_INDICATION,
00065         IAP_LM_CONNECT_CONFIRM,
00066 } IRIAP_EVENT;
00067 
00068 void iriap_next_client_state   (struct iriap_cb *self, IRIAP_STATE state);
00069 void iriap_next_call_state     (struct iriap_cb *self, IRIAP_STATE state);
00070 void iriap_next_server_state   (struct iriap_cb *self, IRIAP_STATE state);
00071 void iriap_next_r_connect_state(struct iriap_cb *self, IRIAP_STATE state);
00072 
00073 
00074 void iriap_do_client_event(struct iriap_cb *self, IRIAP_EVENT event, 
00075                            struct sk_buff *skb);
00076 void iriap_do_call_event  (struct iriap_cb *self, IRIAP_EVENT event, 
00077                            struct sk_buff *skb);
00078 
00079 void iriap_do_server_event   (struct iriap_cb *self, IRIAP_EVENT event, 
00080                               struct sk_buff *skb);
00081 void iriap_do_r_connect_event(struct iriap_cb *self, IRIAP_EVENT event, 
00082                               struct sk_buff *skb);
00083 
00084 #endif /* IRIAP_FSM_H */
00085