[tuxdroid-svn] r215 - svnlook: warning: cannot set LC_CTYPE locale svnlook: warning: environment va
Status: Beta
Brought to you by:
ks156
From: svnlook:warning@affinitic.be:cannot s. L. l. <c2m...@c2...> - 2007-03-29 16:11:59
|
Author: svnlook: warning: cannot set LC_CTYPE locale Date: svnlook: warning: environment variable LANG is EN New Revision: 215 Added: daemon/branches/CPPDaemon/Dispatcher.cpp daemon/branches/CPPDaemon/Dispatcher.h Modified: daemon/branches/CPPDaemon/Makefile daemon/branches/CPPDaemon/MsgQueue.cpp daemon/branches/CPPDaemon/MsgQueue.h daemon/branches/CPPDaemon/TCP.cpp daemon/branches/CPPDaemon/TCP.h daemon/branches/CPPDaemon/main.cpp Log: srikantap 2007-03-29 18:11:30 +0200 (Thu, 29 Mar 2007) 125 Added dispatcher class. It is supposed to be the central 'router' sort-of process which routes messages all round the system. svnlook: warning: cannot set LC_CTYPE locale svnlook: warning: environment variable LANG is EN svnlook: warning: please check that your locale name is correct Added: daemon/branches/CPPDaemon/Dispatcher.cpp =================================================================== --- daemon/branches/CPPDaemon/Dispatcher.cpp (rev 0) +++ daemon/branches/CPPDaemon/Dispatcher.cpp 2007-03-29 16:11:30 UTC (rev 215) @@ -0,0 +1,64 @@ +#include "Dispatcher.h" +#include "TCP.h" +#include "MsgQueue.h" +#include "Common.h" + + +Dispatcher::Dispatcher() +{ + key_t key; + if ((key = ftok(FTOK_PATH_NAME, 'S')) == -1) + { + perror("ftok"); + } + + usbQ = new MsgQueue(key, 0777); +} + +Dispatcher::~Dispatcher() +{ +} + + +bool Dispatcher::dispatch(Message& msg) +{ + int s = 0; + bool result = false; + + switch (msg.getDestination()) + { + case DESTINATION_TUX: + s = usbQ->send((char *) msg.getMessage(), msg.size(), USB_QUEUE_MSG_TYPE); + if (s < 0) + { + perror ("Msg send"); + } + else + { + printf("DISPATCHER: Successfully sent to usbQ\n"); + } + result = true; + break; + + default: + printf("DISPATCHER: Message of type %d received\n", msg.getDestination()); + break; + } + + return (result); +} + +bool Dispatcher::dispatch(char* message) +{ + + Message msg(message); + + switch (msg.getDestination()) + { + case DESTINATION_TUX: + break; + + default: + break; + } +} Property changes on: daemon/branches/CPPDaemon/Dispatcher.cpp ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:keywords + Id Name: svn:eol-style + native Added: daemon/branches/CPPDaemon/Dispatcher.h =================================================================== --- daemon/branches/CPPDaemon/Dispatcher.h (rev 0) +++ daemon/branches/CPPDaemon/Dispatcher.h 2007-03-29 16:11:30 UTC (rev 215) @@ -0,0 +1,27 @@ +#include "TCP.h" +#include "MsgQueue.h" + +class Dispatcher +{ + public: + + enum _Destination + { + DESTINATION_MASTER_DAEMON, + DESTINATION_SUB_DAEMON, + DESTINATION_TUX, + DESTINATION_RESOURCE, + DESTINATION_CLIENT, + DESTINATION_DONGLE + }; + + Dispatcher(); + ~Dispatcher(); + + bool dispatch(char* message); + bool dispatch(Message& msg); + + private: + + MsgQueue* usbQ; +}; Property changes on: daemon/branches/CPPDaemon/Dispatcher.h ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:keywords + Id Name: svn:eol-style + native Modified: daemon/branches/CPPDaemon/Makefile =================================================================== --- daemon/branches/CPPDaemon/Makefile 2007-03-29 13:19:41 UTC (rev 214) +++ daemon/branches/CPPDaemon/Makefile 2007-03-29 16:11:30 UTC (rev 215) @@ -1,6 +1,6 @@ default: - g++ main.cpp Socket.cpp TCP.cpp MsgQueue.cpp UsbHandler.cpp -lpthread + g++ main.cpp Socket.cpp TCP.cpp MsgQueue.cpp UsbHandler.cpp Dispatcher.cpp -lpthread clean: rm -f *.out *.o Modified: daemon/branches/CPPDaemon/MsgQueue.cpp =================================================================== --- daemon/branches/CPPDaemon/MsgQueue.cpp 2007-03-29 13:19:41 UTC (rev 214) +++ daemon/branches/CPPDaemon/MsgQueue.cpp 2007-03-29 16:11:30 UTC (rev 215) @@ -14,6 +14,7 @@ } MsgBuf; MsgQueue::MsgQueue(int key) + : msgFlag(0) { if((id = msgget((key_t)key, IPC_CREAT|0777)) == -1) perror("msgget"); @@ -21,6 +22,7 @@ MsgQueue::MsgQueue(int key,int perm) + : msgFlag(0) { if((id = msgget((key_t)key, perm)) == -1) perror("msgget"); @@ -67,7 +69,7 @@ memset(packet.data,0,sizeof(packet.data)); memcpy(packet.data,buf,len); - return msgsnd(id, &packet, len, 0); + return msgsnd(id, &packet, len, msgFlag); } int MsgQueue::recv(char *buf, int len) @@ -75,7 +77,7 @@ int ret; MsgBuf packet; - ret = msgrcv(id, &packet, len,0,0); + ret = msgrcv(id, &packet, len, 0, msgFlag); memcpy(buf,packet.data,len); @@ -91,7 +93,7 @@ packet.type = type; - ret = msgrcv(id, &packet, len,type,0); + ret = msgrcv(id, &packet, len, type, 0); memcpy(buf,packet.data,len); Modified: daemon/branches/CPPDaemon/MsgQueue.h =================================================================== --- daemon/branches/CPPDaemon/MsgQueue.h 2007-03-29 13:19:41 UTC (rev 214) +++ daemon/branches/CPPDaemon/MsgQueue.h 2007-03-29 16:11:30 UTC (rev 215) @@ -18,6 +18,11 @@ void release(); int getRandomType(); + void setNonBlocking() + { + msgFlag |= IPC_NOWAIT; + }; + int send(string msg); int send(string msg,long type); int send(char *buf, int len); @@ -27,6 +32,7 @@ private: int id; + int msgFlag; }; #endif Modified: daemon/branches/CPPDaemon/TCP.cpp =================================================================== --- daemon/branches/CPPDaemon/TCP.cpp 2007-03-29 13:19:41 UTC (rev 214) +++ daemon/branches/CPPDaemon/TCP.cpp 2007-03-29 16:11:30 UTC (rev 215) @@ -8,6 +8,7 @@ #include "Common.h" #include "TCP.h" #include "Socket.h" +#include "Dispatcher.h" void Message::setSource(char source) { @@ -263,11 +264,15 @@ //msg.dump(); // TODO: USB.dispatch(clients[i].msg); - int s = usbQueue->send((char *) str.c_str(), MESSAGE_SIZE, USB_QUEUE_MSG_TYPE); + /*int s = usbQueue->send((char *) str.c_str(), MESSAGE_SIZE, USB_QUEUE_MSG_TYPE); if (s < 0) { perror ("Msg send"); } + */ + Dispatcher d; + d.dispatch(msg); + printf("TCP: Dispatched...\n"); } } } Modified: daemon/branches/CPPDaemon/TCP.h =================================================================== --- daemon/branches/CPPDaemon/TCP.h 2007-03-29 13:19:41 UTC (rev 214) +++ daemon/branches/CPPDaemon/TCP.h 2007-03-29 16:11:30 UTC (rev 215) @@ -1,3 +1,5 @@ +#ifndef __TCP_H__ +#define __TCP_H__ #include "Socket.h" #include "MsgQueue.h" @@ -23,6 +25,8 @@ char getDataSubType(); char* getMessageData(); + char* getMessage() { return &(_msg[0]); }; + void dump(); int size() { return (MESSAGE_SIZE); }; @@ -85,3 +89,4 @@ string _name; }; +#endif Modified: daemon/branches/CPPDaemon/main.cpp =================================================================== --- daemon/branches/CPPDaemon/main.cpp 2007-03-29 13:19:41 UTC (rev 214) +++ daemon/branches/CPPDaemon/main.cpp 2007-03-29 16:11:30 UTC (rev 215) @@ -22,11 +22,11 @@ pthread_t tcpThread; int thread_ret = pthread_create(&tcpThread, NULL, tcp, (void*) "TCP THREAD"); - printf("Created TCP\n"); + // printf("Created TCP\n"); pthread_t usbThread; pthread_create(&usbThread, NULL, usb, (void*) "USB THREAD"); - printf("Created USB\n"); + // printf("Created USB\n"); pthread_join(tcpThread, NULL); pthread_join(usbThread, NULL); |