HCE Project Python language Distributed Tasks Manager Application, Distributed Crawler Application and client API bindings.  2.0.0-chaika
Hierarchical Cluster Engine Python language binding
ftest_tcp_server_raw.py
Go to the documentation of this file.
1 '''
2 Created on Mar 18, 2014
3 
4 @author: igor
5 '''
6 
7 from app.BaseServerManager import BaseServerManager
8 from dtm.Constants import EVENT_TYPES
9 from transport.ConnectionBuilder import ConnectionBuilder
10 from transport.ConnectionBuilderLight import ConnectionBuilderLight
11 from transport.IDGenerator import IDGenerator
12 from transport.Response import Response
13 from transport.Request import Request
14 from transport.Connection import ConnectionParams
15 import transport.Consts as consts
16 
17 
19 
20 
21  def __init__(self, expect_response):
22  super(TCPServerRaw, self).__init__()
23  self.expect_response = expect_response
24 
25  self.setEventHandler(EVENT_TYPES.SERVER_TCP_RAW, self.onServerTCPRaw)
26 
27 
28  def onServerTCPRaw(self, event):
29  print "get event ", event.__dict__, vars(event.eventObj)
30  response = event.eventObj
31  if response.body == self.expect_response.body and response.uid == self.expect_response.uid:
32  print "bye"
33  self.exit_flag = True
34 
35 
36 if __name__ == "__main__":
37  connectBuilder = ConnectionBuilderLight()
38  serverConnectAdmin = connectBuilder.build(consts.SERVER_CONNECT, BaseServerManager.ADMIN_CONNECT_ENDPOINT)
39 
40  connectBuilder = ConnectionBuilder(IDGenerator())
41  expect_response = Response(["id", "body"])
42  request = Request("id")
43  request.add_data("body")
44 
45  tcpServerRaw = TCPServerRaw(expect_response)
46 
47  connectParams = ConnectionParams("127.0.0.1", 9181)
48  serverConnect = connectBuilder.build(consts.ADMIN_CONNECT_TYPE, connectParams, consts.SERVER_CONNECT)
49 
50  tcpServerRaw.addConnection("raw_server", serverConnect)
51  tcpServerRaw.start()
52 
53  clientConnect = connectBuilder.build(consts.ADMIN_CONNECT_TYPE, connectParams, consts.CLIENT_CONNECT)
54  clientConnect.send(request)
55 
56  tcpServerRaw.join()
57  print "OK"
It's a wrapper similar to zmsg.hpp in sense of encapsulation of hce response message structure...
Definition: Response.py:20
def setEventHandler(self, eventType, handler)
set event handler rewrite the current handler for eventType
This is app base class for management server connection end-points and parallel transport messages pr...
Class hides routines of bulding connection objects.
It's a wrapper similar to zmsg.hpp in sense of encapsulation of hce message structure.
Definition: Request.py:11
The builder is used to encapsulation routine of creation various type of connections.
IDGenerator is used to generate unique id for connections.
Definition: IDGenerator.py:15