Agnos - The Agnostic RPC Framework Agnos is a cross-platform, cross-language, lightweight RPC framework. ============================================================================== Discloure ============================================================================== Agnos is being developed at IBM XIV (http://www.xivstorage.com/), at the Host Side Group, and is released as an Open Source project under the Apache 2 license. See the LICENSE file for more info. The following statements was required by our lawyers: * The design of the project had been inspired by Thrift (http://incubator.apache.org/thrift), although the projects do not share code. Thrift is licensed as Apache 2, which allows deriviative works. * The name "Microsoft" appears several times in the repository, in Visual Studio solution and project files (.sln, .csproj, .vcxproj), as these files reference XML schemas; in paths of some executable tools; and in documentation material. This does not imply that Microsoft is in anyway affiliated with this project. ============================================================================== How to run the Agnos Toolchain from a cloned repository: ============================================================================== 1) Clone this repository 2) Install scons (http://www.scons.com) 3) Create a symlink (on Windows use mklink) to compiler/src/agnos_compiler and place it somewhere in your PYTHONPATH, e.g.: $ ln -s /absolute/path/of/agnos_toolchain/compiler/src/agnos_compiler /usr/lib/python2.6/site-packages/agnos_compiler Note: the link should be named "agnos_compiler" 4) Create a symlink to libagnos/python/src/agnos and place it somewhere in your PYTHONPATH, e.g: $ ln -s /absolute/path/of/agnos_toolchain/libagnos/python/src/agnos /usr/lib/python2.6/site-packages/agnos Note: the link should be named "agnos" 5) Put compiler/bin/agnosc and compiler/bin/agnosrc-py in your PATH (either by adding them to the PATH or by creating symlinks to /usr/bin, etc.) $ ln -s /absolute/path/of/agnos_toolchain/compiler/bin/agnosc /usr/bin/agnosc $ ln -s /absolute/path/of/agnos_toolchain/compiler/bin/agnosrc-py /usr/bin/agnosrc-py Note: on Windows, create the links to agnos.bat and agnosrc-py.bat 6) Build the parts of libagnos that you wish to use: * Java: cd to libagnos/java and run scons * C#: cd to libagnos/csharp/src and run "msbuild Agnos.sln" or "xbuild Agnos.sln" * C++: cd to libagnos/cpp and run scons you may need to tweak the scons file, to define/undefine BOOST_PROCESS_SUPPORTED 7) See that everything's working: $ agnosc Usage: agnosc [options] agnosc: error: must specify agnos input file(s) $ agnosrc-py Usage: agnosrc-py [options] agnosrc-py: error: must specify agnos input file(s)
Agnos - The Agnostic RPC Framework
Agnos - The Agnostic RPC Framework Agnos is a cross-platform, cross-language, lightweight RPC framework. ============================================================================== Discloure =========================================Category: Python / RPC Servers |
Watchers: 4 |
Star: 16 |
Fork: 7 |
Last update: May 18, 2022 |
the transport layer was designed as a quick-and-dirty hack. in order to properly support new features like compression, it's time to redesign.
add compression to the protocol. the easiest way would be to use a CompressedTransport, which sits on top of a real transport (socket/http/process)
automatically call assertServiceCompatibility when establishing a connection
Suggest changing to:
@echo off
cd /d %~dp0
python agnosc %*
Before:
c:\TEMP\wspace2\SimService>agnosc
python: can't open file './agnosc': [Errno 2] No such file or directory
After:
c:\TEMP\wspace2\SimService>agnosc
Usage: agnosc [options]
Hi, I'm trying out Agnos and encountering this scenario
I've defined an enumeration "EnumVal" and then used that enumeration as an argument in a function. I then compiled it using the agnos compiler version 1.0.1. When I try to compile the generated code, it fails with the following errors:
TestService_server_bindings.hpp:35:24: error: ‘EnumVal’ has not been declared TestService_server_bindings.cpp: In member function ‘virtual void TestService::ServerBindings::Processor::process_invoke(int32_t)’: TestService_server_bindings.cpp:120:16: error: ‘_EnumVal_packer’ was not declared in this scope TestService_server_bindings.cpp:121:47: error: ‘EnumVal’ was not declared in this scope TestService_server_bindings.cpp:123:34: error: ‘EnumVal’ cannot appear in a constant-expression TestService_server_bindings.cpp:123:51: error: no matching function for call to ‘any_cast(boost::any&)’
I checked the generated code and the enum "EnumVal" is not defined anywhere.
DateTime has -12 hours time difference when passed as a function argument from client to server (C#/C#)
Excluding the build system, Agnos has one issue with MinGW-W64. For years, there has been a comparability issue between multiple versions of Boost & MinGW-W64. If you use Boost Thread & ASIO, you need to ensure that boost/asio.hpp is included before boost/thread.hpp, or you'll get something like this:
In file included from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/interprocess/detail/atomic.hpp:54:0,
from src\protocol.cpp:22:
c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/interprocess/detail/win32_api.hpp: In function 'long int boost::interprocess::winapi::interlocked_increment(volatile long int*)':
c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/interprocess/detail/win32_api.hpp:1186:11: error: '_InterlockedIncrement' is not a member of 'boost::detail'
c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/interprocess/detail/win32_api.hpp:1186:11: note: suggested alternative:
In file included from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/windows.h:70:0,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/winsock2.h:23,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/detail/socket_types.hpp:31,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/detail/win_tss_ptr.hpp:23,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/detail/tss_ptr.hpp:25,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/detail/call_stack.hpp:20,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/impl/handler_alloc_hook.ipp:19,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/handler_alloc_hook.hpp:80,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/detail/handler_alloc_helpers.hpp:22,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/detail/bind_handler.hpp:19,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/detail/wrapped_handler.hpp:18,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/io_service.hpp:24,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/basic_io_object.hpp:19,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/basic_socket.hpp:19,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/basic_datagram_socket.hpp:20,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio.hpp:20,
from src\transports.hpp:26,
from src\packers.hpp:25,
from src\protocol.hpp:26,
from src\protocol.cpp:21:
c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/winbase.h:4072:34: note: '_InterlockedIncrement'
In file included from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/interprocess/detail/atomic.hpp:54:0,
from src\protocol.cpp:22:
c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/interprocess/detail/win32_api.hpp: In function 'long int boost::interprocess::winapi::interlocked_decrement(volatile long int*)':
c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/interprocess/detail/win32_api.hpp:1189:11: error: '_InterlockedDecrement' is not a member of 'boost::detail'
c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/interprocess/detail/win32_api.hpp:1189:11: note: suggested alternative:
In file included from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/windows.h:70:0,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/winsock2.h:23,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/detail/socket_types.hpp:31,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/detail/win_tss_ptr.hpp:23,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/detail/tss_ptr.hpp:25,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/detail/call_stack.hpp:20,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/impl/handler_alloc_hook.ipp:19,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/handler_alloc_hook.hpp:80,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/detail/handler_alloc_helpers.hpp:22,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/detail/bind_handler.hpp:19,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/detail/wrapped_handler.hpp:18,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/io_service.hpp:24,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/basic_io_object.hpp:19,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/basic_socket.hpp:19,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/basic_datagram_socket.hpp:20,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio.hpp:20,
from src\transports.hpp:26,
from src\packers.hpp:25,
from src\protocol.hpp:26,
from src\protocol.cpp:21:
c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/winbase.h:4084:34: note: '_InterlockedDecrement'
In file included from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/interprocess/detail/atomic.hpp:54:0,
from src\protocol.cpp:22:
c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/interprocess/detail/win32_api.hpp: In function 'long int boost::interprocess::winapi::interlocked_compare_exchange(volatile long int*, long int, long int)':
c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/interprocess/detail/win32_api.hpp:1192:11: error: '_InterlockedCompareExchange' is not
a member of 'boost::detail'
c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/interprocess/detail/win32_api.hpp:1192:11: note: suggested alternative:
In file included from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/windows.h:70:0,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/winsock2.h:23,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/detail/socket_types.hpp:31,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/detail/win_tss_ptr.hpp:23,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/detail/tss_ptr.hpp:25,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/detail/call_stack.hpp:20,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/impl/handler_alloc_hook.ipp:19,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/handler_alloc_hook.hpp:80,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/detail/handler_alloc_helpers.hpp:22,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/detail/bind_handler.hpp:19,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/detail/wrapped_handler.hpp:18,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/io_service.hpp:24,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/basic_io_object.hpp:19,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/basic_socket.hpp:19,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/basic_datagram_socket.hpp:20,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio.hpp:20,
from src\transports.hpp:26,
from src\packers.hpp:25,
from src\protocol.hpp:26,
from src\protocol.cpp:21:
c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/winbase.h:4145:34: note: '_InterlockedCompareExchange'
In file included from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/interprocess/detail/atomic.hpp:54:0,
from src\protocol.cpp:22:
c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/interprocess/detail/win32_api.hpp: In function 'long int boost::interprocess::winapi::interlocked_exchange_add(volatile long int*, long int)':
c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/interprocess/detail/win32_api.hpp:1195:11: error: '_InterlockedExchangeAdd' is not a member of 'boost::detail'
c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/interprocess/detail/win32_api.hpp:1195:11: note: suggested alternative:
In file included from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/windows.h:70:0,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/winsock2.h:23,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/detail/socket_types.hpp:31,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/detail/win_tss_ptr.hpp:23,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/detail/tss_ptr.hpp:25,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/detail/call_stack.hpp:20,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/impl/handler_alloc_hook.ipp:19,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/handler_alloc_hook.hpp:80,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/detail/handler_alloc_helpers.hpp:22,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/detail/bind_handler.hpp:19,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/detail/wrapped_handler.hpp:18,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/io_service.hpp:24,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/basic_io_object.hpp:19,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/basic_socket.hpp:19,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/basic_datagram_socket.hpp:20,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio.hpp:20,
from src\transports.hpp:26,
from src\packers.hpp:25,
from src\protocol.hpp:26,
from src\protocol.cpp:21:
c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/winbase.h:4116:34: note: '_InterlockedExchangeAdd'
In file included from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/interprocess/detail/atomic.hpp:54:0,
from src\protocol.cpp:22:
c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/interprocess/detail/win32_api.hpp: In function 'long int boost::interprocess::winapi::interlocked_exchange(volatile long int*, long int)':
c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/interprocess/detail/win32_api.hpp:1198:11: error: '_InterlockedExchange' is not a member of 'boost::detail'
c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/interprocess/detail/win32_api.hpp:1198:11: note: suggested alternative:
In file included from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/windows.h:70:0,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/winsock2.h:23,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/detail/socket_types.hpp:31,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/detail/win_tss_ptr.hpp:23,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/detail/tss_ptr.hpp:25,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/detail/call_stack.hpp:20,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/impl/handler_alloc_hook.ipp:19,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/handler_alloc_hook.hpp:80,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/detail/handler_alloc_helpers.hpp:22,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/detail/bind_handler.hpp:19,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/detail/wrapped_handler.hpp:18,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/io_service.hpp:24,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/basic_io_object.hpp:19,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/basic_socket.hpp:19,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio/basic_datagram_socket.hpp:20,
from c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/boost/asio.hpp:20,
from src\transports.hpp:26,
from src\packers.hpp:25,
from src\protocol.hpp:26,
from src\protocol.cpp:21:
c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/include/winbase.h:4096:34: note: '_InterlockedExchange'
src\protocol.cpp: In member function 'int32_t agnos::protocol::ClientUtils::get_seq()':
src\protocol.cpp:281:32: error: 'boost::interprocess::detail' has not been declared
The "connect" method of "Client" class is a reserved method used for client to connect the server. However, user defined function in IDL could have the same name "connect". It will overwrite the reserved method and make the connection failed.
also applies to other libagnos implementations
rewrite unit tests. we need a better, nose-runnable ut.
need to implement the HttpClientTransport
class for java and C++
I've got a potential problem with speed of calls between a client and a server process running C++ code under linux.
The issue is that I can get a very low throughput in terms of number of transactions per second. We've tried C# on windows and can get 10's of thousands of calls per second when running the client/server both on the same PC (localhost) or across a network.
Under Linux running the C++ code, I can't get anywhere near that number of transactions.
I have a simple loop that performs two RPC calls 100 times and timing this with the Linux "time" command. This takes approx 16 seconds when running the client & server on the same PC. It's roughly the same across a network.
Running the Linux C++ client against the Windows C# Server results in approx the same slow behaviour. (~16s per 200 calls) Running the Windows C# client against the Linux C++ Server results in approx the same slow behaviour. Running a Linux Python client against a C++ Linux server results in the same slow behaviour (~16s per 200 calls)
It looks like the Linux C++ code is possibly waiting for a timeout or maybe there is something blocking, waiting to setup a connection. I'm guessing here but the CPU barely notices so it doesn't appear to be a lack of raw CPU cycles.
We've been unable to create a C++ Windows version to compare C++ vs C# and nor have I been able to figure out the relevant python syntax to create a python server under Linux.
If I can figure out how to attach some sample code to this issue I will do so, otherwise I'll post it here shortly.