2016-07-31 6 views
1

Ich habe eine API Ich habe eine CORBA Short als Methode Eingangsparameter deklariert.CORBA :: Kurz Wertüberprüfung

char* WirelessServ::allocateNewService(
     const char* csproductlineName, 
     CORBA::Long clAccountNo, 
     CORBA::Short cshServiceNoCategoryFlag, 
    ) IT_THROW_DECL((
     CORBA::SystemException, 
     ArtixToOrbix::GenericException 
    )) 

Jetzt möchte ich, ob der Eingangswert überprüfen, die tatsächlich NULL in der ‚cshServiceNoCategoryFlag‘ Parameter kommt, ist oder enthält es 0 (numerisch Null).

Aber es scheint, dass NULL kurzer Wert auch 0 (Null) behandelt wird. Bitte beraten.

+0

Es ist unklar, was Sie gefragt haben, weil NULL als 0 definiert ist ('# definieren NULL ((void *) 0)'), dann ist es der gleiche Wert. – mpromonet

Antwort

1

Im Moment Ihrer CORBA-Implementierung in Ihre allocateNewService Operation ruft tut jedes Argument einen gültigen Wert hat, für ein CORBA::Short ist dies ein numerischer Wert, zum Beispiel 0, kann es nicht NULL sein.

Sieht man eine alte CORBA-Implementierung verwenden, Implementierungen die IDL zu C++ 11 Sprechen Mapping Unterstützung verwenden, um ein int16_t als Argument Typ für ein short und std::string für ein string.