com.google.ipc.invalidation.util.Smearer Java Examples

The following examples show how to use com.google.ipc.invalidation.util.Smearer. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: InvalidationClientCore.java    From 365browser with Apache License 2.0 6 votes vote down vote up
/**
 * Constructs a client.
 *
 * @param resources resources to use during execution
 * @param random a random number generator
 * @param clientType client type code
 * @param clientName application identifier for the client
 * @param config configuration for the client
 * @param applicationName name of the application using the library (for debugging/monitoring)
 * @param regManagerState marshalled registration manager state, if any
 * @param protocolHandlerState marshalled protocol handler state, if any
 * @param listener application callback
 */
private InvalidationClientCore(final SystemResources resources, Random random, int clientType,
    final byte[] clientName, ClientConfigP config, String applicationName,
    RunStateP ticlRunState,
    RegistrationManagerStateP regManagerState,
    ProtocolHandlerState protocolHandlerState,
    StatisticsState statisticsState,
    InvalidationListener listener) {
  this.resources = Preconditions.checkNotNull(resources);
  this.random = random;
  this.logger = Preconditions.checkNotNull(resources.getLogger());
  this.internalScheduler = resources.getInternalScheduler();
  this.storage = resources.getStorage();
  this.config = config;
  this.ticlState = (ticlRunState == null) ? new RunState() : new RunState(ticlRunState);
  this.smearer = new Smearer(random, this.config.getSmearPercent());
  this.applicationClientId = ApplicationClientIdP.create(clientType, new Bytes(clientName));
  this.listener = listener;
  this.statistics = (statisticsState != null)
      ? Statistics.deserializeStatistics(resources.getLogger(), statisticsState.getCounter())
      : new Statistics();
  this.registrationManager = new RegistrationManager(logger, statistics, digestFn,
      regManagerState);
  this.protocolHandler = new ProtocolHandler(config.getProtocolHandlerConfig(), resources,
      smearer, statistics, clientType, applicationName, this, protocolHandlerState);
}
 
Example #2
Source File: RecurringTask.java    From 365browser with Apache License 2.0 6 votes vote down vote up
/**
 * Creates a recurring task with the given parameters. The specs of the parameters are given in
 * the instance variables.
 * <p>
 * The created task is first scheduled with a smeared delay of {@code initialDelayMs}. If the
 * {@code this.run()} returns true on its execution, the task is rescheduled after a
 * {@code timeoutDelayMs} + smeared delay of {@code initialDelayMs} or {@code timeoutDelayMs} +
 * {@code delayGenerator.getNextDelay()} depending on whether the {@code delayGenerator} is null
 * or not.
 */

public RecurringTask(String name, Scheduler scheduler, Logger logger, Smearer smearer,
    TiclExponentialBackoffDelayGenerator delayGenerator,
    final int initialDelayMs, final int timeoutDelayMs) {
  this.delayGenerator = delayGenerator;
  this.name = Preconditions.checkNotNull(name);
  this.logger = Preconditions.checkNotNull(logger);
  this.scheduler = Preconditions.checkNotNull(scheduler);
  this.smearer = Preconditions.checkNotNull(smearer);
  this.initialDelayMs = initialDelayMs;
  this.isScheduled = false;
  this.timeoutDelayMs = timeoutDelayMs;

  // Create a runnable that runs the task. If the task asks for a retry, reschedule it after
  // at a timeout delay. Otherwise, resets the delayGenerator.
  this.runnable = createRunnable();
}
 
Example #3
Source File: RecurringTask.java    From android-chromium with BSD 2-Clause "Simplified" License 6 votes vote down vote up
/**
 * Creates a recurring task with the given parameters. The specs of the parameters are given in
 * the instance variables.
 * <p>
 * The created task is first scheduled with a smeared delay of {@code initialDelayMs}. If the
 * {@code this.run()} returns true on its execution, the task is rescheduled after a
 * {@code timeoutDelayMs} + smeared delay of {@code initialDelayMs} or {@code timeoutDelayMs} +
 * {@code delayGenerator.getNextDelay()} depending on whether the {@code delayGenerator} is null
 * or not.
 */

public RecurringTask(String name, Scheduler scheduler, Logger logger, Smearer smearer,
    TiclExponentialBackoffDelayGenerator delayGenerator,
    final int initialDelayMs, final int timeoutDelayMs) {
  this.delayGenerator = delayGenerator;
  this.name = Preconditions.checkNotNull(name);
  this.logger = Preconditions.checkNotNull(logger);
  this.scheduler = Preconditions.checkNotNull(scheduler);
  this.smearer = Preconditions.checkNotNull(smearer);
  this.initialDelayMs = initialDelayMs;
  this.isScheduled = false;
  this.timeoutDelayMs = timeoutDelayMs;

  // Create a runnable that runs the task. If the task asks for a retry, reschedule it after
  // at a timeout delay. Otherwise, resets the delayGenerator.
  this.runnable = createRunnable();
}
 
Example #4
Source File: ProtocolHandler.java    From 365browser with Apache License 2.0 6 votes vote down vote up
/**
 * Creates an instance.
 *
 * @param config configuration for the client
 * @param resources resources to use
 * @param smearer a smearer to randomize delays
 * @param statistics track information about messages sent/received, etc
 * @param applicationName name of the application using the library (for debugging/monitoring)
 * @param listener callback for protocol events
 */
ProtocolHandler(ProtocolHandlerConfigP config, final SystemResources resources,
    Smearer smearer, Statistics statistics, int clientType, String applicationName,
    ProtocolListener listener, ProtocolHandlerState marshalledState) {
  this.logger = resources.getLogger();
  this.statistics = statistics;
  this.internalScheduler = resources.getInternalScheduler();
  this.network = resources.getNetwork();
  this.listener = listener;
  this.clientVersion = CommonProtos.newClientVersion(resources.getPlatform(), "Java",
      applicationName);
  this.clientType = clientType;
  if (marshalledState == null) {
    // If there is no marshalled state, construct a clean batcher.
    this.batcher = new Batcher(resources, statistics);
  } else {
    // Otherwise, restore the batcher from the marshalled state.
    this.batcher = new Batcher(resources, statistics, marshalledState.getBatcherState());
    this.messageId = marshalledState.getMessageId();
    this.lastKnownServerTimeMs = marshalledState.getLastKnownServerTimeMs();
    this.nextMessageSendTimeMs = marshalledState.getNextMessageSendTimeMs();
  }
  logger.info("Created protocol handler for application %s, platform %s", applicationName,
      resources.getPlatform());
}
 
Example #5
Source File: RecurringTask.java    From android-chromium with BSD 2-Clause "Simplified" License 6 votes vote down vote up
/**
 * Creates a recurring task with the given parameters. The specs of the parameters are given in
 * the instance variables.
 * <p>
 * The created task is first scheduled with a smeared delay of {@code initialDelayMs}. If the
 * {@code this.run()} returns true on its execution, the task is rescheduled after a
 * {@code timeoutDelayMs} + smeared delay of {@code initialDelayMs} or {@code timeoutDelayMs} +
 * {@code delayGenerator.getNextDelay()} depending on whether the {@code delayGenerator} is null
 * or not.
 */

public RecurringTask(String name, Scheduler scheduler, Logger logger, Smearer smearer,
    TiclExponentialBackoffDelayGenerator delayGenerator,
    final int initialDelayMs, final int timeoutDelayMs) {
  this.delayGenerator = delayGenerator;
  this.name = Preconditions.checkNotNull(name);
  this.logger = Preconditions.checkNotNull(logger);
  this.scheduler = Preconditions.checkNotNull(scheduler);
  this.smearer = Preconditions.checkNotNull(smearer);
  this.initialDelayMs = initialDelayMs;
  this.isScheduled = false;
  this.timeoutDelayMs = timeoutDelayMs;

  // Create a runnable that runs the task. If the task asks for a retry, reschedule it after
  // at a timeout delay. Otherwise, resets the delayGenerator.
  this.runnable = createRunnable();
}
 
Example #6
Source File: ProtocolHandler.java    From android-chromium with BSD 2-Clause "Simplified" License 5 votes vote down vote up
/**
 * Creates an instance.
 *
 * @param config configuration for the client
 * @param resources resources to use
 * @param smearer a smearer to randomize delays
 * @param statistics track information about messages sent/received, etc
 * @param applicationName name of the application using the library (for debugging/monitoring)
 * @param listener callback for protocol events
 */
ProtocolHandler(ProtocolHandlerConfigP config, final SystemResources resources,
    Smearer smearer, Statistics statistics, int clientType, String applicationName,
    ProtocolListener listener, TiclMessageValidator2 msgValidator,
    ProtocolHandlerState marshalledState) {
  this.logger = resources.getLogger();
  this.statistics = statistics;
  this.internalScheduler = resources.getInternalScheduler();
  this.network = resources.getNetwork();
  this.listener = listener;
  this.msgValidator = msgValidator;
  this.clientVersion = CommonProtos2.newClientVersion(resources.getPlatform(), "Java",
      applicationName);
  this.clientType = clientType;
  if (marshalledState == null) {
    // If there is no marshalled state, construct a clean batcher.
    this.batcher = new Batcher(resources, statistics);
  } else {
    // Otherwise, restore the batcher from the marshalled state.
    this.batcher = new Batcher(resources, statistics, marshalledState.getBatcherState());
    this.messageId = marshalledState.getMessageId();
    this.lastKnownServerTimeMs = marshalledState.getLastKnownServerTimeMs();
    this.nextMessageSendTimeMs = marshalledState.getNextMessageSendTimeMs();
  }
  logger.info("Created protocol handler for application %s, platform %s", applicationName,
      resources.getPlatform());
}
 
Example #7
Source File: InvalidationClientCore.java    From 365browser with Apache License 2.0 5 votes vote down vote up
/** Creates a new instance with default state. */
BatchingTask(ProtocolHandler protocolHandler, SystemResources resources, Smearer smearer,
    int batchingDelayMs) {
  super(TASK_NAME, resources.getInternalScheduler(), resources.getLogger(), smearer, null,
      batchingDelayMs, NO_DELAY);
  this.protocolHandler = protocolHandler;
}
 
Example #8
Source File: RecurringTask.java    From android-chromium with BSD 2-Clause "Simplified" License 5 votes vote down vote up
/**
 * Creates a recurring task from {@code marshalledState}. Other parameters are as in the
 * constructor above.
 */
RecurringTask(String name, Scheduler scheduler, Logger logger, Smearer smearer,
    TiclExponentialBackoffDelayGenerator delayGenerator,
    RecurringTaskState marshalledState) {
  this(name, scheduler, logger, smearer, delayGenerator, marshalledState.getInitialDelayMs(),
      marshalledState.getTimeoutDelayMs());
  this.isScheduled = marshalledState.getScheduled();
}
 
Example #9
Source File: InvalidationClientCore.java    From android-chromium with BSD 2-Clause "Simplified" License 5 votes vote down vote up
/**
 * Constructs a client.
 *
 * @param resources resources to use during execution
 * @param random a random number generator
 * @param clientType client type code
 * @param clientName application identifier for the client
 * @param config configuration for the client
 * @param applicationName name of the application using the library (for debugging/monitoring)
 * @param regManagerState marshalled registration manager state, if any
 * @param protocolHandlerState marshalled protocol handler state, if any
 * @param listener application callback
 */
private InvalidationClientCore(final SystemResources resources, Random random, int clientType,
    final byte[] clientName, ClientConfigP config, String applicationName,
    RunStateP ticlRunState,
    RegistrationManagerStateP regManagerState,
    ProtocolHandlerState protocolHandlerState,
    StatisticsState statisticsState,
    InvalidationListener listener) {
  this.resources = Preconditions.checkNotNull(resources);
  this.random = random;
  this.logger = Preconditions.checkNotNull(resources.getLogger());
  this.internalScheduler = resources.getInternalScheduler();
  this.storage = resources.getStorage();
  this.config = config;
  this.ticlState = (ticlRunState == null) ? new RunState() : new RunState(ticlRunState);
  this.smearer = new Smearer(random, this.config.getSmearPercent());
  this.applicationClientId =
      CommonProtos2.newApplicationClientIdP(clientType, ByteString.copyFrom(clientName));
  this.listener = listener;
  this.msgValidator = new TiclMessageValidator2(resources.getLogger());
  this.statistics = (statisticsState != null) ?
      Statistics.deserializeStatistics(resources.getLogger(), statisticsState.getCounterList()) :
      new Statistics();
  this.registrationManager = new RegistrationManager(logger, statistics, digestFn,
      regManagerState);
  this.protocolHandler = new ProtocolHandler(config.getProtocolHandlerConfig(), resources,
      smearer, statistics, clientType, applicationName, this, msgValidator, protocolHandlerState);
}
 
Example #10
Source File: InvalidationClientCore.java    From android-chromium with BSD 2-Clause "Simplified" License 5 votes vote down vote up
/** Creates a new instance with state from {@code marshalledState}. */
BatchingTask(ProtocolHandler protocolHandler, SystemResources resources, Smearer smearer,
    RecurringTaskState marshalledState) {
  super(TASK_NAME, resources.getInternalScheduler(), resources.getLogger(), smearer, null,
      marshalledState);
  this.protocolHandler = protocolHandler;
}
 
Example #11
Source File: InvalidationClientCore.java    From android-chromium with BSD 2-Clause "Simplified" License 5 votes vote down vote up
/** Creates a new instance with default state. */
BatchingTask(ProtocolHandler protocolHandler, SystemResources resources, Smearer smearer,
    int batchingDelayMs) {
  super(TASK_NAME, resources.getInternalScheduler(), resources.getLogger(), smearer, null,
      batchingDelayMs, NO_DELAY);
  this.protocolHandler = protocolHandler;
}
 
Example #12
Source File: ProtocolHandler.java    From android-chromium with BSD 2-Clause "Simplified" License 5 votes vote down vote up
/**
 * Creates an instance.
 *
 * @param config configuration for the client
 * @param resources resources to use
 * @param smearer a smearer to randomize delays
 * @param statistics track information about messages sent/received, etc
 * @param applicationName name of the application using the library (for debugging/monitoring)
 * @param listener callback for protocol events
 */
ProtocolHandler(ProtocolHandlerConfigP config, final SystemResources resources,
    Smearer smearer, Statistics statistics, int clientType, String applicationName,
    ProtocolListener listener, TiclMessageValidator2 msgValidator,
    ProtocolHandlerState marshalledState) {
  this.logger = resources.getLogger();
  this.statistics = statistics;
  this.internalScheduler = resources.getInternalScheduler();
  this.network = resources.getNetwork();
  this.listener = listener;
  this.msgValidator = msgValidator;
  this.clientVersion = CommonProtos2.newClientVersion(resources.getPlatform(), "Java",
      applicationName);
  this.clientType = clientType;
  if (marshalledState == null) {
    // If there is no marshalled state, construct a clean batcher.
    this.batcher = new Batcher(resources, statistics);
  } else {
    // Otherwise, restore the batcher from the marshalled state.
    this.batcher = new Batcher(resources, statistics, marshalledState.getBatcherState());
    this.messageId = marshalledState.getMessageId();
    this.lastKnownServerTimeMs = marshalledState.getLastKnownServerTimeMs();
    this.nextMessageSendTimeMs = marshalledState.getNextMessageSendTimeMs();
  }
  logger.info("Created protocol handler for application %s, platform %s", applicationName,
      resources.getPlatform());
}
 
Example #13
Source File: RecurringTask.java    From android-chromium with BSD 2-Clause "Simplified" License 5 votes vote down vote up
/**
 * Creates a recurring task from {@code marshalledState}. Other parameters are as in the
 * constructor above.
 */
RecurringTask(String name, Scheduler scheduler, Logger logger, Smearer smearer,
    TiclExponentialBackoffDelayGenerator delayGenerator,
    RecurringTaskState marshalledState) {
  this(name, scheduler, logger, smearer, delayGenerator, marshalledState.getInitialDelayMs(),
      marshalledState.getTimeoutDelayMs());
  this.isScheduled = marshalledState.getScheduled();
}
 
Example #14
Source File: InvalidationClientCore.java    From android-chromium with BSD 2-Clause "Simplified" License 5 votes vote down vote up
/**
 * Constructs a client.
 *
 * @param resources resources to use during execution
 * @param random a random number generator
 * @param clientType client type code
 * @param clientName application identifier for the client
 * @param config configuration for the client
 * @param applicationName name of the application using the library (for debugging/monitoring)
 * @param regManagerState marshalled registration manager state, if any
 * @param protocolHandlerState marshalled protocol handler state, if any
 * @param listener application callback
 */
private InvalidationClientCore(final SystemResources resources, Random random, int clientType,
    final byte[] clientName, ClientConfigP config, String applicationName,
    RunStateP ticlRunState,
    RegistrationManagerStateP regManagerState,
    ProtocolHandlerState protocolHandlerState,
    StatisticsState statisticsState,
    InvalidationListener listener) {
  this.resources = Preconditions.checkNotNull(resources);
  this.random = random;
  this.logger = Preconditions.checkNotNull(resources.getLogger());
  this.internalScheduler = resources.getInternalScheduler();
  this.storage = resources.getStorage();
  this.config = config;
  this.ticlState = (ticlRunState == null) ? new RunState() : new RunState(ticlRunState);
  this.smearer = new Smearer(random, this.config.getSmearPercent());
  this.applicationClientId =
      CommonProtos2.newApplicationClientIdP(clientType, ByteString.copyFrom(clientName));
  this.listener = listener;
  this.msgValidator = new TiclMessageValidator2(resources.getLogger());
  this.statistics = (statisticsState != null) ?
      Statistics.deserializeStatistics(resources.getLogger(), statisticsState.getCounterList()) :
      new Statistics();
  this.registrationManager = new RegistrationManager(logger, statistics, digestFn,
      regManagerState);
  this.protocolHandler = new ProtocolHandler(config.getProtocolHandlerConfig(), resources,
      smearer, statistics, clientType, applicationName, this, msgValidator, protocolHandlerState);
}
 
Example #15
Source File: InvalidationClientCore.java    From android-chromium with BSD 2-Clause "Simplified" License 5 votes vote down vote up
/** Creates a new instance with state from {@code marshalledState}. */
BatchingTask(ProtocolHandler protocolHandler, SystemResources resources, Smearer smearer,
    RecurringTaskState marshalledState) {
  super(TASK_NAME, resources.getInternalScheduler(), resources.getLogger(), smearer, null,
      marshalledState);
  this.protocolHandler = protocolHandler;
}
 
Example #16
Source File: InvalidationClientCore.java    From android-chromium with BSD 2-Clause "Simplified" License 5 votes vote down vote up
/** Creates a new instance with default state. */
BatchingTask(ProtocolHandler protocolHandler, SystemResources resources, Smearer smearer,
    int batchingDelayMs) {
  super(TASK_NAME, resources.getInternalScheduler(), resources.getLogger(), smearer, null,
      batchingDelayMs, NO_DELAY);
  this.protocolHandler = protocolHandler;
}
 
Example #17
Source File: RecurringTask.java    From 365browser with Apache License 2.0 5 votes vote down vote up
/**
 * Creates a recurring task from {@code marshalledState}. Other parameters are as in the
 * constructor above.
 */
RecurringTask(String name, Scheduler scheduler, Logger logger, Smearer smearer,
    TiclExponentialBackoffDelayGenerator delayGenerator,
    RecurringTaskState marshalledState) {
  this(name, scheduler, logger, smearer, delayGenerator, marshalledState.getInitialDelayMs(),
      marshalledState.getTimeoutDelayMs());
  this.isScheduled = marshalledState.getScheduled();
}
 
Example #18
Source File: InvalidationClientCore.java    From 365browser with Apache License 2.0 5 votes vote down vote up
/** Creates a new instance with state from {@code marshalledState}. */
BatchingTask(ProtocolHandler protocolHandler, SystemResources resources, Smearer smearer,
    RecurringTaskState marshalledState) {
  super(TASK_NAME, resources.getInternalScheduler(), resources.getLogger(), smearer, null,
      marshalledState);
  this.protocolHandler = protocolHandler;
}
 
Example #19
Source File: RecurringTask.java    From android-chromium with BSD 2-Clause "Simplified" License 4 votes vote down vote up
/** Returns the smearer used for randomizing delays. */
Smearer getSmearer() {
  return smearer;
}
 
Example #20
Source File: RecurringTask.java    From 365browser with Apache License 2.0 4 votes vote down vote up
/** Returns the smearer used for randomizing delays. */
Smearer getSmearer() {
  return smearer;
}
 
Example #21
Source File: RecurringTask.java    From android-chromium with BSD 2-Clause "Simplified" License 4 votes vote down vote up
/** Returns the smearer used for randomizing delays. */
Smearer getSmearer() {
  return smearer;
}