⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 orboptions.cc

📁 编译工具
💻 CC
📖 第 1 页 / 共 2 页
字号:
  for (i=0; i<argc; i++) {    if (!strcmp(argv[i], "-ORBtraceLevel")) {      if (i+1 == argc) {	throw orbOptions::BadParam("traceLevel", "<missing>",				   "Expected parameter missing");      }      CORBA::ULong v;      if (!orbOptions::getULong(argv[i+1], v))	throw orbOptions::BadParam("traceLevel", argv[i+1],				   orbOptions::expect_ulong_msg);      omniORB::traceLevel = v;      if (v >= 10)	omniORB::traceExceptions = 1;      break;    }  }    for (i=0; i<argc; i++) {    if (!strcmp(argv[i], "-ORBtraceFile")) {      if (i+1 == argc) {	throw orbOptions::BadParam("traceFile", "<missing>",				   "Expected parameter missing");      }      omniORB::setLogFilename(argv[i+1]);      break;    }  }}////////////////////////////////////////////////////////////////////////const char*orbOptions::getConfigFileName(int argc, char** argv, const char* fname)  throw (orbOptions::Unknown,orbOptions::BadParam) {  for (int i=0; i<argc; i++) {    if (!strcmp(argv[i], "-ORBconfigFile")) {      if (i+1 == argc) {	throw orbOptions::BadParam("configFile", "<missing>",				   "Expected parameter missing");      }      return argv[i+1];    }  }  return fname;}////////////////////////////////////////////////////////////////////////voidorbOptions::importFromEnv() throw (orbOptions::Unknown,orbOptions::BadParam) {    omnivector<orbOptions::Handler*>::const_iterator i = pd_handlers.begin();  omnivector<orbOptions::Handler*>::const_iterator last = pd_handlers.end();  for (; i != last; i++) {    CORBA::String_var envkey;    envkey = CORBA::string_alloc(strlen((*i)->key())+3);    sprintf(envkey,"ORB%s",(*i)->key());    const char* value = getenv(envkey);    if (value && strlen(value)) addOption((*i)->key(),value,fromEnvironment);  }}////////////////////////////////////////////////////////////////////////orbOptions::sequenceString*orbOptions::usage() const {  if (!pd_handlers_sorted) ((orbOptions*)this)->sortHandlers();  sequenceString_var result(new sequenceString(pd_handlers.size()));  result->length(pd_handlers.size());    omnivector<orbOptions::Handler*>::const_iterator i = pd_handlers.begin();  omnivector<orbOptions::Handler*>::const_iterator last = pd_handlers.end();  int j = 0;  for (; i != last; i++) {    if ((*i)->usage()) {      result[j] = (*i)->usage();      j++;    }  }  result->length(j);  // some options may be obsoleted. They are those                      // with no usage strings. We have to adjust the length                      // to cater for their omission.  return result._retn();}////////////////////////////////////////////////////////////////////////orbOptions::sequenceString*orbOptions::usageArgv() const {  if (!pd_handlers_sorted) ((orbOptions*)this)->sortHandlers();  sequenceString_var result(new sequenceString(pd_handlers.size()));  result->length(pd_handlers.size());    omnivector<orbOptions::Handler*>::const_iterator i = pd_handlers.begin();  omnivector<orbOptions::Handler*>::const_iterator last = pd_handlers.end();  int j = 0;  for (; i != last; i++) {    if ((*i)->usageArgv()) {      result[j] = (*i)->usageArgv();      j++;    }  }  result->length(j);  // some options may be obsoleted. They are those                      // with no usage strings. We have to adjust the length                      // to cater for their omission.  return result._retn();}////////////////////////////////////////////////////////////////////////orbOptions::sequenceString*orbOptions::dumpSpecified() const {  sequenceString_var result(new sequenceString(pd_values.size()));  result->length(pd_values.size());  omnivector<HandlerValuePair*>::const_iterator i = pd_values.begin();  omnivector<HandlerValuePair*>::const_iterator last = pd_values.end();  int j = 0;  for (; i != last; i++,j++) {    CORBA::String_var kv;    CORBA::ULong l = strlen((*i)->handler_->key()) + strlen((*i)->value_) + 3;    kv = CORBA::string_alloc(l);    sprintf(kv,"%s = %s",	    (*i)->handler_->key(),(const char*)((*i)->value_));    result[j] = kv._retn();  }  return result._retn();}////////////////////////////////////////////////////////////////////////orbOptions::sequenceString*orbOptions::dumpCurrentSet() const {  if (!pd_handlers_sorted) ((orbOptions*)this)->sortHandlers();  sequenceString_var result(new sequenceString());  omnivector<orbOptions::Handler*>::const_iterator i = pd_handlers.begin();  omnivector<orbOptions::Handler*>::const_iterator last = pd_handlers.end();  for (; i != last; i++) {    (*i)->dump(result.inout());  }  return result._retn();}////////////////////////////////////////////////////////////////////////orbOptions&orbOptions::singleton() {  static orbOptions* singleton_ = 0;  if (!singleton_) {    singleton_ = new orbOptions();  }  return *singleton_;}////////////////////////////////////////////////////////////////////////CORBA::BooleanorbOptions::getBoolean(const char* value, CORBA::Boolean& result) {  long v;  v = strtol(value,0,10);  if (v != 0 && v != 1) return 0;  result = v;  return 1;}////////////////////////////////////////////////////////////////////////CORBA::BooleanorbOptions::getULong(const char* value, CORBA::ULong& result) {  unsigned long v;  v = strtoul(value,0,10);  if (v == ULONG_MAX && errno == ERANGE) return 0;  result = v;  return 1;}////////////////////////////////////////////////////////////////////////voidorbOptions::addKVBoolean(const char* key, CORBA::Boolean value,			 orbOptions::sequenceString& result) {  CORBA::String_var kv;  CORBA::ULong l;  l = strlen(key) + 4;  kv = CORBA::string_alloc(l);  sprintf(kv,"%s = %s",key,(value ? "1" : "0"));  l = result.length();  result.length(l+1);  result[l] = kv._retn();}////////////////////////////////////////////////////////////////////////voidorbOptions::addKVULong(const char* key, CORBA::ULong value,			 orbOptions::sequenceString& result) {  CORBA::String_var kv;  CORBA::ULong l;  l = strlen(key) + 16;  kv = CORBA::string_alloc(l);  sprintf(kv,"%s = %lu",key,(unsigned long)value);  l = result.length();  result.length(l+1);  result[l] = kv._retn();}////////////////////////////////////////////////////////////////////////voidorbOptions::addKVString(const char* key, const char* value,			 orbOptions::sequenceString& result) {  CORBA::String_var kv;  CORBA::ULong l;  l = strlen(key) + strlen(value) + 3;  kv = CORBA::string_alloc(l);  sprintf(kv,"%s = %s",key,value);  l = result.length();  result.length(l+1);  result[l] = kv._retn();}////////////////////////////////////////////////////////////////////////const char* orbOptions::expect_boolean_msg = "Invalid value, expect 0 or 1";const char* orbOptions::expect_ulong_msg = "Invalid value, expect n >= 0";const char* orbOptions::expect_greater_than_zero_ulong_msg = "Invalid value, expect n >= 1";///////////////////////////////////////////////////////////////////////////////            Module initialiser                                           /////////////////////////////////////////////////////////////////////////////////// No need to register this initialiser to ORB_init.//class omni_orbOptions_initialiser : public omniInitialiser {public:  omni_orbOptions_initialiser() {    orbOptions& s = orbOptions::singleton();    s.reset();  }  virtual ~omni_orbOptions_initialiser() {    orbOptions* s = &orbOptions::singleton();    delete s;  }  void attach() { }  void detach() { }};static omni_orbOptions_initialiser initialiser;omniInitialiser& omni_orbOptions_initialiser_ = initialiser;OMNI_NAMESPACE_END(omni)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -