Statistics
| Revision:

root / hci / trunk / eneraptor-web-app / grails-app / services / com / eneraptor / hci / HciLogicCommService.groovy @ 63

History | View | Annotate | Download (1.38 KB)

1
package com.eneraptor.hci
2

    
3
class HciLogicCommService {
4

    
5
    static transactional = true
6

    
7
    Map getReplyToRequest(String requestContent) {
8
                
9
                Map reply = new HashMap()
10
                
11
                Socket logicSocket = null;
12
                PrintWriter toLogic = null;
13
                BufferedReader fromLogic = null;
14
                
15
                def ipAddress = InternalConfig.findByConfigId("logic-ip")['configVal']
16
                def portNum = InternalConfig.findByConfigId("logic-port")['configVal']
17

    
18
                try {
19
                        logicSocket = new Socket(ipAddress, portNum as int);
20
                        toLogic = new PrintWriter(logicSocket.getOutputStream(), true);
21
                        fromLogic = new BufferedReader(new InputStreamReader(
22
                                                                                logicSocket.getInputStream()));
23
                } catch (UnknownHostException e) {
24
                        reply['status'] = "error"
25
                        reply['content'] = "Unknown host: "
26
                        reply['content'] += e.getMessage()
27
                        fromLogic?.close()
28
                        toLogic?.close()
29
                        logicSocket?.close()
30
                        return reply
31
                } catch (IOException e) {
32
                        reply['status'] = "error"
33
                        reply['content'] += e.getMessage()
34
                        fromLogic?.close()
35
                        toLogic?.close()
36
                        logicSocket?.close()
37
                        return reply
38
                }
39
                
40
                reply['status'] = "ok"
41
                reply['content'] = ""
42
                toLogic.println(requestContent)
43
                List allLines = new ArrayList()
44
                allLines = fromLogic.readLines()
45
                allLines.each {
46
                        reply['content'] += it.toString() + "\n"
47
                }
48
                
49
                fromLogic.close()
50
                toLogic.close()
51
                logicSocket.close()
52
                
53
                return reply
54

    
55
    }
56
        
57
}