void save(Archive & ar, const Poco::JSON::Array::Ptr &t, const unsigned int) { bool isNull = t.isNull(); ar << isNull; if (isNull) return; std::ostringstream oss; t->stringify(oss); std::string s = oss.str(); ar << s; }
Poco::JSON::Array::Ptr AuthorityRecordMapper::inquire() { createCommand(MQCMD_INQUIRE_AUTH_RECS); // Required parameters MQLONG options = 0; Poco::JSON::Array::Ptr optionsValue = _input->getArray("Options"); if ( !optionsValue.isNull() ) { for(Poco::JSON::Array::ValueVec::const_iterator it = optionsValue->begin(); it != optionsValue->end(); ++it) { std::string value = *it; if ( value.compare("Name All Matching") == 0 ) { options |= MQAUTHOPT_NAME_ALL_MATCHING; } else if ( value.compare("Name Explicit") == 0 ) { options |= MQAUTHOPT_NAME_EXPLICIT; } else if ( value.compare("Entity Explicit") == 0 ) { options |= MQAUTHOPT_ENTITY_EXPLICIT; } else if ( value.compare("Entity Set") == 0 ) { options |= MQAUTHOPT_ENTITY_SET; } else if ( value.compare("Name As Wildcard") == 0 ) { options |= MQAUTHOPT_NAME_AS_WILDCARD; } } pcf()->addParameter(MQIACF_AUTH_OPTIONS, options); } // When no ProfileName is passed, set to empty string if ( !_input->has("ProfileName") ) _input->set("ProfileName", ""); addParameter<std::string>(MQCACF_AUTH_PROFILE_NAME, "ProfileName"); addParameterNumFromString(MQIACF_OBJECT_TYPE, "ObjectType"); // Optional parameters addParameter<std::string>(MQCACF_ENTITY_NAME, "EntityName"); addParameterNumFromString(MQIACF_ENTITY_TYPE, "EntityType"); addAttributeList(MQIACF_AUTH_PROFILE_ATTRS, "ProfileAttrs"); addParameter<std::string>(MQCACF_SERVICE_COMPONENT, "ServiceComponent"); PCF::Vector commandResponse; execute(commandResponse); Poco::JSON::Array::Ptr json = new Poco::JSON::Array(); for(PCF::Vector::iterator it = commandResponse.begin(); it != commandResponse.end(); it++) { if ( (*it)->isExtendedResponse() ) // Skip extended response continue; if ( (*it)->getReasonCode() != MQRC_NONE ) // Skip errors (2035 not authorized for example) continue; json->add(createJSON(**it)); } return json; }