Subversion Repositories HomeAutomation

Rev

Rev 983 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed

Rev 983 Rev 984
Line 82... Line 82...
82
        {
82
        {
83
            AsyncSocket *newSocket = new AsyncSocket();
83
            AsyncSocket *newSocket = new AsyncSocket();
84
 
84
 
85
            if (mySocket.accept(newSocket))
85
            if (mySocket.accept(newSocket))
86
            {
86
            {
87
                newSocket->sendDataDirect("Welcome to Atom CanDebug\n");
87
                newSocket->sendData("Welcome to Atom " + ftos(VERSION) + " - CanDebug output\n");
88
 
88
 
89
                slog << "CanDebug accepted new client on socket " + itos(newSocket->getSocket()) + ".\n";
89
                slog << "CanDebug accepted new client on socket " + itos(newSocket->getSocket()) + ".\n";
90
                myClientSockets[newSocket->getSocket()] = newSocket;
90
                myClientSockets[newSocket->getSocket()] = newSocket;
91
 
-
 
92
               
-
 
-
 
91
                myClientSockets[newSocket->getSocket()]->start();
93
            }
92
            }
94
        }
93
        }
95
    }
94
    }
96
    catch (SocketException* e)
95
    catch (SocketException* e)
97
    {
96
    {
98
        slog << "Exception was caught:" + e->getDescription() + ".\n";
97
        slog << "Exception was caught:" + e->getDescription() + ".\n";
99
    }
98
    }
100
}
99
}
101
 
100
 
102
void CanDebug::sendData(string data)
101
void CanDebug::sendData(string data)
103
{
102
{
104
    SyslogStream &slog = SyslogStream::getInstance();
103
    SyslogStream &slog = SyslogStream::getInstance();
105
 
104
 
106
    map<int, AsyncSocket*>::iterator iter;
105
    map<int, AsyncSocket*>::iterator iter;
107
 
106
 
108
    for (iter = myClientSockets.begin(); iter != myClientSockets.end(); iter++)
107
    for (iter = myClientSockets.begin(); iter != myClientSockets.end(); iter++)
109
    {
108
    {
110
        if (iter->second->isConnected())
109
        if (iter->second->isConnected())
111
        {
110
        {
112
            //slog << "CanDebug sent data to client " + itos(iter->second->getSocket()) + ".\n";
111
            //slog << "CanDebug: sent data to client " + itos(iter->second->getSocket()) + ".\n";
-
 
112
           
-
 
113
            try
-
 
114
            {
113
            iter->second->sendDataDirect(data);
115
                iter->second->sendData(data);
-
 
116
            }
-
 
117
            catch (SocketException* e)
-
 
118
            {
-
 
119
                slog << "CanDebug caught an exception:" + e->getDescription() + ".\n";
-
 
120
            }
114
        }
121
        }
115
        else
122
        else
116
        {
123
        {
117
            slog << "CanDebug client " + itos(iter->second->getSocket()) + " has disconnected.\n";
124
            slog << "CanDebug had a client disconnect.\n";
118
            delete iter->second;
125
            delete iter->second;
119
            myClientSockets.erase(iter);
126
            myClientSockets.erase(iter);
120
        }
127
        }
121
    }
128
    }
122
}
129
}