[
https://issues.apache.org/jira/browse/GEODE-3571?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16267473#comment-16267473
]
ASF GitHub Bot commented on GEODE-3571:
---------------------------------------
pivotal-jbarrett commented on a change in pull request #158: feature/GEODE-3571
URL: https://github.com/apache/geode-native/pull/158#discussion_r153316167
##########
File path: cppcache/src/AttributesFactory.cpp
##########
@@ -38,92 +38,100 @@ AttributesFactory::AttributesFactory(
AttributesFactory::~AttributesFactory() {}
-void AttributesFactory::setCacheLoader(
+AttributesFactory& AttributesFactory::setCacheLoader(
const std::shared_ptr<CacheLoader>& cacheLoader) {
m_regionAttributes.m_cacheLoader = cacheLoader;
+ return *this;
}
-void AttributesFactory::setCacheWriter(
+AttributesFactory& AttributesFactory::setCacheWriter(
const std::shared_ptr<CacheWriter>& cacheWriter) {
m_regionAttributes.m_cacheWriter = cacheWriter;
+ return *this;
}
-void AttributesFactory::setCacheListener(
+AttributesFactory& AttributesFactory::setCacheListener(
const std::shared_ptr<CacheListener>& aListener) {
m_regionAttributes.m_cacheListener = aListener;
+ return *this;
}
-void AttributesFactory::setPartitionResolver(
+AttributesFactory& AttributesFactory::setPartitionResolver(
const std::shared_ptr<PartitionResolver>& aResolver) {
m_regionAttributes.m_partitionResolver = aResolver;
+ return *this;
}
-void AttributesFactory::setCacheLoader(const char* lib, const char* func) {
+AttributesFactory& AttributesFactory::setCacheLoader(const char* lib, const
char* func) {
m_regionAttributes.setCacheLoader(lib, func);
+ return *this;
}
-void AttributesFactory::setCacheWriter(const char* lib, const char* func) {
+AttributesFactory& AttributesFactory::setCacheWriter(const char* lib, const
char* func) {
m_regionAttributes.setCacheWriter(lib, func);
+ return *this;
}
-void AttributesFactory::setCacheListener(const char* lib, const char* func) {
+AttributesFactory& AttributesFactory::setCacheListener(const char* lib, const
char* func) {
m_regionAttributes.setCacheListener(lib, func);
+ return *this;
}
-void AttributesFactory::setPartitionResolver(const char* lib,
+AttributesFactory& AttributesFactory::setPartitionResolver(const char* lib,
const char* func) {
m_regionAttributes.setPartitionResolver(lib, func);
+ return *this;
}
-void AttributesFactory::setEntryIdleTimeout(ExpirationAction::Action action,
+AttributesFactory&
AttributesFactory::setEntryIdleTimeout(ExpirationAction::Action action,
std::chrono::seconds idleTimeout) {
m_regionAttributes.m_entryIdleTimeout = idleTimeout;
m_regionAttributes.m_entryIdleTimeoutExpirationAction = action;
+ return *this;
}
-void AttributesFactory::setEntryTimeToLive(ExpirationAction::Action action,
+AttributesFactory&
AttributesFactory::setEntryTimeToLive(ExpirationAction::Action action,
std::chrono::seconds timeToLive) {
m_regionAttributes.m_entryTimeToLive = timeToLive;
m_regionAttributes.m_entryTimeToLiveExpirationAction = action;
+ return *this;
}
-void AttributesFactory::setRegionIdleTimeout(ExpirationAction::Action action,
+AttributesFactory&
AttributesFactory::setRegionIdleTimeout(ExpirationAction::Action action,
std::chrono::seconds idleTimeout)
{
m_regionAttributes.m_regionIdleTimeout = idleTimeout;
m_regionAttributes.m_regionIdleTimeoutExpirationAction = action;
+ return *this;
}
-void AttributesFactory::setRegionTimeToLive(ExpirationAction::Action action,
+AttributesFactory&
AttributesFactory::setRegionTimeToLive(ExpirationAction::Action action,
std::chrono::seconds timeToLive) {
m_regionAttributes.m_regionTimeToLive = timeToLive;
m_regionAttributes.m_regionTimeToLiveExpirationAction = action;
+ return *this;
}
-void AttributesFactory::setInitialCapacity(int initialCapacity) {
+AttributesFactory& AttributesFactory::setInitialCapacity(int initialCapacity)
{
m_regionAttributes.m_initialCapacity = initialCapacity;
+ return *this;
}
-void AttributesFactory::setLoadFactor(float loadFactor) {
+AttributesFactory& AttributesFactory::setLoadFactor(float loadFactor) {
m_regionAttributes.m_loadFactor = loadFactor;
+ return *this;
}
-void AttributesFactory::setConcurrencyLevel(uint8_t concurrencyLevel) {
+AttributesFactory& AttributesFactory::setConcurrencyLevel(uint8_t
concurrencyLevel) {
m_regionAttributes.m_concurrencyLevel = concurrencyLevel;
+ return *this;
}
-/*
-void AttributesFactory::setStatisticsEnabled( bool statisticsEnabled)
-{
- m_regionAttributes.m_statisticsEnabled = statisticsEnabled;
-}
-*/
-
std::unique_ptr<RegionAttributes> AttributesFactory::createRegionAttributes() {
std::shared_ptr<RegionAttributes> res;
validateAttributes(m_regionAttributes);
return std::unique_ptr<RegionAttributes>(
new RegionAttributes(m_regionAttributes));
}
-void AttributesFactory::validateAttributes(RegionAttributes& attrs) {
+void AttributesFactory::validateAttributes(RegionAttributes& attrs) {
Review comment:
Formatting
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
> API should move from factory pattern to builder pattern and fluent model
> ------------------------------------------------------------------------
>
> Key: GEODE-3571
> URL: https://issues.apache.org/jira/browse/GEODE-3571
> Project: Geode
> Issue Type: Improvement
> Components: native client
> Reporter: Mark Hanson
>
> Discussion here http://markmail.org/thread/femkjloasj4yzvoj
> The basic idea is to move away from the creation of generic objects which are
> then further specified to specifying the object in advance then creating the
> more specific object.
> This in addition to using a model where with each attribute set on an object,
> the this pointer is provided as the return value. This allows call chaining.
> Obvious target changes include
> CacheFactory
> DistributedSystem
> AttributesFactory
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)