geode-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (GEODE-3019) Refactor Struct
Date Fri, 21 Jul 2017 00:31:01 GMT

    [ https://issues.apache.org/jira/browse/GEODE-3019?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16095597#comment-16095597
] 

ASF GitHub Bot commented on GEODE-3019:
---------------------------------------

Github user dgkimura commented on a diff in the pull request:

    https://github.com/apache/geode-native/pull/107#discussion_r128660879
  
    --- Diff: src/cppcache/src/StructSetImpl.cpp ---
    @@ -66,25 +66,22 @@ SelectResultsIterator StructSetImpl::getIterator() {
       return SelectResultsIterator(m_structVector, shared_from_this());
     }
     
    -int32_t StructSetImpl::getFieldIndex(const char* fieldname) {
    -  std::map<std::string, int32_t>::iterator iter =
    +const int32_t StructSetImpl::getFieldIndex(const std::string& fieldname) {
    +  const auto& iter =
           m_fieldNameIndexMap.find(fieldname);
       if (iter != m_fieldNameIndexMap.end()) {
         return iter->second;
       } else {
    -    // std::string tmp = "fieldname ";
    -    // tmp += fieldname + " not found";
    -    throw IllegalArgumentException("fieldname not found");
    +    throw std::invalid_argument("fieldname not found");
       }
     }
     
    -const char* StructSetImpl::getFieldName(int32_t index) {
    -  for (std::map<std::string, int32_t>::iterator iter =
    -           m_fieldNameIndexMap.begin();
    -       iter != m_fieldNameIndexMap.end(); ++iter) {
    -    if (iter->second == index) return iter->first.c_str();
    +const std::string& StructSetImpl::getFieldName(int32_t index) {
    +  for (const auto& iter : m_fieldNameIndexMap) {
    +    if (iter.second == index) return (iter.first);
       }
    -  return nullptr;
    +
    +  throw std::out_of_range("Struct: fieldName not found.");
    --- End diff --
    
    Would it add any value having the index in the error message?


> Refactor Struct
> ---------------
>
>                 Key: GEODE-3019
>                 URL: https://issues.apache.org/jira/browse/GEODE-3019
>             Project: Geode
>          Issue Type: Task
>          Components: native client
>            Reporter: Jacob S. Barrett
>
> Refactor Struct (geode/Struct.hpp):
> * Replace {{char *}} with {{std::string}}
> * Replace {{m_fieldname}} type with {{std::unordered_map<std::string, int32_t>}}
> * Add vector for index to field name lookup.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message