giopstreamimpl.cc
来自「编译工具」· CC 代码 · 共 578 行 · 第 1/2 页
CC
578 行
/////////////////////////////////////////////////////////////////////////////class giopMaxMsgSizeHandler : public orbOptions::Handler {public: giopMaxMsgSizeHandler() : orbOptions::Handler("giopMaxMsgSize", "giopMaxMsgSize = n >= 8192", 1, "-ORBgiopMaxMsgSize < n >= 8192 >") {} void visit(const char* value,orbOptions::Source) throw (orbOptions::BadParam) { CORBA::ULong v; if (!orbOptions::getULong(value,v) || v < 8192) { throw orbOptions::BadParam(key(),value, "Invalid value, expect n >= 8192"); } orbParameters::giopMaxMsgSize = v; } void dump(orbOptions::sequenceString& result) { orbOptions::addKVULong(key(),orbParameters::giopMaxMsgSize, result); }};static giopMaxMsgSizeHandler giopMaxMsgSizeHandler_;/////////////////////////////////////////////////////////////////////////////class clientCallTimeOutPeriodHandler : public orbOptions::Handler {public: clientCallTimeOutPeriodHandler() : orbOptions::Handler("clientCallTimeOutPeriod", "clientCallTimeOutPeriod = n >= 0 in msecs", 1, "-ORBclientCallTimeOutPeriod < n >= 0 in msecs >") {} void visit(const char* value,orbOptions::Source) throw (orbOptions::BadParam) { CORBA::ULong v; if (!orbOptions::getULong(value,v)) { throw orbOptions::BadParam(key(),value, "Expect n >= 0 in msecs"); } orbParameters::clientCallTimeOutPeriod.secs = v / 1000; orbParameters::clientCallTimeOutPeriod.nanosecs = (v % 1000) * 1000000; } void dump(orbOptions::sequenceString& result) { CORBA::ULong v = orbParameters::clientCallTimeOutPeriod.secs * 1000 + orbParameters::clientCallTimeOutPeriod.nanosecs / 1000000; orbOptions::addKVULong(key(),v,result); }};static clientCallTimeOutPeriodHandler clientCallTimeOutPeriodHandler_;/////////////////////////////////////////////////////////////////////////////class supportPerThreadTimeOutHandler : public orbOptions::Handler {public: supportPerThreadTimeOutHandler() : orbOptions::Handler("supportPerThreadTimeOut", "supportPerThreadTimeOut = 0 or 1", 1, "-ORBsupportPerThreadTimeOut < 0 | 1 >") {} void visit(const char* value,orbOptions::Source) throw (orbOptions::BadParam) { CORBA::Boolean v; if (!orbOptions::getBoolean(value,v)) { throw orbOptions::BadParam(key(),value, orbOptions::expect_boolean_msg); } orbParameters::supportPerThreadTimeOut = v; } void dump(orbOptions::sequenceString& result) { orbOptions::addKVBoolean(key(),orbParameters::supportPerThreadTimeOut, result); }};static supportPerThreadTimeOutHandler supportPerThreadTimeOutHandler_;/////////////////////////////////////////////////////////////////////////////class serverCallTimeOutPeriodHandler : public orbOptions::Handler {public: serverCallTimeOutPeriodHandler() : orbOptions::Handler("serverCallTimeOutPeriod", "serverCallTimeOutPeriod = n >= 0 in msecs", 1, "-ORBserverCallTimeOutPeriod < n >= 0 in msecs >") {} void visit(const char* value,orbOptions::Source) throw (orbOptions::BadParam) { CORBA::ULong v; if (!orbOptions::getULong(value,v)) { throw orbOptions::BadParam(key(),value, "Expect n >= 0 in msecs"); } orbParameters::serverCallTimeOutPeriod.secs = v / 1000; orbParameters::serverCallTimeOutPeriod.nanosecs = (v % 1000) * 1000000; } void dump(orbOptions::sequenceString& result) { CORBA::ULong v = orbParameters::serverCallTimeOutPeriod.secs * 1000 + orbParameters::serverCallTimeOutPeriod.nanosecs / 1000000; orbOptions::addKVULong(key(),v,result); }};static serverCallTimeOutPeriodHandler serverCallTimeOutPeriodHandler_;/////////////////////////////////////////////////////////////////////////////class maxInterleavedCallsPerConnectionHandler : public orbOptions::Handler {public: maxInterleavedCallsPerConnectionHandler() : orbOptions::Handler("maxInterleavedCallsPerConnection", "maxInterleavedCallsPerConnection = n > 0", 1, "-ORBmaxInterleavedCallsPerConnection < n > 0 >") {} void visit(const char* value,orbOptions::Source) throw (orbOptions::BadParam) { CORBA::ULong v; if (!orbOptions::getULong(value,v) || v < 1) { throw orbOptions::BadParam(key(),value, orbOptions::expect_greater_than_zero_ulong_msg); } orbParameters::maxInterleavedCallsPerConnection = v; } void dump(orbOptions::sequenceString& result) { orbOptions::addKVULong(key(),orbParameters::maxInterleavedCallsPerConnection, result); }};static maxInterleavedCallsPerConnectionHandler maxInterleavedCallsPerConnectionHandler_;/////////////////////////////////////////////////////////////////////////////static const char* targetaddress_msg = "Expect a value of 0, 1 or 2";class giopTargetAddressModeHandler : public orbOptions::Handler {public: giopTargetAddressModeHandler() : orbOptions::Handler("giopTargetAddressMode", "giopTargetAddressMode = 0,1,2", 1, "-ORBgiopTargetAddressMode < 0,1,2 >") {} void visit(const char* value,orbOptions::Source) throw (orbOptions::BadParam) { CORBA::ULong v; if (!orbOptions::getULong(value,v)) { throw orbOptions::BadParam(key(),value,targetaddress_msg); } switch (v) { case 0: orbParameters::giopTargetAddressMode = GIOP::KeyAddr; break; case 1: orbParameters::giopTargetAddressMode = GIOP::ProfileAddr; break; case 2: orbParameters::giopTargetAddressMode = GIOP::ReferenceAddr; break; default: throw orbOptions::BadParam(key(),value,targetaddress_msg); break; } } void dump(orbOptions::sequenceString& result) { const char* v; if (orbParameters::giopTargetAddressMode == GIOP::KeyAddr) v = "KeyAddr"; else if (orbParameters::giopTargetAddressMode == GIOP::ProfileAddr) v = "ProfileAddr"; else if (orbParameters::giopTargetAddressMode == GIOP::ReferenceAddr) v = "ReferenceAddr"; else v = "Illegal value"; orbOptions::addKVString(key(),v,result); }};static giopTargetAddressModeHandler giopTargetAddressModeHandler_;/////////////////////////////////////////////////////////////////////////////class strictIIOPHandler : public orbOptions::Handler {public: strictIIOPHandler() : orbOptions::Handler("strictIIOP", "strictIIOP = 0 or 1", 1, "-ORBstrictIIOP < 0 | 1 >") {} void visit(const char* value,orbOptions::Source) throw (orbOptions::BadParam) { CORBA::Boolean v; if (!orbOptions::getBoolean(value,v)) { throw orbOptions::BadParam(key(),value, orbOptions::expect_boolean_msg); } orbParameters::strictIIOP = v; } void dump(orbOptions::sequenceString& result) { orbOptions::addKVBoolean(key(),orbParameters::strictIIOP, result); }};static strictIIOPHandler strictIIOPHandler_;/////////////////////////////////////////////////////////////////////////////// Module initialiser ///////////////////////////////////////////////////////////////////////////////extern omniInitialiser& omni_giopImpl10_initialiser_;extern omniInitialiser& omni_giopImpl11_initialiser_;extern omniInitialiser& omni_giopImpl12_initialiser_;class omni_giopStreamImpl_initialiser : public omniInitialiser {public: omni_giopStreamImpl_initialiser() { orbOptions::singleton().registerHandler(maxGIOPVersionHandler_); orbOptions::singleton().registerHandler(giopMaxMsgSizeHandler_); orbOptions::singleton().registerHandler(clientCallTimeOutPeriodHandler_); orbOptions::singleton().registerHandler(supportPerThreadTimeOutHandler_); orbOptions::singleton().registerHandler(serverCallTimeOutPeriodHandler_); orbOptions::singleton().registerHandler(maxInterleavedCallsPerConnectionHandler_); orbOptions::singleton().registerHandler(giopTargetAddressModeHandler_); orbOptions::singleton().registerHandler(strictIIOPHandler_); } void attach() { OMNIORB_ASSERT(implHead == 0); OMNIORB_ASSERT(implMax == 0); omni_giopImpl10_initialiser_.attach(); if (orbParameters::maxGIOPVersion.minor >= 1) omni_giopImpl11_initialiser_.attach(); if (orbParameters::maxGIOPVersion.minor >= 2) omni_giopImpl12_initialiser_.attach(); { if (omniORB::trace(25)) { GIOP::Version v = giopStreamImpl::maxVersion()->version(); omniORB::logger log; log << "Maximum supported GIOP version is " << (int)v.major << "." << (int)v.minor << "\n"; } } } void detach() { omni_giopImpl10_initialiser_.detach(); if (orbParameters::maxGIOPVersion.minor >= 1) omni_giopImpl11_initialiser_.detach(); if (orbParameters::maxGIOPVersion.minor >= 2) omni_giopImpl12_initialiser_.detach(); implHead = 0; implMax = 0; }};static omni_giopStreamImpl_initialiser initialiser;omniInitialiser& omni_giopStreamImpl_initialiser_ = initialiser;OMNI_NAMESPACE_END(omni)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?