David Kimura created GEODE-4032:
-----------------------------------

             Summary: Investigate enum types being used as integer values
                 Key: GEODE-4032
                 URL: https://issues.apache.org/jira/browse/GEODE-4032
             Project: Geode
          Issue Type: Improvement
          Components: native client
            Reporter: David Kimura


DiskPolicyType and ExpirationAction have enums being used as integers.  
Evaluate whether enum is the correct data type to use here.  Consider change to 
use {{enum class DiskPolicy}} and {{enum class ExpirationAction}} which would 
throw compiler errors unless {{static_cast<int>}} is made.

Example in {{ExpirationAction.hpp}}:
{noformat}
class CPPCACHE_EXPORT ExpirationAction {
 public:
  typedef enum { INVALIDATE = 0, LOCAL_INVALIDATE, DESTROY, LOCAL_DESTROY, 
INVALID_ACTION } Action;
  // ...
};
{noformat}

With usages in {{ExpirationAction.cpp}} like...
{noformat}
const char* ExpirationAction::fromOrdinal(const int ordinal) {
  if (INVALIDATE <= ordinal && ordinal <= LOCAL_DESTROY) {
    return names[ordinal];
  }
  return nullptr;
}
{noformat}




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

Reply via email to