Example #1
0
def main():
    use_zmq = True
    use_http = not use_zmq
    
    
    if use_zmq:
        ctx = zmq.Context()
        transport = ZmqClientTransport.create(ctx, 'tcp://127.0.0.1:10111')
        rpc_client = RPCClient(JSONRPCProtocol(), transport)
    elif use_http:
        rpc_client = RPCClient(
            JSONRPCProtocol(),
            HttpPostClientTransport('http://127.0.0.1:8080/')
            )


    if use_zmq:
        res = raw_call(transport.socket, 'echo', {'s':'Ping'})
        print 'Raw call result:', res
        res = raw_call(transport.socket, 'echo', ['Pong'])
        print 'Raw call result:', res
    
    remote_server = rpc_client.get_proxy()
    schema, data = _get_data()
    
    result = rpc_client.call('TableSrv.new_table', args=['table1', data, schema], kwargs=None)
    print 'Client result:', result
    
    #table_service = RPCProxy(rpc_client, prefix='TableSrv.')
    table_service = rpc_client.get_proxy(prefix='TableSrv.')
    table2 = table_service.new_table('table2', data, schema)
    print 'Proxy result:', result
    
    result = table_service.find(table2, {'$or':[{'State': 'NY'},{'State': 'DC'}]})
    print 'Proxy result:', result
    
    result = table_service.insert(table2, {'State': 'MD', 'LiveMeanning': 42})
    print 'Proxy result:', result
    
    result = table_service.get_data(table2)
    print 'Proxy result:', result
    
    result = remote_server.echo('Hello, World!')
    print "Server answered:", result
        
    #remote_server.tables_container.new_table()
    
    dselect = rpc_client.call('DynSelectSrv.new_dselect', args=['dselect', table2], kwargs=None)
    print 'New dselect', dselect

    result = rpc_client.call('DynSelectSrv.new_categorical_condition', [dselect, 'State',[],'cond1'], kwargs=None)
    print 'New Categorical Condition', result
Example #2
0
    def __init__(self, endpoint, srv_description, name):
        '''
        :param str endpoint: The ZeroMQ endpoint definition
        :param dict srv_description: The description of the exposed methods
            * Has the form:
                {method_name: {params: ['name_param', 'data type, description, default=val (if optional)'],
                               return: 'description with data type, maybe using the same structure (like list or dict)'}}
            * Currently is used mainly for online documentation proposes, only
            the method_name has effect on the code behavior
        :param str name: The unique name of the service
        '''
        self.ctx = zmq.Context.instance()

        transport = ZmqClientTransport.create(self.ctx, endpoint)
        self.rpc = RPCClient(JSONRPCProtocol(), transport)

        self.endpoint = endpoint
        self.srv_description = srv_description
        INamed.__init__(self, name)
Example #3
0
def main():
    input_filename = sys.argv[1]
    
    rw = vtk.vtkRenderWindow()
    rwi = vtk.vtkRenderWindowInteractor()           
    rwi.SetRenderWindow(rw)    
    rwi.Initialize()                                                   
    
    actors_list, ren = read_vrml(rw, input_filename)
    #===========================================================================
    #  Prepare Lights
    #     Necessary because the scene can have a static light
    #===========================================================================
    ren.RemoveAllLights()
    ren.CreateLight() 
    
    view = SpineView(ren, rw, actors_list)
    view.show_actor(1)
    
    ctx = zmq.Context()
    transport = ZmqClientTransport.create(ctx, 'tcp://127.0.0.1:8090')
    rpc_client = RPCClient(JSONRPCProtocol(), transport)
    hub = rpc_client.get_proxy(prefix='HubSrv.')
    
    gw = hub.new_gateway('gwzmq', 'zmq', 8091)
    print 'created', gw
    
    hub.subscribe('gwzmq', 'spine_selected')
    socket = ctx.socket(zmq.SUB)
    socket.connect('tcp://127.0.0.1:8091')
    socket.setsockopt(zmq.SUBSCRIBE,'')
    
    poller = zmqPoller(socket)
    poller.callbacks['spine_selected'] = lambda t,m : view.show_actor(random.randint(0,1000))

    rwi.AddObserver('TimerEvent', poller.run)
    _timerId = rwi.CreateRepeatingTimer(100);
    
    
    rwi.Start()
    print 'yeah'