877 ACE_TEXT(
"(%P|%t) NOTICE: InfoRepoDiscovery::Config::discovery_config ")
878 ACE_TEXT(
"failed to open [%s] section.\n"),
890 ACE_TEXT(
"(%P|%t) InfoRepoDiscovery::Config::discovery_config ")
891 ACE_TEXT(
"repo sections must have a subsection name\n")),
898 ACE_TEXT(
"(%P|%t) InfoRepoDiscovery::Config::discovery_config ")
899 ACE_TEXT(
"too many nesting layers in the [repo] section.\n")),
904 for (KeyList::const_iterator it=keys.begin(); it != keys.end(); ++it) {
905 std::string repo_name = (*it).first;
910 bool repoKeySpecified =
false, bitIpSpecified =
false,
911 bitPortSpecified =
false;
915 for (ValueMap::const_iterator it=values.begin(); it != values.end(); ++it) {
916 std::string
name = (*it).first;
917 if (name ==
"RepositoryKey") {
918 repoKey = (*it).second;
919 repoKeySpecified =
true;
922 ACE_TEXT(
"(%P|%t) [repository/%C]: RepositoryKey == %C\n"),
923 repo_name.c_str(), repoKey.c_str()));
926 }
else if (name ==
"RepositoryIor") {
927 repoIor = (*it).second;
931 ACE_TEXT(
"(%P|%t) [repository/%C]: RepositoryIor == %C\n"),
932 repo_name.c_str(), repoIor.c_str()));
934 }
else if (name ==
"DCPSBitTransportIPAddress") {
935 bitIp = (*it).second;
936 bitIpSpecified =
true;
939 ACE_TEXT(
"(%P|%t) [repository/%C]: DCPSBitTransportIPAddress == %C\n"),
940 repo_name.c_str(), bitIp.c_str()));
942 }
else if (name ==
"DCPSBitTransportPort") {
943 std::string
value = (*it).second;
945 bitPortSpecified =
true;
949 ACE_TEXT(
"(%P|%t) InfoRepoDiscovery::Config::discovery_config ")
950 ACE_TEXT(
"Illegal integer value for DCPSBitTransportPort (%C) in [repository/%C] section.\n"),
951 value.c_str(), repo_name.c_str()),
956 ACE_TEXT(
"(%P|%t) [repository/%C]: DCPSBitTransportPort == %d\n"),
957 repo_name.c_str(), bitPort));
961 ACE_TEXT(
"(%P|%t) InfoRepoDiscovery::Config::discovery_config ")
962 ACE_TEXT(
"Unexpected entry (%C) in [repository/%C] section.\n"),
963 name.c_str(), repo_name.c_str()),
968 if (values.find(
"RepositoryIor") == values.end()) {
970 ACE_TEXT(
"(%P|%t) InfoRepoDiscovery::Config::discovery_config ")
971 ACE_TEXT(
"Repository section [repository/%C] section is missing RepositoryIor value.\n"),
976 if (!repoKeySpecified) {
982 make_rch<InfoRepoDiscovery>(repoKey, repoIor.c_str()));
983 if (bitPortSpecified) discovery->bit_transport_port(bitPort);
984 if (bitIpSpecified) discovery->bit_transport_ip(bitIp);
986 DCPS::static_rchandle_cast<Discovery>(discovery));
static const char * DEFAULT_REPO
Key value for the default repository IOR.
const LogLevel::Value value
static const ACE_TCHAR REPO_SECTION_NAME[]
virtual const ACE_Configuration_Section_Key & root_section(void) const
RcHandle< InfoRepoDiscovery > InfoRepoDiscovery_rch
OpenDDS_Dcps_Export unsigned int DCPS_debug_level
virtual int open_section(const ACE_Configuration_Section_Key &base, const ACE_TCHAR *sub_section, bool create, ACE_Configuration_Section_Key &result)
int processSections(ACE_Configuration_Heap &cf, const ACE_Configuration_Section_Key &key, KeyList &subsections)
#define ACE_ERROR_RETURN(X, Y)
int pullValues(ACE_Configuration_Heap &cf, const ACE_Configuration_Section_Key &key, ValueMap &values)
#define TheServiceParticipant
bool convertToInteger(const String &s, T &value)