Все еще работаем над репро для этого, но могу сказать наверняка, что это не проблема с C ++, разговаривающим с Geode Native из последней ветки разработки. Следующий тестовый код проходит:
auto cache = createTestCache();
auto poolFactory =
cache.getPoolManager().createFactory().setSubscriptionEnabled(true);
cluster.applyLocators(poolFactory);
poolFactory.create("default");
auto region = setupCachingProxyRegion(cache);
std::vector<std::shared_ptr<CacheableKey> > keys;
keys.push_back(std::make_shared<CacheableInt32>(123456));
region->registerKeys(keys, false, true);
auto attrMutator = region->getAttributesMutator();
auto listener = std::make_shared<SimpleCacheListioner>();
attrMutator->setCacheListener(listener);
region->put(123456, "foo");
region->put(123456, "bar");
region->put(123456, "baz");
region->put(123456, "qux");
region->unregisterKeys(keys);
auto stillInterested = region->getInterestList();
EXPECT_EQ(stillInterested.size(), 0);
EXPECT_EQ(listener->getCreateCount(), 1);
EXPECT_EQ(listener->getUpdateCount(), 3);
EXPECT_EQ(listener->getInvalidateCount(), 0);
EXPECT_EQ(listener->getDestroyCount(), 0);
cache.close();
Теоретически , собственный клиент C # /. net Geode просто упаковывает код C ++ с минимальными изменениями, поэтому язык не должен быть проблемой здесь, но, конечно, я не буду знать, пока я не попробую. Кроме того, я не помню никаких изменений, которые были внесены в эту часть кода с момента удаления 1.10.0, но опять же я не буду знать, пока я не попробую, так что откат к этому коммиту и повторный запуск теста также включены мой список дел. Когда / если я узнаю больше, я предоставлю обновление здесь.