17 #ifndef CONFIGURATION_PROCESSOR_HPP_
18 #define CONFIGURATION_PROCESSOR_HPP_
22 #ifdef KAA_USE_CONFIGURATION
43 class ConfigurationProcessor :
public IConfigurationProcessor {
45 typedef avro::ValidSchema Schema;
47 ConfigurationProcessor() {}
48 ConfigurationProcessor(std::shared_ptr<avro::ValidSchema> schema) { schema_ = schema; }
49 ~ConfigurationProcessor() { schema_.reset(); }
54 void processConfigurationData(
const std::uint8_t *data, std::size_t dataLength,
bool fullResync);
59 void subscribeForUpdates(IGenericDeltaReceiver &receiver);
60 void unsubscribeFromUpdates(IGenericDeltaReceiver &receiver);
65 void addOnProcessedObserver(IConfigurationProcessedObserver &observer);
66 void removeOnProcessedObserver(IConfigurationProcessedObserver &observer);
71 void onSchemaUpdated(std::shared_ptr<avro::ValidSchema> schema);
76 KaaObservable<void (int, const avro::GenericDatum &, bool), IGenericDeltaReceiver *> deltaReceivers_;
77 KaaObservable<void (), IConfigurationProcessedObserver *> onProcessedObservers_;
79 std::shared_ptr<Schema> schema_;
#define KAA_R_MUTEX_DECLARE(name)