void httpServer::getClientRequest() { QTcpSocket *client = qobject_cast<QTcpSocket *>(sender()); if(client->canReadLine()) { QStringList lines = QString(client->readLine()).split(QRegExp("[ \r\n][ \r\n]*")); if(lines[0] == "GET") { viewMessage(QString::fromUtf8("Envoi du catalogue à ")+client->peerAddress().toString()+":"+QString::number(client->peerPort())); QFile catalogue(QCoreApplication::applicationDirPath()+"/catalog.tmp"); catalogue.open(QIODevice::ReadOnly | QIODevice::Text); QTextStream os(client); QTextStream is(&catalogue); os << "HTTP/1.1 200 OK\r\nServer: TP_Serveur_3208\r\nConnection: Keep-Alive\r\nContent-Type: text/txt\r\nContent-Length: " << catalogue.size() << "\r\n\r\n"; QString line = is.readLine(); while(!line.isNull()) { os << line.toLocal8Bit().constData() << "\r\n"; line = is.readLine(); } catalogue.close(); } } }
void ListItemView::MessageReceived(BMessage* msg) { switch (msg->what) { case SET_DRAW: { if (gFuncList->LockAsWriter()) { function->SetDraw(checkBox->Value()); gFuncList->UnlockAsWriter(); } } break; case COLOR_CHG: { const void* data; ssize_t size = sizeof(rgb_color); if (msg->FindData("color",B_RGB_COLOR_TYPE,&data,&size)== B_OK) { if (gFuncList->LockAsWriter()) { function->SetColor(*(const rgb_color*)(data)); gFuncList->UnlockAsWriter(); } } } break; case SET_TYPE_CART: { if (gFuncList->LockAsWriter()) { if (function->Type()==cart) { gFuncList->UnlockAsWriter(false); break; } function->SetType(cart); ListItemView* newItem = function->CreateListItemView(Frame(),"List Item"); BMessenger messanger(Parent()); BMessage viewMessage(ADD_ITEM); viewMessage.AddPointer("ListItemPtr",newItem); viewMessage.AddPointer("OldItemPtr",this); messanger.SendMessage(&viewMessage); gFuncList->UnlockAsWriter(); } } break; case SET_TYPE_PARA: { if (gFuncList->LockAsWriter()) { if (function->Type()==para) { gFuncList->UnlockAsWriter(false); break; } function->SetType(para); ListItemView* newItem = function->CreateListItemView(Frame(),"List Item"); BMessenger messanger(Parent()); BMessage* viewMessage= new BMessage(ADD_ITEM); viewMessage->AddPointer("ListItemPtr",newItem); viewMessage->AddPointer("OldItemPtr",this); messanger.SendMessage(viewMessage); gFuncList->UnlockAsWriter(); } } break; case SET_TYPE_POLAR: { if (gFuncList->LockAsWriter()) { if (function->Type()==polar) { gFuncList->UnlockAsWriter(false); break; } function->SetType(polar); ListItemView* newItem = function->CreateListItemView(Frame(),"List Item"); BMessenger messanger(Parent()); BMessage* viewMessage= new BMessage(ADD_ITEM); viewMessage->AddPointer("ListItemPtr",newItem); viewMessage->AddPointer("OldItemPtr",this); messanger.SendMessage(viewMessage); gFuncList->UnlockAsWriter(); } } break; default: BView::MessageReceived(msg); break; } }