"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "src/Plugins/Qt/QTMSockets.hpp" between
TeXmacs-2.1.1-src.tar.gz and TeXmacs-2.1.2-src.tar.gz

About: GNU TeXmacs is a scientific editing platform designed to create beautiful technical documents using a wysiwyg interface.

QTMSockets.hpp  (TeXmacs-2.1.1-src):QTMSockets.hpp  (TeXmacs-2.1.2-src)
skipping to change at line 23 skipping to change at line 23
#include <QApplication> #include <QApplication>
#include <QObject> #include <QObject>
#include <QThread> #include <QThread>
#include <QSocketNotifier> #include <QSocketNotifier>
#include "hashset.hpp" #include "hashset.hpp"
#include "string.hpp" #include "string.hpp"
#include "tm_link.hpp" #include "tm_link.hpp"
#ifndef OS_MINGW #ifndef OS_MINGW
#include <sys/types.h> #include <sys/types.h>
#include <sys/socket.h> #include <sys/socket.h>
#include <netinet/in.h> #include <netinet/in.h>
#define NMSPC(a) a
#define SOCKADDR_IN sockaddr_in #define SOCKADDR_IN sockaddr_in
#define SOCKADDR_IN6 sockaddr_in6
#define SOCKADDR sockaddr #define SOCKADDR sockaddr
#define SOCKADDR_STORAGE sockaddr_storage
#else #else
namespace wsoc { namespace wsoc {
#include <winsock2.h> #include <winsock2.h>
#include <ws2tcpip.h> #include <ws2tcpip.h>
} }
#define NMSPC(a) wsoc::a
typedef ushort u_short;
typedef ulong u_long;
typedef uint32_t in_addr_t; typedef uint32_t in_addr_t;
typedef int socklen_t; typedef int socklen_t;
#define SOCKADDR_IN wsoc::sockaddr_in #define SOCKADDR_IN wsoc::sockaddr_in
#define SOCKADDR_IN6 wsoc::sockaddr_in6
#define SOCKADDR wsoc::sockaddr #define SOCKADDR wsoc::sockaddr
#define SOCKADDR_STORAGE wsoc::sockaddr_storage
#endif #endif
extern unsigned dbg_cnt; // Common structures fors sockets
extern unsigned qtmsocket_debug_count;
string debug_io_string (string s); string debug_io_string (string s);
#define DBG_IO(a) \ #define DBG_IO(a) \
if (DEBUG_IO) debug_io << "TeXmacs-" << dbg_cnt++<<"] " << a << "\n" if (DEBUG_IO) debug_io << "TeXmacs " \
#define DBG_IOS(a,s) if(N(s)) DBG_IO (a << debug_io_string (s)) << qtmsocket_debug_count++ << "] " << a << "\n"
#define DBG_IOS(a,s) \
if(N(s)) DBG_IO (a << debug_io_string (s))
enum state { ST_OK, ST_WSA, ST_SOCKET, ST_FCNTL, ST_BIND, enum state { ST_OK, ST_WSA, ST_SOCKET, ST_FCNTL, ST_BIND,
ST_LISTEN, ST_CONNECTION, ST_GETHOST, ST_NOTIF, ST_LISTEN, ST_CONNECTION, ST_GETHOST, ST_NOTIF,
ST_VOID, ST_HALTED, ST_CLOSED }; ST_VOID, ST_HALTED, ST_CLOSED };
typedef int IdClt;
class socket_basic { class socket_basic {
public: public:
bool alive () { return st == ST_OK; } bool alive () { return st == ST_OK; }
protected: protected:
socket_basic(void); socket_basic(void);
~socket_basic(); ~socket_basic();
int sock; int sock;
int err; int err;
enum state st; enum state st;
private: private:
static int count; static int count;
#ifdef OS_MINGW #ifdef OS_MINGW
static wsoc::WSADATA wsadata; static wsoc::WSADATA wsadata;
#endif #endif
}; };
// Socket for clients
class socket_link: public QObject, public socket_basic, public tm_link_rep { class socket_link: public QObject, public socket_basic, public tm_link_rep {
Q_OBJECT Q_OBJECT
public: public:
socket_link (int s,struct SOCKADDR_IN *addr); socket_link (int s, SOCKADDR_STORAGE* addr);
socket_link (string host, u_short port=6561); socket_link (string host, unsigned short port=6561);
~socket_link (); ~socket_link ();
string start (); string start ();
void write (string s, int channel=LINK_OUT); void write (string s, int channel=LINK_OUT);
string& watch (int channel); string& watch (int channel);
string read (int channel); string read (int channel);
void listen (int msecs); void listen (int msecs);
void interrupt () {} void interrupt () {}
void stop (); void stop ();
bool alive () { return socket_basic::alive(); } bool alive () { return socket_basic::alive(); }
IdClt getid () { return id; } int getid () { return id; }
public slots: public slots:
void data_set_ready (int); void data_set_ready (int);
void ready_to_send (int); void ready_to_send (int);
signals: signals:
void disconnection (class socket_link * clt); void disconnection (socket_link* clt);
private : private :
static IdClt nr_ids; int id;
IdClt id;
string inbuf; string inbuf;
string outbuf; string outbuf;
QSocketNotifier *qsnr,*qsnw; QSocketNotifier *qsnr,*qsnw;
struct SOCKADDR_IN add; SOCKADDR_STORAGE add;
}; };
// Socket for servers
class socket_server: public QObject, public socket_basic { class socket_server: public QObject, public socket_basic {
Q_OBJECT Q_OBJECT
public: public:
socket_server(in_addr_t add, u_short port=6561); socket_server (string host, unsigned short port=6561);
~socket_server(); ~socket_server();
string read (IdClt clt); string read (int clt);
void write (IdClt clt, string s); void write (int clt, string s);
enum state st; enum state st;
int err; int err;
int srv_count() { return N(clts); } int srv_count() { return N(clts); }
public slots: public slots:
void connection (int); void connection (int);
void disconnection (socket_link* clt); void disconnection (socket_link* clt);
private : private :
socket_link* find_client (IdClt id); socket_link* find_client (int id);
hashset<pointer> clts; hashset<pointer> clts;
QSocketNotifier *qsnc; QSocketNotifier *qsnc;
}; };
 End of changes. 23 change blocks. 
20 lines changed or deleted 33 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)