From 1adba473e6917b227e1b0a1118148101dca202e7 Mon Sep 17 00:00:00 2001 From: Manuel Traut Date: Mon, 31 Mar 2014 16:53:55 +0200 Subject: add quellcode Signed-off-by: Manuel Traut --- quellcode/versuch4/Supplier.cpp | 106 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100755 quellcode/versuch4/Supplier.cpp (limited to 'quellcode/versuch4/Supplier.cpp') diff --git a/quellcode/versuch4/Supplier.cpp b/quellcode/versuch4/Supplier.cpp new file mode 100755 index 0000000..833b80d --- /dev/null +++ b/quellcode/versuch4/Supplier.cpp @@ -0,0 +1,106 @@ +#include +#include +#include "benchC.h" +#include "orbsvcs/CosNamingC.h" +#include +#include + +#include "cpx.h" + +benchmark::Put_var put; +CPX cpx; +std::string strData; + +void sigproc(int signo) +{ signal(SIGRTMIN+29, sigproc); + benchmark::dataStruct_var data = new benchmark::dataStruct; + data->data = CORBA::string_alloc(sizeof(strData)); + data->data = CORBA::string_dup((const char*)strData.c_str()); + data->valPort1 = cpx.get(1); + data->valPort2 = cpx.get(2); + data->valPort3 = cpx.get(3); + put->dataAndPorts(data); +} + + +int main(int argc, char* argv[]){ + + if (argc < 2){ + std::cout<<"enter filename as param1\n"; + return 0; + } + + std::string line; + std::ifstream infile (argv[1], std::ios_base::in); + while (getline(infile, line, '\n')) + { + strData += line; + } + + try{ + // initialize ORB + CORBA::ORB_var orb = CORBA::ORB_init(argc, argv, "ClientORB"); + std::cout<<"ORB ok"<resolve_initial_references("RTORB"); + RTCORBA::RTORB_var rtORB = RTCORBA::RTORB::_narrow(rtorb.in()); + std::cout<<"RTORB ok"<resolve_initial_references("NameService"); + CosNaming::NamingContext_var namingContext = CosNaming::NamingContext::_narrow(namingObject.in()); + std::cout<<"NamingService ok"<resolve(name); + put = benchmark::Put::_narrow(benchObj.in()); + std::cout<<"TransferOjekt ok"<create_private_connection_policy(); + CORBA::Object_var newTran = put->_set_policy_overrides(pcPolicy, CORBA::SET_OVERRIDE); + put = benchmark::Put::_narrow(newTran.in()); + std::cout<<"PrivateConnection ok"<resolve_initial_references("RTCurrent"); + RTCORBA::Current_var rtCurrent = RTCORBA::Current::_narrow(rtCurrentObj.in()); + rtCurrent->the_priority(0); + std::cout<<"PriorityChange ok"<_validate_connection(inconsistentPolicies.out()); + //std::cout<<"explicit bind ok"<connect(); + // put->allPorts(0, 0, 0); + // sleep(1); + // put->onePort(1, 255); + // sleep(1); + // put->allPorts(0, 0, 0); + + // signal handling + signal(SIGRTMIN+29, sigproc); + + while(true){ + pause(); + } + + // destroy ORB + orb->destroy(); + + }catch(CORBA::Exception &any){ + std::cout<<"Exception occured: "<