poser
A C framework for POsix SERvices
Loading...
Searching...
No Matches
service.h
Go to the documentation of this file.
1#ifndef POSER_CORE_SERVICE_H
2#define POSER_CORE_SERVICE_H
3
8#include <poser/decl.h>
9#include <sys/types.h>
10
12#define MAXPANICHANDLERS 8
13
15#define PSC_CHILD_SIGNALED 256
16
35C_CLASS_DECL(PSC_EAStartup);
36
40C_CLASS_DECL(PSC_EAChildExited);
41
42C_CLASS_DECL(PSC_Event);
43
47typedef void (*PSC_PanicHandler)(const char *msg) ATTR_NONNULL((1));
48
56DECLEXPORT PSC_Event *
58 ATTR_RETNONNULL ATTR_PURE;
59
67DECLEXPORT PSC_Event *
69 ATTR_RETNONNULL ATTR_PURE;
70
82DECLEXPORT PSC_Event *
84 ATTR_RETNONNULL ATTR_PURE;
85
97DECLEXPORT PSC_Event *
99 ATTR_RETNONNULL ATTR_PURE;
100
110DECLEXPORT PSC_Event *
112 ATTR_RETNONNULL ATTR_PURE;
113
120DECLEXPORT PSC_Event *
122 ATTR_RETNONNULL ATTR_PURE;
123
130DECLEXPORT PSC_Event *
132 ATTR_RETNONNULL ATTR_PURE;
133
150DECLEXPORT PSC_Event *
152 ATTR_RETNONNULL ATTR_PURE;
153
164DECLEXPORT int
165PSC_Service_isValidFd(int id, const char *errortopic);
166
174DECLEXPORT void
176
184DECLEXPORT void
186
194DECLEXPORT void
196
204DECLEXPORT void
206
214DECLEXPORT void
216 ATTR_NONNULL((1));
217
224DECLEXPORT void
226 ATTR_NONNULL((1));
227
236DECLEXPORT int
238
248DECLEXPORT int
250
259DECLEXPORT int
261
268DECLEXPORT void
270
280DECLEXPORT void
282
288DECLEXPORT void
290
299DECLEXPORT void
300PSC_Service_panic(const char *msg)
301 ATTR_NONNULL((1)) ATTR_NORETURN;
302
311DECLEXPORT void
312PSC_EAStartup_return(PSC_EAStartup *self, int rc)
313 CMETHOD;
314
320DECLEXPORT pid_t
321PSC_EAChildExited_pid(const PSC_EAChildExited *self)
322 CMETHOD;
323
330DECLEXPORT int
331PSC_EAChildExited_status(const PSC_EAChildExited *self)
332 CMETHOD;
333
340DECLEXPORT int
341PSC_EAChildExited_signal(const PSC_EAChildExited *self)
342 CMETHOD;
343
344#endif
Event arguments for child exited events.
Event arguments for service (pre)startup events.
A simple event class.
PSC_Event * PSC_Service_childExited(void)
A child process terminated.
void PSC_Service_shutdownUnlock(void)
Allow shutdown to continue.
void PSC_Service_unregisterPanic(PSC_PanicHandler handler)
Unregister a panic handler.
void PSC_Service_unregisterWrite(int id)
Unregister a file descriptor for write monitoring.
void PSC_Service_registerRead(int id)
Register a file descriptor for read monitoring.
void PSC_Service_panic(const char *msg)
Trigger a service panic.
void PSC_Service_registerWrite(int id)
Register a file descriptor for write monitoring.
void PSC_Service_quit(void)
Request the service to quit.
int PSC_Service_run(void)
Run the service.
void PSC_Service_registerPanic(PSC_PanicHandler handler)
Register a panic handler.
void PSC_Service_shutdownLock(void)
Delay shutdown of the service.
PSC_Event * PSC_Service_eventsDone(void)
All events for one loop iteration are processed.
void PSC_Service_unregisterRead(int id)
Unregister a file descriptor for read monitoring.
int PSC_Service_loop(void)
Run the service loop.
int PSC_Service_isValidFd(int id, const char *errortopic)
Check a file descriptor.
PSC_Event * PSC_Service_startup(void)
The service started.
PSC_Event * PSC_Service_readyWrite(void)
A file descriptor is ready for writing.
PSC_Event * PSC_Service_shutdown(void)
The service is shutting down.
PSC_Event * PSC_Service_readyRead(void)
A file descriptor is ready for reading.
PSC_Event * PSC_Service_tick(void)
The timer ticks.
int PSC_Service_setTickInterval(unsigned msec)
Set the timer tick interval.
PSC_Event * PSC_Service_prestartup(void)
The service is about to start.
void(* PSC_PanicHandler)(const char *msg)
A handler for a service panic.
Definition: service.h:47