summaryrefslogtreecommitdiffstats
path: root/workspace/LogWriter/logwriter.cpp
blob: 53a402397697b70e665403d911e2514efa47c247 (plain) (blame)
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
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>

#include <QtGui>
#include <QtNetwork>

#include "logwriter.h"

LogWriter::LogWriter(QWidget *parent) :
	QDialog(parent) {
	hostLabel = new QLabel(tr("Message:"));
	hostLineEdit = new QLineEdit("fortune");

	serverName = "/var/tmp/qt_c_socket_test";

	hostLabel->setBuddy(hostLineEdit);

	statusLabel = new QLabel(tr("This examples requires that you run the "
		"LogReceiver example as well."));

	connectToLogReceiver = new QPushButton(tr("Connect"));
	connectToLogReceiver->setDefault(true);

	quitButton = new QPushButton(tr("Quit"));

	writeButton = new QPushButton(tr("Write"));

	buttonBox = new QDialogButtonBox;
	buttonBox->addButton(connectToLogReceiver, QDialogButtonBox::ActionRole);
	buttonBox->addButton(quitButton, QDialogButtonBox::RejectRole);
	buttonBox->addButton(writeButton, QDialogButtonBox::ActionRole);

	connect(hostLineEdit, SIGNAL(textChanged(QString)), this,
			SLOT(enableWriteButton()));
	connect(connectToLogReceiver, SIGNAL(clicked()), this,
			SLOT(requestNewFortune()));
	connect(quitButton, SIGNAL(clicked()), this, SLOT(close()));
	connect(writeButton, SIGNAL(clicked()), this, SLOT(writeToLogReceiver()));

	QGridLayout *mainLayout = new QGridLayout;
	mainLayout->addWidget(hostLabel, 0, 0);
	mainLayout->addWidget(hostLineEdit, 0, 1);
	mainLayout->addWidget(statusLabel, 2, 0, 1, 2);
	mainLayout->addWidget(buttonBox, 3, 0, 1, 2);
	setLayout(mainLayout);

	setWindowTitle(tr("Fortune Client"));
	hostLineEdit->setFocus();
}

LogWriter::~LogWriter() {

}

void LogWriter::requestNewFortune() {
	struct sockaddr_un serv_addr;

	connectToLogReceiver->setEnabled(false);


	sockfd = socket(AF_UNIX, SOCK_STREAM, 0);
	if (sockfd < 0)
			qDebug() << "ERROR opening socket"  << strerror(errno);
	serv_addr.sun_family = AF_UNIX;
	strcpy(serv_addr.sun_path, "/var/tmp/qt_c_socket_test");


	if (::connect(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0)
		qDebug() << "ERROR connecting" << strerror(errno);
}

void LogWriter::readFortune() {

}

void LogWriter::displayError(QLocalSocket::LocalSocketError socketError) {

}

void LogWriter::enableWriteButton() {
	writeButton->setEnabled(!hostLineEdit->text().isEmpty());
}

void LogWriter::writeToLogReceiver() {

	//char buffer[256];
	char *b = "test";
	qDebug() << strlen(b);
	int n = ::write(sockfd,b,strlen(b));
	    if (n < 0)
	         qDebug() <<"ERROR writing to socket";

}