Ninguno. Si se produce un error, el parámetro returnCode indica la razón del mismo.
int rc = CCI_SUCCESS; CCI_BROKER_INFO_ST brokerInfo = {CCI_BROKER_INFO_ST_DEFAULT}; #define INTITIAL_STR_LEN 256 CciChar brokerNameStr[INTITIAL_STR_LEN]; CciChar executionGroupNameStr[INTITIAL_STR_LEN]; CciChar queueManagerNameStr[INTITIAL_STR_LEN]; brokerInfo.brokerName.bufferLength = INTITIAL_STR_LEN; brokerInfo.brokerName.buffer = brokerNameStr; brokerInfo.executionGroupName.bufferLength = INTITIAL_STR_LEN; brokerInfo.executionGroupName.buffer = executionGroupNameStr; brokerInfo.queueManagerName.bufferLength = INTITIAL_STR_LEN; brokerInfo.queueManagerName.buffer = queueManagerNameStr; cciGetBrokerInfo(&rc,&brokerInfo); /* por si se da el caso de que los almacenamientos intermedios sean muy cortos*/ if ((brokerInfo.brokerName.bytesOutput < brokerInfo.brokerName.dataLength) || (brokerInfo.executionGroupName.bytesOutput < brokerInfo.executionGroupName.dataLength) || (brokerInfo.queueManagerName.bytesOutput < brokerInfo.queueManagerName.dataLength)) { /*al menos uno de los almacenamientos intermedios era demasiado corto, se ha de reintentar*/ /* Tenga en cuenta que es improbable ya que los tamaños iniciales eran lo suficientemente grandes*/ brokerInfo.brokerName.bufferLength = brokerInfo.brokerName.dataLength; brokerInfo.brokerName.buffer = (CciChar*)malloc (brokerInfo.brokerName.bufferLength * sizeof(CciChar)); brokerInfo.executionGroupName.bufferLength = brokerInfo.executionGroupName.dataLength; brokerInfo.executionGroupName.buffer = (CciChar*)malloc (brokerInfo.executionGroupName.bufferLength * sizeof(CciChar)); brokerInfo.queueManagerName.bufferLength = brokerInfo.queueManagerName.dataLength; brokerInfo.queueManagerName.buffer = (CciChar*)malloc (brokerInfo.queueManagerName.bufferLength * sizeof(CciChar)); cciGetBrokerInfo(&rc,&brokerInfo); /*ahora efectúe algo razonable con las series antes de que los almacenamientos intermedios queden fuera de ámbito*/ /* por ejemplo, llame a una función escrita por el usuario para grabarlas fuera*/ copyBrokerInfo(brokerInfo.brokerName.buffer, brokerInfo.executionGroupName.buffer, brokerInfo.queueManagerName.buffer); free((void*)brokerInfo.brokerName.buffer); free((void*)brokerInfo.executionGroupName.buffer); free((void*)brokerInfo.queueManagerName.buffer); }else{ /*ahora efectúe algo razonable con las series antes de que los almacenamientos intermedios queden fuera de ámbito*/ /* por ejemplo, llame a una función escrita por el usuario para grabarlas fuera*/ copyBrokerInfo(brokerInfo.brokerName.buffer, brokerInfo.executionGroupName.buffer, brokerInfo.queueManagerName.buffer); }