rpm  5.4.10
fsm.h
Go to the documentation of this file.
1 #ifndef H_FSM
2 #define H_FSM
3 
9 #include <iosm.h>
10 
14 typedef /*@abstract@*/ struct iosm_s * FSM_t;
15 
16 /*@-exportlocal@*/
17 /*@unchecked@*/
18 extern int _fsm_debug;
19 /*@=exportlocal@*/
20 
24 typedef /*@abstract@*/ struct iosmIterator_s * FSMI_t;
25 
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29 
34 /*@only@*/ IOSM_t newFSM(void)
35  /*@*/;
36 
42 /*@null@*/ IOSM_t freeFSM(/*@only@*/ /*@null@*/ IOSM_t fsm)
43  /*@globals fileSystem @*/
44  /*@modifies fsm, fileSystem @*/;
45 
58 int fsmSetup(void * _fsm, iosmFileStage goal, /*@null@*/ const char * afmt,
59  const void * _ts,
60  const void * _fi,
61  FD_t cfd,
62  /*@out@*/ unsigned int * archiveSize,
63  /*@out@*/ const char ** failedFile)
64  /*@globals h_errno, fileSystem, internalState @*/
65  /*@modifies cfd, *archiveSize, *failedFile,
66  fileSystem, internalState @*/;
67 
73 int fsmTeardown(void * _fsm)
74  /*@globals h_errno, fileSystem, internalState @*/
75  /*@modifies _fsm, fileSystem, internalState @*/;
76 
81 int fsmMapPath(IOSM_t fsm)
82  /*@modifies fsm @*/;
83 
88 int fsmMapAttrs(IOSM_t fsm)
89  /*@modifies fsm @*/;
90 /*@=exportlocal@*/
91 
98 int fsmNext(IOSM_t fsm, iosmFileStage nstage)
99  /*@globals errno, h_errno, fileSystem, internalState @*/
100  /*@modifies fsm, errno, fileSystem, internalState @*/;
101 
108 /*@-exportlocal@*/
109 int fsmStage(/*@partial@*/ IOSM_t fsm, iosmFileStage stage)
110  /*@globals errno, h_errno, fileSystem, internalState @*/
111  /*@modifies fsm, errno, fileSystem, internalState @*/;
112 /*@=exportlocal@*/
113 
114 #ifdef __cplusplus
115 }
116 #endif
117 
118 #endif /* H_FSM */
int _fsm_debug
Definition: fsm.c:61
int fsmMapPath(IOSM_t fsm)
Map next file path and action.
Definition: fsm.c:807
int fsmTeardown(void *_fsm)
Clean file state machine.
Definition: fsm.c:756
int fsmMapAttrs(IOSM_t fsm)
Map file stat(2) info.
Definition: fsm.c:898
struct iosm_s * FSM_t
File state machine data.
Definition: fsm.h:14
int fsmSetup(void *_fsm, iosmFileStage goal, const char *afmt, const void *_ts, const void *_fi, FD_t cfd, unsigned int *archiveSize, const char **failedFile)
Load external data into file state machine.
Definition: fsm.c:632
enum iosmFileStage_e iosmFileStage
IOSM_t freeFSM(IOSM_t fsm)
Destroy file state machine instance.
Definition: fsm.c:562
IOSM_t newFSM(void)
Create file state machine instance.
Definition: fsm.c:556
The FD_t File Handle data structure.
Iterator across package file info, forward on install, backward on erase.
Definition: iosm.h:207
int fsmStage(IOSM_t fsm, iosmFileStage stage)
File state machine driver.
Definition: fsm.c:1601
#define _fi(_a)
Definition: psm.h:30
int fsmNext(IOSM_t fsm, iosmFileStage nstage)
File state machine driver.
Definition: fsm.c:438
File state machine to handle archive I/O and system call&#39;s.
struct iosmIterator_s * FSMI_t
Iterator across package file info, forward on install, backward on erase.
Definition: fsm.h:24
File name and stat information.
Definition: iosm.h:218