Commit Graph

98 Commits

Author SHA1 Message Date
Gasper Jansa e26e05bfbf epics mutex now used in named lock pattern 2011-01-09 20:15:00 +01:00
Gasper Jansa 8644741cfa merging 2011-01-07 18:47:13 +01:00
Gasper Jansa 932406e847 configuration implementation and test 2011-01-07 18:46:25 +01:00
miha_vitorovic 8f0b4d8594 Using osiSockAddress parameter by reference wherever possible. 2011-01-07 14:42:00 +01:00
miha_vitorovic 07712cc1f7 Fixed a crash in client which happened if a server closed connection. 2011-01-07 13:29:00 +01:00
miha_vitorovic 3c03971939 Fixed core dumps. Transport client now finishes successfully. 2011-01-07 13:01:48 +01:00
miha_vitorovic b868736759 Some formatting of the debug message. 2011-01-07 10:03:20 +01:00
miha_vitorovic 71b9dfec6d TCP transport now basically works. Still some bugs to squash. 2011-01-07 09:53:33 +01:00
miha_vitorovic 387d8aa0dc Some final fixes to addressUtils regarding byte-order. 2011-01-07 08:58:17 +01:00
miha_vitorovic a59ce661eb Merge with 8ddd7d0d0f6862b3ad94474f490855909859637e 2011-01-07 08:46:17 +01:00
miha_vitorovic 59b45653d1 blockingClientTCPTransport.cpp:
- changed magic numbers to enums

blockingTCPTransport.cpp:
- debug helpers only

responseHandlers.*:
- added two new handlers, NOOP and Echo
2011-01-07 08:44:43 +01:00
Gasper Jansa 5707815767 empty test file for channel search manager for real now :) 2011-01-06 17:19:20 +01:00
Gasper Jansa 95fdf3e410 merging 2011-01-06 17:14:26 +01:00
Gasper Jansa 512bc514e6 Small fixes and empty channel search manager test 2011-01-06 17:12:35 +01:00
Gasper Jansa 3dcc75bb57 ChannelSearchManager implementation 2011-01-06 15:59:40 +01:00
miha_vitorovic 25d6336efa Merge with c53f510976d631f0602c377e31010184e35bce79 2011-01-06 15:00:26 +01:00
miha_vitorovic 8339c338de blockingServerTCPTransport.cpp:
- using enum to specify command.

BlockingTCPAcceptor.cpp:
- added 'destroy()' to dtor
- added parentheses to expressions

blockingTCPCinnector.cpp:
- fixed log message

blockingTCPTransport.cpp:
- added _socketAddress allocation
- fixed waiting for timeout in 'waitUntilVerified'
- fixed how many bytes are copied from the buffer

responseHandlers.cpp:
- added 'ConnectionValidationHandler' implementation
- added 'ConnectionValidationHandler' to 'ServerResponseHandler'

responseHandlers.h:
- added 'ConnectionValidationHandler' declaration

inetAddressUtil.cpp:
- fixed all issues with sockaddr_in byte-order
- removed function 'processAddressForList', using EPICSv3 'aToIPAddr' instead

inetAddressUtilsTest.cpp:
- fixed the tests in accordance with the correct function implementation

testBlockingUDPClnt.cpp:
- deleting transport at the end of the test

testBlockingTCPSrv.cpp, testBlockingTCPClnt.cpp:
- added tests (work in progress).

Makefile:
- added blockingTCP tests
2011-01-06 14:58:32 +01:00
miha_vitorovic 6c3b00dc86 configure/CONFIG_SITE:
- added explicit instructions to link pthread library, since it is not included by default on Fedora linux (possibly others?)

testRemoteClientImpl.cpp:
- added "#include <memory>" needed for std::auto_ptr
2011-01-06 09:49:22 +01:00
Matej Sekoranja 3c1b9d9743 MacOSX port, this needs to be portable... epicsMutex, but there is no timedlock. 2011-01-05 18:02:09 +01:00
miha_vitorovic 0af1781b5e Added connected clients tracking to BlockingTCPAcceptor. For each new connection a new 'BlockingServerTCPTransport' object is created, but was never released.
The acceptor now stores all the objects in a set, and registers a callback with the client, to be notified when the connection is closed. On notification the client is them removed from the set and the memory is released.
When the acceptor is destroyed, it also closes and deleted all the connected clients.
2011-01-05 13:36:07 +01:00
miha_vitorovic dcc2c83336 Fixed compilation error in TransportClient - dtor definition. 2011-01-05 10:36:50 +01:00
miha_vitorovic 596d933bb5 Merge with changes from Matej 2011-01-05 10:31:17 +01:00
miha_vitorovic 5f6652af0b - Moved osiSockAddr comparators to 'inetAddressUtil.h'
- moved serve response handler implementation(s) to '/server' and fixed #includes and Makefile
2011-01-05 10:29:46 +01:00
Matej Sekoranja 0cab12ffd6 merge 2011-01-05 10:15:52 +01:00
Matej Sekoranja bf5e3f3e19 ChannelSearchManager mocks 2011-01-05 10:14:18 +01:00
miha_vitorovic 544fc6bd73 Added NamedLockPattern to BlockingTCPConnector and resolved some warnings and compilation/linker errors.
Reference to '__sync_add_and_fetch' and '__sync_sub_and_fetch' removed for now, since it is glibc version specific.
2011-01-05 09:20:51 +01:00
miha_vitorovic 5ec1adfacb Merge with additions from Gasper Jansa 2011-01-04 23:48:59 +01:00
miha_vitorovic 6a6e9d6256 Makefile:
- added 'server' folder
- added 'blockingTCPAcceptor.cpp' and 'responseHandlers.cpp' to 'remote'

blockingTCP.h:
- added 'public' specifier to 'BlockingServerTCPTransport'
- added 'BlockingTCPAcceptor' class declaration

blockingTCPAcceptor.cpp:
- implementation

blockingTCPConnector.cpp:
- 'sizeof(optval)' -> 'sizeof(int)'

remote.h:
- enum 'MessageCommands'
- added class declarations:
  * AbstractResponseHandler
  * AbstractServerResponseHandler
  * BadResponse
  * ServerResponseHandler

responseHandlers.cpp:
- implementation of various response handlers

serverContext.h:
- dummy implementation

growingCircularBuffer.h:
- removed empty line
2011-01-04 23:47:07 +01:00
Gasper Jansa 7f528828ad merge 2011-01-04 18:44:50 +01:00
Gasper Jansa 435164bd60 Named lock pattern now for real 2011-01-04 18:43:56 +01:00
Gasper Jansa 547a648e76 Named locked pattern and some small things for beacon emitter and handler 2011-01-04 18:43:20 +01:00
miha_vitorovic 02478fa61e Added class 'BlockingServerTCPTransport'. 2011-01-04 13:17:12 +01:00
Matej Sekoranja 45ec248380 merge 2011-01-04 13:16:27 +01:00
Matej Sekoranja b6d9221a47 ctnd. work on remote client access implementation 2011-01-04 12:58:51 +01:00
miha_vitorovic 328472f939 Merge with changes from Gasper Jansa 2011-01-04 12:01:14 +01:00
miha_vitorovic bd1a4e2634 Makefile: included all the new sources
blockingClientTCPTransport.cpp: implementation

blockingTCP.h:
* class BlockingTCPTransport:
  - added Context to ctor
  - added 'virtual' declaration to overrides
  - 'priority' is now 'int16'
* added class 'BlockingClientTCPTransport'

blockingTCPConnector.cpp: implementation

blockingTCPTransport.cpp:
* removed 'transportRegistry' added 'context'

blockingUDP.h:
* added missing override 'getIntrospectionRegistry'
* 'BlockingUDPConnector::_priority' is now 'int16' instead of 'short'

blockingUDPConnector.cpp:
* 'connect' parameter priority is now 'int16' instead of 'short'
* fixed and added error logging

remote.h:
* added 'TransportRegistry' forward declaration
* added 'Transport::getIntrospectionRegistry' prototype
* changed 'Connector::connect' prototype parameter 'priority': 'short'->'int16'
* added 'Context' interface
* added 'ReferenceCountingTransport' interface

transportRegistry.h:
* added 'Transport' forward declaration

testRemoteClientImpl.cpp:
* added '#include <transportRegistry.h>' to fix compile error
* lots of auto-format changes

transportRegistryTest.cpp:
*
2011-01-04 11:58:00 +01:00
Gasper Jansa a2798bb3b7 merging 2011-01-03 14:47:42 +01:00
Gasper Jansa 854a78d393 Transport Registry map uses osiSockAddr as key 2011-01-03 14:46:16 +01:00
miha_vitorovic 9b99f6f389 Merge with commit from Gasper Jansa 2011-01-03 14:31:50 +01:00
miha_vitorovic b6df9a4d89 blockingTCP.h: added TransportRegistry, removed "using namespace"
BlockingTCPTransport: added TransportRegistry, using osiSock.h functions wherever possible
blockingUDP.h: removed "using namespace"
blockingUDPConnector.cpp: using osiSock.h functions wherever possible
blockingUDPTransport: using osiSock.h functions wherever possible, delete -> delete[]
remote.h: removed "using namespace"
arrayFIFO.h: fixed default ctor, delete -> delete[]
growingCircularBuffer.h: delete -> delete[]
testBlockingUDPClnt.cpp: using osiSock.h functions wherever possible
testBlockingUDPCSrv.cpp: using osiSock.h functions wherever possible
2011-01-03 14:30:38 +01:00
Gasper Jansa 0a43e1104c beaconEmitter and handler (not finished) 2011-01-03 09:58:35 +01:00
Matej Sekoranja 95148e2d50 ref. counting macro, starting remote client implementation 2011-01-02 12:59:33 +01:00
miha_vitorovic 9a8c205d54 Some GrowingCircularBuffer and Mutex cleanup. 2010-12-31 12:00:40 +01:00
miha_vitorovic 16aa5fba25 Added MonitorHandler. Porting of BlockingTCPTransport now complete.
TODO: 1) check thread sync and "notify" in Java make C++ code as equivalent as possible.
2) Debug :)
2010-12-30 13:53:52 +01:00
miha_vitorovic 3fc6171075 Entire BlockingTCPTransport class ported EXCEPT 'monitorSender'. 2010-12-30 12:47:49 +01:00
miha_vitorovic ae4abfe636 Readded .hgignore 2010-12-29 15:03:41 +01:00
miha_vitorovic c452ec3343 Merge with 0e964e46b15e05887fa9ce6e486681bf0a691654 2010-12-29 15:02:44 +01:00
miha_vitorovic 2202d88020 blockingTCPTransport - work in progress. 2010-12-29 15:01:42 +01:00
Gasper Jansa c850a2ecfb merging 2010-12-29 10:17:28 +01:00
Gasper Jansa 25df2c30d1 hgignore removed 2010-12-29 10:15:46 +01:00