37 class Thingie :
public std::basic_streambuf<char> {
39 virtual void *myThingie (
void)
const = 0;
42 ssize_t
print (
const std::string &message);
43 virtual ssize_t conditional_print (
bool (*callback) (
FB_CONNECTION *),
const std::string &message) = 0;
45 ssize_t
printf (
const char *format, ...);
46 ssize_t
vprintf (
const char *format, va_list parameters);
47 ssize_t
bprintf (
const char *format, ...);
48 ssize_t
bvprintf (
const char *format, va_list parameters);
52 virtual std::streamsize xsputn(
const char_type* data, std::streamsize count)
override;
53 virtual int_type overflow(int_type c)
override;
58 there.
printf (
"%s", message);
69 friend class Iterator;
74 int argname_capacity = 0;
76 virtual inline void *myThingie (
void)
const final {
return connection; }
77 int argvIndex (
const char *itemname)
const;
103 void setConnection (
FB_CONNECTION *conn) { connection = conn; };
105#ifdef FOOTBALL_TRANSITIONAL
116 friend class Iterator;
123 virtual inline void *myThingie (
void)
const final {
return service; }
129 virtual Connection *allocNewConnection () = 0;
134 virtual ssize_t conditional_print (
bool (*callback) (
FB_CONNECTION *),
const std::string &message)
override;
139#ifdef FOOTBALL_TRANSITIONAL
153 struct iterator :
public std::iterator<std::forward_iterator_tag, Connection> {
167 iterator (
const FB_SERVICE &svc,
size_t pos) : service (svc) {
172 Connection *operator *() {
175 iterator &operator++() {
180 iterator operator++(
int) {
181 iterator item = *
this;
186 bool operator!=(iterator &compare) {
187 return position != compare.position;
191 using iterator::iterator;
192 inline const Connection *operator *() {
return iterator::operator *(); };
197 Connection *newConnectionFromFile (
const std::string &filename) {
200 iterator begin() { iterator it (*
service);
return it ; };
202 const_iterator begin()
const { const_iterator it (*
service);
return it ; };
223 static bool ready (
void);
225 static bool poll (
void);
227 static bool pollUntil (time_t untilwhen);
230 static bool handleEvent (
const FB_EVENT *);
Football public declarations.
Football private declarations.
@ FB_SOCKET_STATE_OPEN
Line-oriented or WebSocket session in process.
Definition fb_service.h:98
Connection state information.
Definition fb_service.h:199
void * relatedObject
C++ object for this connection.
Definition fb_service.h:229
Events are returned in this structure.
Definition fb_public.h:42
Service options are passed to a new service, defining its behavior.
Definition fb_public.h:75
Football service state structure.
Definition fb_service.h:128
struct fb_connection_t ** connections
Connections to services.
Definition fb_service.h:136
size_t connection_count
Number of active connections in the collection.
Definition fb_service.h:134