/usr/include/wvstreams/wvmodem.h is in libwvstreams-dev 4.6.1-5.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 | /* -*- Mode: C++ -*-
* Worldvisions Weaver Software:
* Copyright (C) 1997-2002 Net Integration Technologies, Inc.
*
* Copyright (C) 1999 Red Hat, Inc.
*
* Definition of the WvModemBase and WvModem classes. Inherit from WvFile,
* but do various important details related to modems, like setting baud
* rates and dropping DTR and the like.
*
*/
#ifndef __WVMODEM_H
#define __WVMODEM_H
#include "wvlockdev.h"
#include "wvfile.h"
#include "wvlog.h"
#include <termios.h>
#ifndef IUCLC
#define IUCLC 0
#endif
#ifndef OLCUC
#define OLCUC 0
#endif
#ifndef XCASE
#define XCASE 0
#endif
/**
* WvModemBase provides the methods used to control a modem, but
* without real implementation for most of them, so that they can
* be used in contexts where modem control is undesirable without
* reimplementing calling code for such uses.
*/
class WvModemBase : public WvFile
{
protected:
struct termios t;
int baud;
WvModemBase() { }
int get_real_speed();
public:
bool die_fast;
WvModemBase(int _fd);
virtual ~WvModemBase();
/** do-nothing method that is not needed in WvModemBase */
virtual void close();
/** do-nothing method that is not needed in WvModemBase */
virtual bool carrier();
/** do-nothing method that is not needed in WvModemBase */
virtual int speed(int _baud);
/** this one really is needed */
int getspeed()
{ return baud; }
/** may need to hangup for redial reasons */
virtual void hangup();
public:
const char *wstype() const { return "WvModemBase"; }
};
/**
* WvModem implements a named modem that really needs to be opened,
* closed, and manipulated in lots of ways
*/
class WvModem : public WvModemBase
{
private:
WvLockDev lock;
WvLog log;
bool have_old_t;
struct termios old_t;
bool closing;
bool no_reset;
/**
* Setup all of the terminal characteristics, and leave the modem in CLOCAL
* mode to make sure that we can communicate easily with the modem later.
*/
void setup_modem(bool rtscts);
/** Check the status of the modem */
int getstatus();
public:
WvModem(WvStringParm filename, int _baud, bool rtscts = true,
bool _no_reset = false);
virtual ~WvModem();
/** Close the connection to the modem */
virtual void close();
/** Is there a carrier present? */
virtual bool carrier();
/**
* _baud is the desired speed, that you wish the modem to communicate with,
* and this method returns the actual speed that the modem managed to achieve.
*/
virtual int speed(int _baud);
public:
const char *wstype() const { return "WvModem"; }
};
#endif
|