Commit Graph

86 Commits

Author SHA1 Message Date
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
gjansa 09076dd5bd transportRegistry added and remove of compare fields routine from introspectionRegistry 2010-12-29 09:56:43 +01:00
gjansa 2b9c505b8d transportRegistry test 2010-12-29 09:55:45 +01:00
gjansa 5d5346d818 transportRegistry test 2010-12-29 09:55:19 +01:00
miha_vitorovic 15d2daef43 Some changes to how transport is destroyed. Added virtual dtor to Transport class.
In server the transport is now explicitly deleted.
2010-12-28 16:29:15 +01:00
miha_vitorovic fe5ea9442c A working blockingUDPTransport with test.
TODO: debug stopping listener thread.
2010-12-28 15:47:05 +01:00
gjansa 3eea9688f0 Some comments removed. 2010-12-28 10:10:00 +01:00
miha_vitorovic 58f03384c2 UDP transport cleanup - closing the socket and stopping the thread; 2010-12-28 10:09:37 +01:00
gjansa bc3ce27494 Using == operator on fields 2010-12-28 10:06:18 +01:00
miha_vitorovic 16542b9e3c Set socket options based on Connector properties. 2010-12-28 09:06:38 +01:00
miha_vitorovic 06842f7890 Makefile: renamed blockingUDP header, added blockingUDPConnector.cpp
blockingUDPTransport.cpp: fixed ctor, addedmutex to 'enqueueSendRequest', started using 'sys/socket.h'
remote.h: added TransportClient and Connector classes
introspectionRegistry.h: organized #includes
2010-12-28 08:59:25 +01:00
miha_vitorovic 15ad456930 Merge with 2240b8485ef2182e083614fc304bfe7e1b6c771a 2010-12-27 14:02:31 +01:00
miha_vitorovic 54b4862e16 Finished the implementation of BlockingUDPTransport. Ready for testing and debugging. 2010-12-27 13:58:49 +01:00