f.zz.de
posts /

c++ was keines ist

Posted Wed 27 Jan 2016 05:04:11 PM CET Florian Lohoff
in

Nachdem icinga2 ja kein embedded perl hat gucke ich mal wie es so um C++ Implementierungen für SNMP ausehen. Net::SNMP ist da ja eher nicht so geeignet. Also SNMP++ angesehen. Wir probieren die ersten Schritt und es ist so halbherziges c++ das es keinen Spaß macht.

Wieso throwed der Constructor einer Klasse keine exception nicht sondern returned über einen int einen Status?

Snmp snmp(status, 0, (snmpaddress.get_ip_version() == Address::version_ipv6));

if (status != SNMP_CLASS_SUCCESS) {
  std::cout << "SNMP++ Session Create Fail, " << snmp.error_msg(status) << "\n";
  return 1;
}

Oder warum können die gängigen initialisierungen für Adresse keinen std::string? Warum muss das ein const char * sein?

ctarget.set_readcommunity(vm["community"].as<std::string>().c_str());

Oder warum erkennt die Klasse Snmp nicht am dem Target objekt ob das ipv6 oder ipv4 ist? Warum muss ich das bei der instanzierung von Snmp machen?