Step 1
Derive a hub
Subclass the hub, give it the address the rest of the network will use to reach the foreign system. Nothing about the foreign API escapes past this boundary.
Ivyware/P2Pmsgcore/Integrations
Bridges to the rest of the estate
Each library here follows the same shape: a specialised hub whose primary context keeps pre-emptively pumping and routing messages, while a second dedicated pump serialises whatever the foreign API insists on serialising. The rest of your network never learns the difference.
Sample patterns, utilities and C++ source for the asynchronous integration of a SQL Server database into a P2Peer virtual network using ODBC. Integration is achieved through a P2PeerHubODBC object that can run as a standalone hub or be folded transparently into a service or an MFC application.
Load balancing comes from the split: the primary hub context pre-emptively and asynchronously pumps messages, while a SQL pump dedicates itself to the serial generation of the response message stream.
SQLConnect() function.SQLPrepare(), SQLExecute(), SQLFetch(), SQLDescribeCol() and SQLGetData(). The resulting stream is transparently routed back to the request source.SQLDisconnect().The library can be customised for equivalent ODBC databases such as MySQL. Download P2PmsgODBC.
Sample patterns, utilities and source for the seamless asynchronous integration of MFC objects into a messaging environment — the piece that stops a desktop UI from blocking on the network.
P2PmsgTreeCtrl class, integrating CTreeCtrl with message manager objects.CComboBox, CListCtrl and CTreeCtrl controls.CWnd.CDialog.Sample patterns, utilities and C++ source for the asynchronous integration of MAPI into a Windows messaging environment, through a P2PeerHubMAPI object that can stand alone or be embedded in a service or MFC application.
IMAPISession, IMsgStore, IMAPIFolder, IMessage and IMAPIProp interfaces.Sample patterns, utilities and C++ source for integrating VoIP into a Windows messaging environment, shipped as a static library.
P2PeerHubVoIP object, standalone or embedded in a Win32 service or MFC application.WAVEHDR and WAVEFORMATEX data structures.A complete C++ web server built from the messaging framework, supplied with source and a Visual Studio solution. It is the clearest single demonstration of what a hub, a connection and a map add up to — and the server this site's predecessor was developed and tested against.
GET, POST, HEAD, PUT, DELETE, TRACE, OPTIONS, CONNECT and PATCH.Accept, Host, Connection, DNT, Cookie and the rest.AKAserva represents work in progress and is subject to change without notice. Download AKAserva.
Two full Visual Studio solutions exist as working test benches for the libraries above.
SQLmapi represents work in progress and is subject to change without notice.
Every library on this page is a free download, source included. Go to the downloads.
Step 1
Subclass the hub, give it the address the rest of the network will use to reach the foreign system. Nothing about the foreign API escapes past this boundary.
Step 2
Register a target carrying its own pump. The foreign API — ODBC, MAPI, waveform audio — gets a thread that can block on it without stalling routing.
Step 3
Bind one handler per operation. Results stream back to the requesting address as ordinary messages, so callers need no knowledge of the bridge at all.