// Copyright (c) 2004 David Muse
// See the COPYING file for more information.
#ifndef RUDIMENTS_MODEMSERVER_H
#define RUDIMENTS_MODEMSERVER_H
#include <rudiments/private/modemserverincludes.h>
#ifdef RUDIMENTS_NAMESPACE
namespace rudiments {
#endif
class modemserverprivate;
class modemserver : public server, private modemutil {
public:
modemserver();
modemserver(const modemserver &m);
modemserver &operator=(const modemserver &m);
virtual ~modemserver();
bool listen(const char *device, const char *baud,
const char *listenscript,
const char *acceptscript,
const char *disconnectscript);
// If you need to set socket options or do anything special
// between the discrete steps of socket initialization, you
// should use a combination of these methods.
void initialize(const char *device, const char *baud,
const char *listenscript,
const char *acceptscript,
const char *disconnectscript);
// Returns true on success and false on failure.
bool bind();
// Returns true on success and false on failure.
bool listen(int backlog);
// Returns true on success and false on failure.
filedescriptor *accept();
// Returns an inetsocket on success and NULL
// on failure.
bool close();
// Hangs up the modem and closes the device.
//
// Returns true on success and false on failure.
#include <rudiments/private/modemserver.h>
};
#ifdef RUDIMENTS_NAMESPACE
}
#endif
#endif