meta data for this page
  •  

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

peerhood:example_connect [2011/09/02 12:05] (current)
Line 1: Line 1:
 +This page tries to clarify what happens when application/​service uses peerhood interface to create a connection:
 +
 +Our client (and its numbers function) will behave as an example.
 +
 +In numbers function a list of devices is askes by using ''​apeerhood->​GetDeviceLitL()''​ command. From this list a device is selected. (maybe here we should show only those devices that are capable for the servcie). When the selection is doen then a connection is formend by using command ''​apeerhood->​connect(device,​ service)''​. This command tries to connect to the given service at the given device.
 +
 +''​Connect(device,​service)''​ is defined and implemented in the PeerHoodImpl.cc file. This function looks for the services in the given device and if the requested service is found a new private function ''​Connect(proto,​ address, port, service, name checksum''​ is called.
 +
 +''​Connect(proto,​ address, port, service, name checksum''​
 +
 +This function is private function of the PeerHoodImpl class. This function creates ''​CThreadInfo''​ data form and calls ''​VirtulaConnection(proto,​ ThreadInfo)''​ function. This ''​VirtulaConnection(proto,​ ThreadInfo)''​ function takes care that a suitable connection is created (''​Factory::​CreateConnectionL(proto)''​). ​ Then connection is connected through funtion ''​VirtualConnection->​Connect(address,​ port)''​. This Connect uses the Connect command of the selected proto. '''​(NOTE this uses the given port number to set the connection WHAT means that if we really register services with port numbers we NEED to use them as well)'''​. After connection is Ok ''​VirtualConnection->​Write(command)''​ function is used. After this Write of the command PeerHood writes the service name it wants to use by using ''​VirtualConnection->​Write(servicename)''​. After that response is waited by using ''​VirtualConnection->​Read(command)''​ function. If we get PH_OK then ''​VirtualConnection->​Write(connectionid)''​ is used for sending the connectionid to the other end. '''​There'​s something wrong with the connection id settings as first iConnectionId = 0. Then it is set to ThreadInfo. This same is sent to the other side and finally this value is increased.'''​