From 780b6592103f11dee438128250863edf2d682b7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Fri, 25 Nov 2011 22:14:36 +0100 Subject: [PATCH] Zeromq hello world plugin. --- package/linux/dfhack | 2 +- plugins/CMakeLists.txt | 5 + plugins/server/CMakeLists.txt | 32 ++++ plugins/server/hello.cpp | 39 ++++ plugins/server/main.cpp | 75 ++++++++ plugins/server/zeromq/libzmq.a | Bin 0 -> 250554 bytes plugins/server/zeromq/libzmq.la | 41 ++++ plugins/server/zeromq/libzmq.so.1 | Bin 0 -> 215028 bytes plugins/server/zeromq/zmq.h | 269 ++++++++++++++++++++++++++ plugins/server/zeromq/zmq.hpp | 301 ++++++++++++++++++++++++++++++ plugins/server/zeromq/zmq_utils.h | 64 +++++++ 11 files changed, 827 insertions(+), 1 deletion(-) create mode 100644 plugins/server/CMakeLists.txt create mode 100644 plugins/server/hello.cpp create mode 100644 plugins/server/main.cpp create mode 100644 plugins/server/zeromq/libzmq.a create mode 100755 plugins/server/zeromq/libzmq.la create mode 100755 plugins/server/zeromq/libzmq.so.1 create mode 100644 plugins/server/zeromq/zmq.h create mode 100644 plugins/server/zeromq/zmq.hpp create mode 100644 plugins/server/zeromq/zmq_utils.h diff --git a/package/linux/dfhack b/package/linux/dfhack index 430c74b32..7cbcb4219 100755 --- a/package/linux/dfhack +++ b/package/linux/dfhack @@ -35,7 +35,7 @@ fi # Now run -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"./stonesense/deplibs" +export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"./stonesense/deplibs":"./hack/deplibs" case "$1" in -g | --gdb) diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt index 09565b8ed..3f8859e7c 100644 --- a/plugins/CMakeLists.txt +++ b/plugins/CMakeLists.txt @@ -25,6 +25,11 @@ if(BUILD_DEV_PLUGINS) add_subdirectory (devel) endif() +OPTION(BUILD_SERVER "Build server." OFF) +if(BUILD_SERVER) + add_subdirectory (server) +endif() + OPTION(BUILD_DF2MC "Build DF2MC (needs a checkout first)." ON) if(BUILD_DF2MC) add_subdirectory (df2mc) diff --git a/plugins/server/CMakeLists.txt b/plugins/server/CMakeLists.txt new file mode 100644 index 000000000..e8f26c60a --- /dev/null +++ b/plugins/server/CMakeLists.txt @@ -0,0 +1,32 @@ +PROJECT (server) +SET(PROJECT_SRCS + main.cpp +) + +include_directories( ${CMAKE_SOURCE_DIR} ) +IF(UNIX) + OPTION(SERVER_INTERNAL_SO "Link with prebuilt internal zeromq lib and headers." ON) + IF(SERVER_INTERNAL_SO) + SET(PROJECT_LIBS + ${server_SOURCE_DIR}/zeromq/libzmq.so.1 + ${PROJECT_LIBS} + ) + include_directories ( + ${include_directories} + ${server_SOURCE_DIR}/zeromq + ) + install(PROGRAMS ${server_SOURCE_DIR}/zeromq/libzmq.so.1 DESTINATION "hack/deplibs") + ELSE() + SET(PROJECT_LIBS + zmq + ${PROJECT_LIBS} + ) + ENDIF() +ELSE() +ENDIF() + +DFHACK_PLUGIN(server ${PROJECT_SRCS} LINK_LIBRARIES ${PROJECT_LIBS}) + +add_executable ( helloclient hello.cpp ) +target_link_libraries ( helloclient ${server_SOURCE_DIR}/zeromq/libzmq.so.1) +install(TARGETS helloclient RUNTIME DESTINATION . ) \ No newline at end of file diff --git a/plugins/server/hello.cpp b/plugins/server/hello.cpp new file mode 100644 index 000000000..26b157c10 --- /dev/null +++ b/plugins/server/hello.cpp @@ -0,0 +1,39 @@ +// +// Hello World client +// Connects REQ socket to tcp://localhost:5555 +// Sends "Hello" to server, expects "World" back +// +#include +#include +#include +#include + +int main (void) +{ + void *context = zmq_init (1); + + // Socket to talk to server + printf ("Connecting to hello world server…\n"); + void *requester = zmq_socket (context, ZMQ_REQ); + zmq_connect (requester, "tcp://localhost:5555"); + + int request_nbr; + for (request_nbr = 0; request_nbr != 10; request_nbr++) + { + zmq_msg_t request; + zmq_msg_init_size (&request, 5); + memcpy (zmq_msg_data (&request), "Hello", 5); + printf ("Sending Hello %d…\n", request_nbr); + zmq_send (requester, &request, 0); + zmq_msg_close (&request); + + zmq_msg_t reply; + zmq_msg_init (&reply); + zmq_recv (requester, &reply, 0); + printf ("Received World %d\n", request_nbr); + zmq_msg_close (&reply); + } + zmq_close (requester); + zmq_term (context); + return 0; +} diff --git a/plugins/server/main.cpp b/plugins/server/main.cpp new file mode 100644 index 000000000..061252df5 --- /dev/null +++ b/plugins/server/main.cpp @@ -0,0 +1,75 @@ +#include +#include +#include +#include +#include +using namespace DFHack; + +// Here go all the command declarations... +// mostly to allow having the mandatory stuff on top of the file and commands on the bottom +DFhackCExport command_result server (Core * c, std::vector & parameters); + +// A plugins must be able to return its name. This must correspond to the filename - skeleton.plug.so or skeleton.plug.dll +DFhackCExport const char * plugin_name ( void ) +{ + return "server"; +} + +// Mandatory init function. If you have some global state, create it here. +DFhackCExport command_result plugin_init ( Core * c, std::vector &commands) +{ + // Fill the command list with your commands. + commands.clear(); + commands.push_back(PluginCommand("server", + "Inane zeromq example turned into a plugin.", + server)); + return CR_OK; +} + +// This is called right before the plugin library is removed from memory. +DFhackCExport command_result plugin_shutdown ( Core * c ) +{ + // You *MUST* kill all threads you created before this returns. + // If everythin fails, just return CR_FAILURE. Your plugin will be + // in a zombie state, but things won't crash. + return CR_OK; +} + +// This is WRONG and STUPID. Never use this as an example! +DFhackCExport command_result server (Core * c, std::vector & parameters) +{ + // It's nice to provide a 'help' option for your command. + // It's also nice to print the same help if you get invalid options from the user instead of just acting strange + for(int i = 0; i < parameters.size();i++) + { + if(parameters[i] == "help" || parameters[i] == "?") + { + // Core has a handle to the console. The console is thread-safe. + // Only one thing can read from it at a time though... + c->con.print("This command is a simple Hello World example for zeromq!\n"); + return CR_OK; + } + } + // Prepare our context and socket + zmq::context_t context (1); + zmq::socket_t socket (context, ZMQ_REP); + socket.bind ("tcp://*:5555"); + + while (true) + { + zmq::message_t request; + + // Wait for next request from client + socket.recv (&request); + c->con.print("Received Hello\n"); + + // Do some 'work' + sleep (1); + + // Send reply back to client + zmq::message_t reply (5); + memcpy ((void *) reply.data (), "World", 5); + socket.send (reply); + } + return CR_OK; +} \ No newline at end of file diff --git a/plugins/server/zeromq/libzmq.a b/plugins/server/zeromq/libzmq.a new file mode 100644 index 0000000000000000000000000000000000000000..5efc8a10f4d39927fadf3e9796ffc56faafe30d2 GIT binary patch literal 250554 zcmeFa4SZZhxj%lAY}zd@?xHIesIX{+RH04Uv?OhSZMU1Yw1Lnxr2;j5OKGq#q1i1( zD5P!zIUZJ`f^z-%(t5d9{EOOqEfs|e>5EB=z1NBrs#XkIrE&Z7MyaJjFZq4Hb7s!Y zp6n(mE$IFIna`d*bLM&GnfI6HnR#X|u3WNi*~+WV8Xw9ur4uJim{3+ec~W^OR3bq7 ze<)Pupf5hlfEn*5;J~w6Dk>C(#b>Q*T>8n?x7Dv&a{01VYnOdu+}iQF)7sUmm#kUt zc3iWjVOgxcxuLnaaqXH+;PQrLYnL~yb33kYT-Gqat!eG5RW8TI=2)gn!8*%Xrgu2UR<3JU;!46NZi_d>T@hNnq;b{KwHq@1uUWFXVR`nHW(#g@Qw%xM zoJpf;Nuw)2nr>NLzpi0fL*sgPP7%`Fux3CG3U?GwgDZVajZLm(49pt3G_0#%x}@2S z8h7V^Q@nX)X5^7~P3}lGH>?_v(OD})bK@;*mLTj*lFcF=S>n@t`;w+i)Y!77`ekcH zb#qf8XcekU!y6}7 zm(nrIx4#q^9m#E%NO*1HXjwAa*FB@iLl@IibmU}ze}7wN{CunW*c0LDe&f~EeddpM zyna#Mo^yVg*j;whqFvpdA|eaSEwsUVFlxU8^4rI#!QJ~F`|V*u6nWuuMF--SI9hBj zI%dXCm>W;}OU)hT{!x3(pT#y>aj*FsYlOAHWB%9JuJc|<^c(BLbbPn@agXp$+DDKf zc>5S8Xq)qkY?xW)H5d4-MaQi832Wm?^XQ^o$=D^vrZ+-cMjE$2QSr;$xAA+Ow_*?9 zxBshE?X{+Pt?PZMXOVqF(oa3oL4Sxp@-JvD@*?U5X6-N{7V(<3zQpbza#5uJH2fQe zJ%%i6YBJU>3tf3-sKoeibEx>k%~L+Sd@QnmW+XBtR9v?-z9tqAm5nPKH}UeaxcHhh z*8WDejb`4#(gcv#-qU<=_M z!ZQ+&+g}V$C3x=EVe=9NWANR9XDgm3b=ZRY3hwnJ3K=G0O{hy(>F}9}0>btYo&{!% zYhKwLTNhih)EKv}Vb!=;!-kkKZuyef5@X!b=4Lpq<;OVSl#VMk#x27@j9$tZw`Ogu zVcg7X>n?AOEm`&n+jGOp`W5RiP%->r8b9z5EyK=R!wAFvCpt(IkneZlJxV#^y;5YX z?Lc%kQ7@kN;o-OJ4vdm~d}u~AWqe;z?&?ohyFCqnV3`b_I^Xa+m;VR61tiJ6FCieZ=FNv{YJQH5TGy0WH#~ zaL1QcIQ=s%L-o;f#EJ2O z$<;2lsR{!eX16MTce`i-OgE}Nx!XmHjs&~H3&BqMs=l|tUW7*(!uX7pZ{_}ovdA}a zXs*OVyNW*X*jAKL;a0#wukU(#*`E?GTYWzS_nCNM_M~qYMq3U~SS;ZBTMU5Z2 zzAv0)hoH@M$`YU z=>F~~M*_pF+igYlf|X!f0~x^jG^G7-zqIlkK-R zYQG0gp7c2!`;%zEs`HsqAM(-)&$T=qPKPltzeWDe1!mz>Aa6zwsDvPCVP$8mmJ*EV zm5QclkDPbOx!u5Mt>|DD|I=1_{K=;7NAa%sP3!{nYbeW#NHA7zjbnYQoQCvh zvifD>%|$#k+|OFqc#|LNH*fT&9#30;!a1(U?@G)Pt&P59bI2@nk~>{b?y2Xt$d^hP z-`e2R+Rs zsb_3>GI|(Q$(xJ>ST1U!j_CC^kcQ5)i2Pb*#eEH1f{ax3aA{|9QKz-htKxzRkm$?< zJ&!0~bOLQhh^gup>PK{&UG#O^%vg~p`Tc{0&oA<-h$&J?{0!x$>O9^VRb6ib1M9q< zKI^^%2m#cBY#^{2=FO-flAqE-yF|G$G-hJ9&{7>LEy$sUiG|FE_~nV+t3)2t=N0JO z=~ML>%WO)b$LPHdSt^n*cnsv{rlXGm4*tnn6xh@ynti$!4oJVA-i(YufVtA2jK0kB zWtR=4BzjAkbXb!cTj^-3s#<`0XGYsm*UY*Ot2SUp@3$i8>L0dPgCDdaL9=eN8U1oH zGR7wMh$3c1LRM{=8GY1>pokx{BE@EOtABgsvi9gUD^gNR1gi2om$#qlfUSYmfdKuLb5^Mc(%4i^;Yo z_OHYMNF4ETP&fQ-dzrt{*0h5q9D068FkI0t7PS5f{a-rY$0(94 zPtlwbZ=fmI!y~GE!!c3XcKs5?*=>kULXvm_5$I1H6d|CsHzl5BPgdh?d+wfxl68mm zNT*sAR$Us)|G>>4kgWTIj@dg4ZVGv#j(i~iD#pF%;KQo%Ca>u?XL(b}wDr-n^;xU# z5p!3%N3ON%TGL+_X>~+Zb_}7ij-*~tYS-Vbw3E zKEs}PTE98no7$1K9x`{OK845B=Nog;KPMxh%+c@+^v~={{cXpQ7F6r0k$}JTEVSHY z%}FbK(yR@NPQvaQ*>oK7i`f-x;H(4kf}J0&_3U^pe=1tY7uZSrTifwp`W*76&@4ey zO6>HYv$i%K-tlsN!JTte4Kqh#Qk13`iz>TQ-NvyH8LQF$*3T%K;7tyj0joAB$ObhU z_B?9$T(eKBm&v*w(MHjhwcfRN4M^Mk3nykOWLb&-=gN7bQrl&}nFT%?aY=mvRXDLL zAgHqQkbQgaCj{jIOTeyWHfZ?95zX4ibc@Xp>Dsu_~as-3d{vg^d_A-3fN!H0aT?#5QBzc1p4Btwx5f=tzG4Ac#AZ>z-1vL{@Mr zWf$G4W<_rwdNf%Ne1!%1h<;?&j-Gr)u&vXK%=Nd91;9ea1XTEtFvbua5h!rF{H=en z$2%`xnImg+xuwGNhfTcbX-FX!o5o#-Nv{bFa zr;{p>^S9lJ?C*{qCN1Cv!gw=ae)#0zZr5T|QIU9A7QGMs56g{>&x-D|`+H}0!!}%Z zptlaR<#=K>&jN>#_)}hDXI{ng0N&lexma|6vhr~Tm%7YukLi9zbpVmM@YU@pCsyLW zJyYWc?*53~Ynbt#_)qKz>}NlqbpWY7GF+xzL|e9BlxE@pDEV98z(1ku@m9IUnH(#+ zVvxEcB3Nb&nd08xqB`+|lB(XH;{!9+Xs7aRiAEy2qr@W`RaPxIVpx$%ROoa*fe)1V zX+mnt=>s&rR zf$!9AlT7}Tr$#*fwzX_tcUG1jN97)S zLU7Hod8%G`zVGC~oG{tfNTvDg*qvrK#+-`hXhy$%N<>rNB%hk24ka;9bZSaQ9pbD(LXf7bm7Ue%l!EWQ6vf(+wHm$$ z+eWDxO`pS#SitUjE2tm+T(az#7!l-Z@FFZFXE=g5ZC3qTd4luBpnKxzlw zSi+9mAyxT5#r!OTdA?kQ#++U%gTYIPEL08Z z{T(_VwiEyMJIAQJKrxNhJ#+4z+F|#9=80DHLH`Ap2GkgMDL}1)Act9 zp`evt$@61QvnUB6R9|dFn&V2Np`RF_IQHVJI@#dqOj#5x#E%M2^aN7oLLWSw& zH1}+Yvm-S}$u32bEQFY|a5+TD(*t7KmX@d6GxOxZ)^_}kPOHY(_FR0IwWy`yD-7JM$|J48V-nPB*LaVxE?2fj*{`L!ivgtqQ9XV?F z+dd6ub*dyyQ7J?XDl;v2HlME`oS+E_`h$Xlz2#pUpjqPDd%K;b$Stb$ zR_!cvS_v85>&vX#8gp8?6`5~dUujMYTakt4v>8_9W^>vsE3(*}HrI+QH>cIW^UC&V z^YLnIpH_$0t?knmU@dmjZq_Jrcso4?`OxZ?-knH{C9z84>aIC>thCLnJ1Gu_zP5r91 zOO}T&zA|)qsWGj&xnUhQNQYKnuXV%nDIuMh+Az3k?Jf28_Fbd-j^-)j$HT#}9h%2A ztZs_k5h@;QEL**NT^+^R&?+~Oc^Pt^Y@8~Z zug$orUQ&4$wOEwn-d%Pmf<7vd&)GI=l_WoY3~Xmx=Y|h%dYxGIYFzS8RAH}Kp0N$I z!@3)|o=yEH`}?o<-?t6e72WGcC4)xA3(fiF3(4y~u<38yc$B>1?DZe4IMICJrfz<2 zdZ{0~mB#+W_PDyEUn1ho>n(y0$j8~PMfRw? z;);00+gk{5DrNNd=biJpyu#1r8_E2_f5|r<$}eQr82!fBybC`B`;~=%&M&y5u)Uz5 zg`h-1;TH>xEd{Wm)7@y}_UC4`5a@sR(9gdKF}kbp&`9Ie{GVa?Y9CR!d!+Hg$g`1)L$-%gk`ZQY z4^rNX{ZflYw>{@?9fbmX29JSS;;c8AU5QSJ`?0J+`FbXY>9J~kW>pYv$XqZ6D}QFy zXmB6qf+7x^RT%q5n+q;8tBNVp!7(<+R9K&wPmFKMsB2v}w= zn8j6-DvX1b=7Jit3WMMbvuZvU;HwsL+^o8p3-DEoEsUF0%i(ijd(}$3KGt5IqCFKmF#p+MPkwg#Ki65j)Bp5ynCXnL>Uutkw)w)2|GudA zTO49`Im3mN#o4WJm$vwm!VSYjY)eI6jII$({mK6cE+aJA@A z%HM%8=m#uA%+#h}riQrQaBOPbA@ir}3#{rxR=mfK>MsB1b`<~E|MV-ErxjZ9Lt~$B zJHBBTCTZLN6z^)?Yb`p2Wv1ANF;~Sni$!FAE7yBC<|=VED$aX2O|0wTgz#F#;gI=@ zsf!NXKGoVNgF%k$D1O%e^j}mkFCv)BxW58BjJ#dbF=erLD{%6%ok>L`Q=L||k6Vwb z52RYK@q}A|ZZ5)%;s7OUM8b-Z4>+RJQ?cQc;&4~QlV=uyG`3o#DPv0@Y0L+W>NE{* zvzZIoqgak(dsFKlKI|B3`&De3T@SE)URlKIYuA`aiRf0XX0N?D<3p(NYLXG3gd&!E z$B^LNO4hDA;>z^2rU+PIfTeCPGet{NOlnvfF|}lS5DDZ z-B7&nQBVMW2V>bZ4vyQzc2ToWG>5VKO)fX>cqtz(MGT&s{strr&u-dGoHDHzjmk-TcsXRiWx=^>y<;rfL2RM@ax} zVKmzZ%usp)=MYKL6QI9JJRv;PS#iS_(hcTD{%QWk@EZo<%@xWhyIO;!h1dU2|b{La9#}9#dte#SQ+nQbc1onEd;mC zcxe8WVG~(}J=dnqu*(=G%uReN`1~|{zJ#+!b>OpYcnD50316i92fXTDPt|>p;1K8G zVc!cn%stz^PYF9>lX+qoL(lIdGc5e(k{9^SyyMjO#wY!q7GR2Hs9uH5zxp zy)P)kNoB{`Ouy&La7qzjm1i2A-N4z80GAE!3LYedm z!Ti_9Cdb!MLp-`Zt+Gax+NHBs*2YRpm#ti~t{(cdjj`t0E2Fhb@E47gM(53`oltL# zyJgw3`i2e58k%DDP{*Ot}8scaQg)!~(~qDvGw)zF-!IHEpUGY6iW5bD=J ze_bdi*UqR%ekBCAPePOAWK1@&7`o%XG@rHIkIIkygxkcpZ``WZ}$romYzv^s}sEoJrd z8k#1c`qm3E7mf&Mf^co^x+S+XM3DrW-ViNL&?qeh4P-IoZ%bCe>zP%OL$_zJ>(q5e zCteH(X~bdz>>P(jDM!3prlddUpJOR`uJ_^LH@a+LVj3+v5Rc{pJj5RgF9aOYQ@W$1 z_icPDLl~cl@~zTQ@)i20Vx+f);UG*KV0;-78{0`+qmeFJIh6n^G8MRDrB%8zoxN|K3 zNEt4}YXhF%-nIcxl@-7uetdUHdPt5i#G`*@lsylGX)lq0$6etP#^)@FC((>w08clH z-h~oRg?k8i^AQ(im=2orVab&*)F~$((@DCTccY}#Fp3os3CGJAUzT~G#!$Me6U&Bw zp2j}vF~XFI|6=1khTwF>7ylqDaG$4Txr~CvXpbf)T(bJG}Vz&9L8ImL2`E+_vCx_Iip4(g%}99|YpfLLS^lkZpoKC8iJ4 zb0hURa~Ir1O;GVu0#_ls84al*5f~9Ad)w>i4kwN(IEiM1W9=yDh}T$xLY5pr7)en| z_*PnMB57EN?=E0sx)UAvZx^ zmbQvphIr2GR%uoHNZ}&I%&Eh+?CO7S{5KNee}CfhP%ev7RMm!!W}5`J#_o9cI| z5%xFI56$o*?raxXn7dq*B)2;;uzcdhR)Qt=Lp)M5uhPkNDX&lLF2V^d0s{j0h$hh8 zm8^R;L!kTb3QHIJem7ZnJOk^iX<6?N)7GD7?%n?f$)C`G{3%oUlRIC2?9P`TX3LlF zyYuB=)0vTxFJcYh43+mkKzblAun*R9PB-I1+?Hp2HxJ*r+}S|>o`!8dSNQBF za>3}%ekB*2eNZ--&1qlZDk?CkKo-N9@-&Q-l_)->8A`T_>`%*?U>(D6m|QZ_BEa}? z&}>1OdhmASRMm;X8z}^Z6T@%CL-`+hIR^(;!ZzdCngvGM^heoVC*B?o%1RCf8J9SU z2~Nc0N^%D#gq?VMFi*~g$FO{$)qzMo2fKqK&ul6NY^%pGp3MTA0T|_rZrCZy*fNC! z*`;F+$3K5T?s|}x3(T(_3=4-$rRmKc1oO-a3y_D|Y{2$)|P(*Tjml@{lk?pGj2441-a8-31vX zBltS*zQAsgnlYK@@PUiN;^2F&Kyps8+?CKj&)3=+=b3$_otP5}T`KH@iFlr1Qo6At zOT0w8lA7kgC8n;UZl7~#uj%us!|jn!vbi|1=WcA1R1C(>bDiQfi+DvESNM7>pVsbHx8$ssG6ERGb`(jOCRGH0+0}S4Rk1ccoe`es4@dhrbL#^irRC;F(7v|G@-f zPld?*N^D%_h7lC)d70+}Sc|afLL3>{;osiLENHf~K(b-Tf*Vv8_*=ipRJpQ&-Puq% zAhJoZfPx&W%MkS{9W^^YGV$5KGi!|-UsW{dCcaN58l`U^i_q)IlA%=~*;~r|w>M#= zbuuL%W^-UkZ2nT)J|d%SH{}57LxRkd&|Ag%E)t3jA<<(Z-B$FN!d1nVp7#$zpBk~l zr2E#;DEkP2^~Y!+s=tOW&TR8`i>ZVa#;Hg0%*SEz zc8ZRAi}_`ROqtEDWbiAlq2I9Qqh-ni&#JDE&Azs_UZW9>D(c$%4DvniCRxQ-z)C)$ z5)a1>uI)H5@ChM&F2vJ>=LS3u4D0gM+!g|-5T3j6?8kFX9{v>V+4p*8-&c@8u?pU5 zGv0lGPtU+fc&@v*U`XDJZIvTl7!w@EN6d{>IEW|VGw^H%yoPX&eJ=QNIAIgB4QHY? zI6uRT7fdn#Trf2+bMtcy_bEJKMCiwOi}6VFOZXu?0c3)JQ}C+6PnDm_&Oq^0UA2p$ zbco6|qr|=KfSVGA^kr{W$mHg@h@IxOY~D?)$J$b^WZ5!-8NO{!ZAgTn;;FA6D?V|E z4562ds7NMsXm4kjgUrT1{)&x98n#awPO)`1DzFJQs-eve!hA=*ge^h+UEZ~I|lEmRByE)>kXm!9M+8%*0D!tQS&y`-Vl1_T> zgk7iC33{Tv!ktFZyB+pi^yseg@7u7Go=Wc_&?~~XGQ=aiQ@&MtdGNLh3m|7aU_X&7 zTy|F~++V{^x{6)^^z_v+!f1GkkB(OaJkn8y^k`nglPg@Ef4m69bb2MAr;lHX9@PeO z(PKPSI_A0Pk?+5h5t1e(-=+(1CGfK4U)vzzlEqQsa(^Cv4xhdO^onFyd=bXyM-q>2 zG+zduZiqwk3yG)7gLshNI!5Ko&*7FUUpT&~_|YqdA;;9f6VFOfMp?&KoZ9+pY02cW z;qvJZ%fu)?JP{q|OTACG=LFZQ3p zU#ed6U(u(Mbz8fmPqBi6P4;p5m;NbBOEX&=W?9i~?}B0^H5H)0aw6}%&R6#*a0(iN z6g&`A*NSW$f9oye!vFvYTTRE|JMVY^>R=5M-^XeuPDb&!ZGu&u3c7;px@m7xi43Io zCI^jY8ga80&$8_C^tV$7RmJs3(1%Hx9U={k?`h5tIZp|Z4$QY%0o5Eu?!O#zp7J(~ zg(6-ehUxynJr=t6F{n1@9t$}S)eZ4z++$%byby3nq67~O@rrD#_$Q3dSos!?_~V{i z-4KW7N<6eHF!3r0kVeIiN3rRBjGkV0Un;$%mC?t5-b_i0FBR_i($b7hW~eJi=~E6C;LEFyBfGftS2)An^QFYD^jTzSgo<79-z9d381NQm69$|h8#LZ_ z?qLjM$H0N;T>CvxBBk!V5%MN+T9_>|iC+ZKs-re8#VC{>LhvP0=LE_AOb?RfK4_58 zl;h!rR6|Qk9Ww388<7eN8bovp?kj-UAtRrWB{XOH8I68(E7`mJ4 z_9j$LYj(h@37XYMlfKVb=b6=qp?!&KkpjuehnTJA#v^&JT7Gk5AL{c6YvWP#jsQ+A zZrOmg=C`W*%=41hpbZ3L{*0vv)W?lStc8KRSK-sTx~(5H>jTNMuUhX`?V_%a^>tyu zJj=W)wbQ;=YL-|J31Be<$L`AwU$z3Vn69*T#)^+udGbWljGdhkqFQGVu+-rW>mI6K z@}TmKhmyW0tkT3E^Ptp;wb*SE}SiE zO-5@M-miuCc55VRR)JXq)!4&0r{Byk?KH3GZKT{?wP!I8mUjq_| zycUWzV^ZmFp`=%+veXYK43p20Ttmy9qYZhw<8g7Q@o1DI75(L@;;6quC%hES>7#$u zk>a>BBH~F_CJ}$M-hEbOyEyC>)nBy28v@B-hcyL<33o^L69=v%%=d#@j;6y9b$Aa{U`T3mRm z(LUgVB!vHRXVdIEI_YOvCp}#gGHqg=W-{x;z&&V!(FeM{mNTib{`Pg$^Qv!HkDKe7 zDb*ar41@ontcYf){cE|_ap?DI{wW?FR?;MY5XO@Y7K3{Wp0n`K-%NSeAbFM!`Fu>m z#65)b5*{quh;^H-aPPzORUJOdhBI8zKjHm89S%Eb)8yK3M>zST4s?(Y;w@MQl_qV? zhj-?&pA@nm7koL~I~DwVe7NANK)VL%_!>YCtj^YV4#DYuz`16`y*~~d>snA4uHwQL zEyKl8Z}O@N!8uL_xfXt1q+eNBq3%yilhCtaLDL z8QL)_c}c_S#&$<99cr;v3%0=%zfGc{RbkQ3FdV0P9 zEDUzyXXIbG3s1%2tAm8gdZWT+|4-T_HhH54^opdNFT(izMB>qnCI&p+5Qm0qLbR*$ zC7yoYtjZUjf}bm2&VzpyKhjcd7gpmD6#oCAqcqAo9+yy_io9@Q+3@9sqh&-XH{xpV zAp1i@a(^iISE@6axWBTwNO4#=R21BM0JmOHy1<(+yx`cJy9UUvY1dE-K0|p;Hsx)4 zgA1tZHx#_k?~2Se+NXKUJ~#!;*V?BQ3ai)rOZ)XBleM$D zrsWx3)AI2Y0B;1gcoyRdYHS|k^hxgOOZ42+9=V<%wKcUTFVUCR9tjHBMlZQ$?7swG zIg3c3YLj4T>m+99Ch-A~P#gEs`vYD3UA6o|;&bhC?ZVYe*>}1Qwg0e4aadrsGR0@E z{f7#gAqiBTRWiWuxb`<@p`W?`a8SB$4ZV#0de~N|Qo%ijV`5j?*^rDBbw@%dO=pjx zd#9opXk_g`0pw+hGz08Mz{%P&a=E^!I9nB>5LDo-K$-Iy!c2veL%yo^PyWNlf4F-E z%L^aMGpxL^_FlpC7mGj{yFS?a1y!ag2>}J(L+%%(%-`nX8`dnt2`cNvVX<#&?;zu3 z?;n(;hQEJMdC>L`Dkq!`lZ^#^3;E6v(oub0~7}Qdc3pY zkk6qRiXYqz8sufg_@~0s_(2YsHH5R}xZum-RHNXW6lidM3b7I1#dzGXkQ^Yz3YYQ+ zG{*ZWJext6^2S_y02gEM6>v^am4C#0Nd9eb7R%ngr;0y&jmWj>ZwOxlHvN$;)VM?( z_mXYvT!kVF^*x1Of1}z1m;ub-jpQD{p%6;T6h`*MW(jmSUNWMh_5cnU(i!I3xSYyr zrg(%f>_IirgIx?6cyr3A&-rRNk(Y-4)tt}Gv(49N5nX+{dA3}5A^0JERCQs97nXLu zWD_waOS?+PX5fi7C2>_c*c5W5gMJx5&cj#X(eq_L0QyR^qPG%wx#*FOqDNU3=_y_@ z1%S@O5XR@*F1!=KD}tLcq({6?`BwQ70%NM;1dzkeu%E~kKZZ|wjHi1KAa#d_vj=bn z@bq+$9?ffba)rw}r^0pb0jvQ%#zz@N&%FmwuYZH>0bC4vI&U13gxz}p+kuxY|J-{3 z^>BlrrPATv1NboL6{$qvt;*NE2k

4tbT?md9S+n|7et9)_q0o3Cs#uwl+Kj~HH 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ðFD3vZp5T!-V&hnny6C-ycuxOL+gwBMk^{>ROGX5V6F8 z8t>;Z%wA7e71Ue)4AH+3OMJ1$`|nudc+C6T$pTKBQG1K`KE(Qat1*Jdjkx+4r_8H) zoO*d8z%ih9sq3knOOo~ZLb=MTPL>>vSfXXG7OjBeWc;`-9Xxw-*j2feZ>E< zf9$!hqv*J}=Ire6V!(M{TaLsIv^{^T;15ZDM-|vPy%rBfte3W(4Jj)+VhnKC$u``p-g9zG>_$!#73mrJzAB}Qd z&2llF`z)?@xIY}jylAJfO`N!^u2J$ zw>ofEcexJX{ZMrLGs6eV!*?RQ6|sf;HbSJIP z)4oxzfTMyg3^nSzN#DV80C1}dRdK32oal}7i_JvTv24-0k4`;SF~`xTw`P@$8|BKr zNN|ZF%{;;t#ZUo6tEPgU&k1_@YCe5N{^Zqol{BGF)?Q&PAGmXnBgiwIBvk@crZAahjft6>YN%YWSF@;(IfYx%iTh&A6&1hS6Lcfolg` zQbNp+x;ZCQOP6>x-D@NGRskQ&r-pDe-4oy=eJQ?71m8N~V;@w5U@@PDgXw5L+6*{t z0|IEeoYxsg>zQzhgK+9@0DueE54a=&tVvq?4S=gwFK+{kmgC(PU#pF`8~9SzO^a#q zyU@bXkLD2ITtgU|DCSAs*q+Or znm+Kt)(fY6hkl*S=xk;HJFcd52bF5apknGfQF<2)kEi7`o2p+B^cf_hLNah058yAP zvchmc9?J`YGV_hhUoHm%D2D)OHCj*|qBas)pL02hGRx)SJ}~Z!Omc!lnRh17x>eR& z65qpA5Yp6XY$0T(PGVq8&IT1@I&$s^|2|~z@N71>kDHsw1G%BfNR5YpQ*%-2Hqo;9 zVP#jj{>nGV9dT$;{Gjq0ydQ>rx52V&5_g;AQLFX1MxTldUa1d_kkp9iZ!5}6isdo+ zafNQ2Y_v$Fmut!8L%6z$?<9mTUYFE>ZOKp!f|tdF|NJAS_ez#m3A54*){~W6uXdC2 z%biLca`Bqp86K6lQ}AwRLTk@7iftf~xVlYKyqm}EHWS}3ME%tNr~HtKU*Eea)3ZUZ zqzSK!B4e{ea=RIlc@(iYFplxCU^Is4Ri&sSGzcU+=KqQ@LNY5_34KjGoGQ=L#Sd znBxkVURidt60iArAvn|@3~7)i%4t*S1o^}In5uVx;#M=mGvC_)F|rz0}7%1 A4gdfE literal 0 HcmV?d00001 diff --git a/plugins/server/zeromq/libzmq.la b/plugins/server/zeromq/libzmq.la new file mode 100755 index 000000000..554fd31b9 --- /dev/null +++ b/plugins/server/zeromq/libzmq.la @@ -0,0 +1,41 @@ +# libzmq.la - a libtool library file +# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='libzmq.so.1' + +# Names of this library. +library_names='libzmq.so.1.0.0 libzmq.so.1 libzmq.so' + +# The name of the static archive. +old_library='libzmq.a' + +# Linker flags that can not go in dependency_libs. +inherited_linker_flags='' + +# Libraries that this one depends upon. +dependency_libs=' -luuid -lrt -lpthread' + +# Names of additional weak libraries provided by this library +weak_library_names='' + +# Version information for libzmq. +current=1 +age=0 +revision=0 + +# Is this an already installed library? +installed=yes + +# Should we warn about portability when linking against -modules? +shouldnotlink=no + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='/home/peterix/zeromq/lib' diff --git a/plugins/server/zeromq/libzmq.so.1 b/plugins/server/zeromq/libzmq.so.1 new file mode 100755 index 0000000000000000000000000000000000000000..1bbcc5f3c89bd6f1a9e1a5ee605fc82c5de4d3db GIT binary patch literal 215028 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%0AJmGsXQlySMzKMC`@X(i>m z44!$NY<|m}7F$i&8pBrXgU>6wp7g8S?Hfy}r?Y;gU3z@`8nz0tRfjG4Nd512>aY3- z1D*H>;lJ=U{MQ_Q8EJZMq(2CfZp?`nTVqA!N4$K>IM2J8IubHk zzv_!K=Y(a*`IDDNn{A_gZoxj|!Mjm;s(p22w`LB^`&Sx26A zo!}SwiNKil0zP--)P{*&jzLi}~+wY`ogm*eVdd^Il;Xe)9PxWuwd&!aZ%|ly9 z&LXm3(|uUBmkFQTp*?@4WnJnQveI&gFLb zdv?)ZA7MU%t>Dnv#9y4E6`n;nFGU+$Y}ZN3kw!VvD2LQZ&Na?8&eb}Je->^cOg#KV zHhVE_=3!6#vv6Z@V{k**&La=$$6wG6#_E~vVC3U3?m$m?r~NlnfL+$W=>AFe?}`0q z$d_d4zn+g%#wP58X`u9<_?2VXtJi&jw(lfA=8e%xIq+ZqTh}Mi{G-<=l7AWbH<5qh{zqu{gd!{ z@MZ9c`zPVD;R@lR`=@B$QIz((q?7jJ!?m;~dmTBGy?9D1mp0f);rhl}k2~1Q%DUWX zuS@w(I?<%<$43y{KH_@~?o_r8zw_~vZO!ZBj~^>9bkX%8Pw}skXBv4nk*78P#s70& z$9dxTY5I~~e;Gm1`djNS^|$;O^*`Px?>h22%s3{z)A^Cj4-~xJ{AfZm@q6qN`UTf; zzSi~yk|&R@wN8T6PtGU)KpS(OSigIzU%xUx66;b}zh{FC+AI^H*ucWe`oBcyvNzUh|ey}!Pc^OUjF}NeJVSPw#}jq z!6yD0RkHO-%8^Gonka|mvpLV^ypD6VPO?6U)_^M$E@6EVE)A{_F1kL&`YPc-`tuRm zM?TV{(oS;rpIkr4+A+pjWL*Ew+wVVF-zKi3Z&(ivLLoucH_3B|Jk!Y2>VMArWj*9v zZ7ZqYvv1S?GPjNOjNc9Ky!`Lf|5*Dg{Ekt`OCE~x9^RPcAw&921hv21tuPXJAw!gLSVEvU((^|&bXG#A# zyL@GzdHeFEp-Eg{<^FLGuc*nm5SzTEp=D#UlQ_92EPa~zk@C&wnT>qh#)s^9I!>`3 zO=^!ic+kNC2VZpXHx3>JPaxfy@8Ml&Fu#~Qz^Z#vG#|JOqyOY*Eplhsd$Pm4n#`fL zh{DVTpCa8nFpVHSZ*raO^V&(A&iP3MBwF_d`?zR{rk%`r@j04?DXYzK!L{iZTKDhe z?Hg@^^ZPH*w70;Uq!9m?K7sX8!vE~kDShL7_R%)?6AlobCcHp+neZCnEyCOnY1(Oo z#f0UA)r5_NZG>HfeT4f72MA9SULd?oc#ZHDVJ=V2P9rQPEGMicY$R+W>>}(V+)p?_ zc$)A6;bp>WgtrKDZz4TmF=07jHDM!R8(|k=AK`w&0m9RS7YHvCUL(9km|H@6!eYX5 z!fL`s!ZyM#!al;{CcH*?i!k?Q(i0XFmJ?PJHWIcGb`kaw?k5}|JWY6k z@G{{w!dry7JWM=|u$Zu%u$r)uu#K>bu#a#*;Q--j!V83#39k{}BFrr%Jz+6nIbk(n zBVik17hxaae!>C5(}WiYFB4uPyhWH>MtZ_x!g9iD!bZY2!Y;x-!u^B;gr^BF5MCy{ zMtF-bx198Z#f0UA)r5_NZG>HfeT4f72ME!zc-=MEEH^T5+_a-6w8O|*lC$KJ3v+f@ zXG_nw&oymHLsdhlK2*L*TT)XSs$8&0~LzT9qVrNam&h0ja z>TTw>%KC=t+L~!6rEv9?LDAa>b-|Ffq`Ib>zoE)T{%+v}sDU z6QVjqOU?MAxh6 zy3lo@i{>RZqsPxEx_)&1=*C#{qaVXLkjJ3Xw^BY?^E!Fu(T z^_|?GUq)Q?BRUBqgs4vT1e55BO*JKO|_(DgXcg literal 0 HcmV?d00001 diff --git a/plugins/server/zeromq/zmq.h b/plugins/server/zeromq/zmq.h new file mode 100644 index 000000000..0184569c7 --- /dev/null +++ b/plugins/server/zeromq/zmq.h @@ -0,0 +1,269 @@ +/* + Copyright (c) 2007-2011 iMatix Corporation + Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file + + This file is part of 0MQ. + + 0MQ is free software; you can redistribute it and/or modify it under + the terms of the GNU Lesser General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + 0MQ is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . +*/ + +#ifndef __ZMQ_H_INCLUDED__ +#define __ZMQ_H_INCLUDED__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#if defined _WIN32 +#include +#endif + +/* Handle DSO symbol visibility */ +#if defined _WIN32 +# if defined DLL_EXPORT +# define ZMQ_EXPORT __declspec(dllexport) +# else +# define ZMQ_EXPORT __declspec(dllimport) +# endif +#else +# if defined __SUNPRO_C || defined __SUNPRO_CC +# define ZMQ_EXPORT __global +# elif (defined __GNUC__ && __GNUC__ >= 4) || defined __INTEL_COMPILER +# define ZMQ_EXPORT __attribute__ ((visibility("default"))) +# else +# define ZMQ_EXPORT +# endif +#endif + +/******************************************************************************/ +/* 0MQ versioning support. */ +/******************************************************************************/ + +/* Version macros for compile-time API version detection */ +#define ZMQ_VERSION_MAJOR 2 +#define ZMQ_VERSION_MINOR 1 +#define ZMQ_VERSION_PATCH 10 + +#define ZMQ_MAKE_VERSION(major, minor, patch) \ + ((major) * 10000 + (minor) * 100 + (patch)) +#define ZMQ_VERSION \ + ZMQ_MAKE_VERSION(ZMQ_VERSION_MAJOR, ZMQ_VERSION_MINOR, ZMQ_VERSION_PATCH) + +/* Run-time API version detection */ +ZMQ_EXPORT void zmq_version (int *major, int *minor, int *patch); + +/******************************************************************************/ +/* 0MQ errors. */ +/******************************************************************************/ + +/* A number random enough not to collide with different errno ranges on */ +/* different OSes. The assumption is that error_t is at least 32-bit type. */ +#define ZMQ_HAUSNUMERO 156384712 + +/* On Windows platform some of the standard POSIX errnos are not defined. */ +#ifndef ENOTSUP +#define ENOTSUP (ZMQ_HAUSNUMERO + 1) +#endif +#ifndef EPROTONOSUPPORT +#define EPROTONOSUPPORT (ZMQ_HAUSNUMERO + 2) +#endif +#ifndef ENOBUFS +#define ENOBUFS (ZMQ_HAUSNUMERO + 3) +#endif +#ifndef ENETDOWN +#define ENETDOWN (ZMQ_HAUSNUMERO + 4) +#endif +#ifndef EADDRINUSE +#define EADDRINUSE (ZMQ_HAUSNUMERO + 5) +#endif +#ifndef EADDRNOTAVAIL +#define EADDRNOTAVAIL (ZMQ_HAUSNUMERO + 6) +#endif +#ifndef ECONNREFUSED +#define ECONNREFUSED (ZMQ_HAUSNUMERO + 7) +#endif +#ifndef EINPROGRESS +#define EINPROGRESS (ZMQ_HAUSNUMERO + 8) +#endif +#ifndef ENOTSOCK +#define ENOTSOCK (ZMQ_HAUSNUMERO + 9) +#endif + +/* Native 0MQ error codes. */ +#define EFSM (ZMQ_HAUSNUMERO + 51) +#define ENOCOMPATPROTO (ZMQ_HAUSNUMERO + 52) +#define ETERM (ZMQ_HAUSNUMERO + 53) +#define EMTHREAD (ZMQ_HAUSNUMERO + 54) + +/* This function retrieves the errno as it is known to 0MQ library. The goal */ +/* of this function is to make the code 100% portable, including where 0MQ */ +/* compiled with certain CRT library (on Windows) is linked to an */ +/* application that uses different CRT library. */ +ZMQ_EXPORT int zmq_errno (void); + +/* Resolves system errors and 0MQ errors to human-readable string. */ +ZMQ_EXPORT const char *zmq_strerror (int errnum); + +/******************************************************************************/ +/* 0MQ message definition. */ +/******************************************************************************/ + +/* Maximal size of "Very Small Message". VSMs are passed by value */ +/* to avoid excessive memory allocation/deallocation. */ +/* If VMSs larger than 255 bytes are required, type of 'vsm_size' */ +/* field in zmq_msg_t structure should be modified accordingly. */ +#define ZMQ_MAX_VSM_SIZE 30 + +/* Message types. These integers may be stored in 'content' member of the */ +/* message instead of regular pointer to the data. */ +#define ZMQ_DELIMITER 31 +#define ZMQ_VSM 32 + +/* Message flags. ZMQ_MSG_SHARED is strictly speaking not a message flag */ +/* (it has no equivalent in the wire format), however, making it a flag */ +/* allows us to pack the stucture tigher and thus improve performance. */ +#define ZMQ_MSG_MORE 1 +#define ZMQ_MSG_SHARED 128 +#define ZMQ_MSG_MASK 129 /* Merges all the flags */ + +/* A message. Note that 'content' is not a pointer to the raw data. */ +/* Rather it is pointer to zmq::msg_content_t structure */ +/* (see src/msg_content.hpp for its definition). */ +typedef struct +{ + void *content; + unsigned char flags; + unsigned char vsm_size; + unsigned char vsm_data [ZMQ_MAX_VSM_SIZE]; +} zmq_msg_t; + +typedef void (zmq_free_fn) (void *data, void *hint); + +ZMQ_EXPORT int zmq_msg_init (zmq_msg_t *msg); +ZMQ_EXPORT int zmq_msg_init_size (zmq_msg_t *msg, size_t size); +ZMQ_EXPORT int zmq_msg_init_data (zmq_msg_t *msg, void *data, + size_t size, zmq_free_fn *ffn, void *hint); +ZMQ_EXPORT int zmq_msg_close (zmq_msg_t *msg); +ZMQ_EXPORT int zmq_msg_move (zmq_msg_t *dest, zmq_msg_t *src); +ZMQ_EXPORT int zmq_msg_copy (zmq_msg_t *dest, zmq_msg_t *src); +ZMQ_EXPORT void *zmq_msg_data (zmq_msg_t *msg); +ZMQ_EXPORT size_t zmq_msg_size (zmq_msg_t *msg); + +/******************************************************************************/ +/* 0MQ infrastructure (a.k.a. context) initialisation & termination. */ +/******************************************************************************/ + +ZMQ_EXPORT void *zmq_init (int io_threads); +ZMQ_EXPORT int zmq_term (void *context); + +/******************************************************************************/ +/* 0MQ socket definition. */ +/******************************************************************************/ + +/* Socket types. */ +#define ZMQ_PAIR 0 +#define ZMQ_PUB 1 +#define ZMQ_SUB 2 +#define ZMQ_REQ 3 +#define ZMQ_REP 4 +#define ZMQ_DEALER 5 +#define ZMQ_ROUTER 6 +#define ZMQ_PULL 7 +#define ZMQ_PUSH 8 +#define ZMQ_XPUB 9 +#define ZMQ_XSUB 10 +#define ZMQ_XREQ ZMQ_DEALER /* Old alias, remove in 3.x */ +#define ZMQ_XREP ZMQ_ROUTER /* Old alias, remove in 3.x */ +#define ZMQ_UPSTREAM ZMQ_PULL /* Old alias, remove in 3.x */ +#define ZMQ_DOWNSTREAM ZMQ_PUSH /* Old alias, remove in 3.x */ + +/* Socket options. */ +#define ZMQ_HWM 1 +#define ZMQ_SWAP 3 +#define ZMQ_AFFINITY 4 +#define ZMQ_IDENTITY 5 +#define ZMQ_SUBSCRIBE 6 +#define ZMQ_UNSUBSCRIBE 7 +#define ZMQ_RATE 8 +#define ZMQ_RECOVERY_IVL 9 +#define ZMQ_MCAST_LOOP 10 +#define ZMQ_SNDBUF 11 +#define ZMQ_RCVBUF 12 +#define ZMQ_RCVMORE 13 +#define ZMQ_FD 14 +#define ZMQ_EVENTS 15 +#define ZMQ_TYPE 16 +#define ZMQ_LINGER 17 +#define ZMQ_RECONNECT_IVL 18 +#define ZMQ_BACKLOG 19 +#define ZMQ_RECOVERY_IVL_MSEC 20 /* opt. recovery time, reconcile in 3.x */ +#define ZMQ_RECONNECT_IVL_MAX 21 + +/* Send/recv options. */ +#define ZMQ_NOBLOCK 1 +#define ZMQ_SNDMORE 2 + +ZMQ_EXPORT void *zmq_socket (void *context, int type); +ZMQ_EXPORT int zmq_close (void *s); +ZMQ_EXPORT int zmq_setsockopt (void *s, int option, const void *optval, + size_t optvallen); +ZMQ_EXPORT int zmq_getsockopt (void *s, int option, void *optval, + size_t *optvallen); +ZMQ_EXPORT int zmq_bind (void *s, const char *addr); +ZMQ_EXPORT int zmq_connect (void *s, const char *addr); +ZMQ_EXPORT int zmq_send (void *s, zmq_msg_t *msg, int flags); +ZMQ_EXPORT int zmq_recv (void *s, zmq_msg_t *msg, int flags); + +/******************************************************************************/ +/* I/O multiplexing. */ +/******************************************************************************/ + +#define ZMQ_POLLIN 1 +#define ZMQ_POLLOUT 2 +#define ZMQ_POLLERR 4 + +typedef struct +{ + void *socket; +#if defined _WIN32 + SOCKET fd; +#else + int fd; +#endif + short events; + short revents; +} zmq_pollitem_t; + +ZMQ_EXPORT int zmq_poll (zmq_pollitem_t *items, int nitems, long timeout); + +/******************************************************************************/ +/* Built-in devices */ +/******************************************************************************/ + +#define ZMQ_STREAMER 1 +#define ZMQ_FORWARDER 2 +#define ZMQ_QUEUE 3 + +ZMQ_EXPORT int zmq_device (int device, void * insocket, void* outsocket); + +#undef ZMQ_EXPORT + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/plugins/server/zeromq/zmq.hpp b/plugins/server/zeromq/zmq.hpp new file mode 100644 index 000000000..e147b0edc --- /dev/null +++ b/plugins/server/zeromq/zmq.hpp @@ -0,0 +1,301 @@ +/* + Copyright (c) 2007-2011 iMatix Corporation + Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file + + This file is part of 0MQ. + + 0MQ is free software; you can redistribute it and/or modify it under + the terms of the GNU Lesser General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + 0MQ is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . +*/ + +#ifndef __ZMQ_HPP_INCLUDED__ +#define __ZMQ_HPP_INCLUDED__ + +#include "zmq.h" + +#include +#include +#include + +namespace zmq +{ + + typedef zmq_free_fn free_fn; + typedef zmq_pollitem_t pollitem_t; + + class error_t : public std::exception + { + public: + + error_t () : errnum (zmq_errno ()) {} + + virtual const char *what () const throw () + { + return zmq_strerror (errnum); + } + + int num () const + { + return errnum; + } + + private: + + int errnum; + }; + + inline int poll (zmq_pollitem_t *items_, int nitems_, long timeout_ = -1) + { + int rc = zmq_poll (items_, nitems_, timeout_); + if (rc < 0) + throw error_t (); + return rc; + } + + inline void device (int device_, void * insocket_, void* outsocket_) + { + int rc = zmq_device (device_, insocket_, outsocket_); + if (rc != 0) + throw error_t (); + } + + inline void version (int *major_, int *minor_, int *patch_) + { + zmq_version (major_, minor_, patch_); + } + + class message_t : private zmq_msg_t + { + friend class socket_t; + + public: + + inline message_t () + { + int rc = zmq_msg_init (this); + if (rc != 0) + throw error_t (); + } + + inline message_t (size_t size_) + { + int rc = zmq_msg_init_size (this, size_); + if (rc != 0) + throw error_t (); + } + + inline message_t (void *data_, size_t size_, free_fn *ffn_, + void *hint_ = NULL) + { + int rc = zmq_msg_init_data (this, data_, size_, ffn_, hint_); + if (rc != 0) + throw error_t (); + } + + inline ~message_t () + { + int rc = zmq_msg_close (this); + assert (rc == 0); + } + + inline void rebuild () + { + int rc = zmq_msg_close (this); + if (rc != 0) + throw error_t (); + rc = zmq_msg_init (this); + if (rc != 0) + throw error_t (); + } + + inline void rebuild (size_t size_) + { + int rc = zmq_msg_close (this); + if (rc != 0) + throw error_t (); + rc = zmq_msg_init_size (this, size_); + if (rc != 0) + throw error_t (); + } + + inline void rebuild (void *data_, size_t size_, free_fn *ffn_, + void *hint_ = NULL) + { + int rc = zmq_msg_close (this); + if (rc != 0) + throw error_t (); + rc = zmq_msg_init_data (this, data_, size_, ffn_, hint_); + if (rc != 0) + throw error_t (); + } + + inline void move (message_t *msg_) + { + int rc = zmq_msg_move (this, (zmq_msg_t*) msg_); + if (rc != 0) + throw error_t (); + } + + inline void copy (message_t *msg_) + { + int rc = zmq_msg_copy (this, (zmq_msg_t*) msg_); + if (rc != 0) + throw error_t (); + } + + inline void *data () + { + return zmq_msg_data (this); + } + + inline size_t size () + { + return zmq_msg_size (this); + } + + private: + + // Disable implicit message copying, so that users won't use shared + // messages (less efficient) without being aware of the fact. + message_t (const message_t&); + void operator = (const message_t&); + }; + + class context_t + { + friend class socket_t; + + public: + + inline context_t (int io_threads_) + { + ptr = zmq_init (io_threads_); + if (ptr == NULL) + throw error_t (); + } + + inline ~context_t () + { + int rc = zmq_term (ptr); + assert (rc == 0); + } + + // Be careful with this, it's probably only useful for + // using the C api together with an existing C++ api. + // Normally you should never need to use this. + inline operator void* () + { + return ptr; + } + + private: + + void *ptr; + + context_t (const context_t&); + void operator = (const context_t&); + }; + + class socket_t + { + public: + + inline socket_t (context_t &context_, int type_) + { + ptr = zmq_socket (context_.ptr, type_); + if (ptr == NULL) + throw error_t (); + } + + inline ~socket_t () + { + close(); + } + + inline operator void* () + { + return ptr; + } + + inline void close() + { + if(ptr == NULL) + // already closed + return ; + int rc = zmq_close (ptr); + if (rc != 0) + throw error_t (); + ptr = 0 ; + } + + inline void setsockopt (int option_, const void *optval_, + size_t optvallen_) + { + int rc = zmq_setsockopt (ptr, option_, optval_, optvallen_); + if (rc != 0) + throw error_t (); + } + + inline void getsockopt (int option_, void *optval_, + size_t *optvallen_) + { + int rc = zmq_getsockopt (ptr, option_, optval_, optvallen_); + if (rc != 0) + throw error_t (); + } + + inline void bind (const char *addr_) + { + int rc = zmq_bind (ptr, addr_); + if (rc != 0) + throw error_t (); + } + + inline void connect (const char *addr_) + { + int rc = zmq_connect (ptr, addr_); + if (rc != 0) + throw error_t (); + } + + inline bool send (message_t &msg_, int flags_ = 0) + { + int rc = zmq_send (ptr, &msg_, flags_); + if (rc == 0) + return true; + if (rc == -1 && zmq_errno () == EAGAIN) + return false; + throw error_t (); + } + + inline bool recv (message_t *msg_, int flags_ = 0) + { + int rc = zmq_recv (ptr, msg_, flags_); + if (rc == 0) + return true; + if (rc == -1 && zmq_errno () == EAGAIN) + return false; + throw error_t (); + } + + private: + + void *ptr; + + socket_t (const socket_t&); + void operator = (const socket_t&); + }; + +} + +#endif diff --git a/plugins/server/zeromq/zmq_utils.h b/plugins/server/zeromq/zmq_utils.h new file mode 100644 index 000000000..6d8a45898 --- /dev/null +++ b/plugins/server/zeromq/zmq_utils.h @@ -0,0 +1,64 @@ +/* + Copyright (c) 2007-2011 iMatix Corporation + Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file + + This file is part of 0MQ. + + 0MQ is free software; you can redistribute it and/or modify it under + the terms of the GNU Lesser General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + 0MQ is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . +*/ + +#ifndef __ZMQ_UTILS_H_INCLUDED__ +#define __ZMQ_UTILS_H_INCLUDED__ + +#ifdef __cplusplus +extern "C" { +#endif + +/* Handle DSO symbol visibility */ +#if defined _WIN32 +# if defined DLL_EXPORT +# define ZMQ_EXPORT __declspec(dllexport) +# else +# define ZMQ_EXPORT __declspec(dllimport) +# endif +#else +# if defined __SUNPRO_C || defined __SUNPRO_CC +# define ZMQ_EXPORT __global +# elif (defined __GNUC__ && __GNUC__ >= 4) || defined __INTEL_COMPILER +# define ZMQ_EXPORT __attribute__ ((visibility("default"))) +# else +# define ZMQ_EXPORT +# endif +#endif + +/* Helper functions are used by perf tests so that they don't have to care */ +/* about minutiae of time-related functions on different OS platforms. */ + +/* Starts the stopwatch. Returns the handle to the watch. */ +ZMQ_EXPORT void *zmq_stopwatch_start (void); + +/* Stops the stopwatch. Returns the number of microseconds elapsed since */ +/* the stopwatch was started. */ +ZMQ_EXPORT unsigned long zmq_stopwatch_stop (void *watch_); + +/* Sleeps for specified number of seconds. */ +ZMQ_EXPORT void zmq_sleep (int seconds_); + +#undef ZMQ_EXPORT + +#ifdef __cplusplus +} +#endif + +#endif