当前位置: 首页>>代码示例>>Java>>正文


Java SystemResources类代码示例

本文整理汇总了Java中com.google.ipc.invalidation.external.client.SystemResources的典型用法代码示例。如果您正苦于以下问题:Java SystemResources类的具体用法?Java SystemResources怎么用?Java SystemResources使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


SystemResources类属于com.google.ipc.invalidation.external.client包,在下文中一共展示了SystemResources类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: InvalidationClientCore

import com.google.ipc.invalidation.external.client.SystemResources; //导入依赖的package包/类
/**
 * 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);
}
 
开发者ID:mogoweb,项目名称:365browser,代码行数:39,代码来源:InvalidationClientCore.java

示例2: registerWithNetwork

import com.google.ipc.invalidation.external.client.SystemResources; //导入依赖的package包/类
/**
 * Registers handlers for received messages and network status changes with the network of
 * {@code resources}.
 */
private void registerWithNetwork(final SystemResources resources) {
  resources.getNetwork().setListener(new NetworkChannel.NetworkListener() {
    @Override
    public void onMessageReceived(byte[] incomingMessage) {
      InvalidationClientCore.this.handleIncomingMessage(incomingMessage);
    }
    @Override
    public void onOnlineStatusChange(boolean isOnline) {
      InvalidationClientCore.this.handleNetworkStatusChange(isOnline);
    }
    @Override
    public void onAddressChange() {
      // Send a message to the server. The header will include the new network address.
      Preconditions.checkState(internalScheduler.isRunningOnThread(), "Not on internal thread");
      sendInfoMessageToServer(false, false);
    }
  });
}
 
开发者ID:mogoweb,项目名称:365browser,代码行数:23,代码来源:InvalidationClientCore.java

示例3: Batcher

import com.google.ipc.invalidation.external.client.SystemResources; //导入依赖的package包/类
/** Creates a batcher from {@code marshalledState}. */
Batcher(SystemResources resources, Statistics statistics, BatcherState marshalledState) {
  this(resources, statistics);
  for (ObjectIdP registration : marshalledState.getRegistration()) {
    pendingRegistrations.put(registration, RegistrationP.OpType.REGISTER);
  }
  for (ObjectIdP unregistration : marshalledState.getUnregistration()) {
    pendingRegistrations.put(unregistration, RegistrationP.OpType.UNREGISTER);
  }
  for (InvalidationP ack : marshalledState.getAcknowledgement()) {
    pendingAckedInvalidations.add(ack);
  }
  for (RegistrationSubtree subtree : marshalledState.getRegistrationSubtree()) {
    pendingRegSubtrees.add(subtree);
  }
  pendingInitializeMessage = marshalledState.getNullableInitializeMessage();
  if (marshalledState.hasInfoMessage()) {
    pendingInfoMessage = marshalledState.getInfoMessage();
  }
}
 
开发者ID:mogoweb,项目名称:365browser,代码行数:21,代码来源:ProtocolHandler.java

示例4: ProtocolHandler

import com.google.ipc.invalidation.external.client.SystemResources; //导入依赖的package包/类
/**
 * 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());
}
 
开发者ID:mogoweb,项目名称:365browser,代码行数:35,代码来源:ProtocolHandler.java

示例5: InvalidationClientCore

import com.google.ipc.invalidation.external.client.SystemResources; //导入依赖的package包/类
/**
 * Constructs a client with state initialized from {@code marshalledState}.
 *
 * @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 listener application callback
 */
public InvalidationClientCore(final SystemResources resources, Random random, int clientType,
    final byte[] clientName, ClientConfigP config, String applicationName,
    InvalidationClientState marshalledState, InvalidationListener listener) {
  this(resources, random, clientType, clientName, config, applicationName,
      marshalledState.getRunState(), marshalledState.getRegistrationManagerState(),
      marshalledState.getProtocolHandlerState(), marshalledState.getStatisticsState(), listener);
  // Unmarshall.
  if (marshalledState.hasClientToken()) {
    clientToken = marshalledState.getClientToken();
  }
  if (marshalledState.hasNonce()) {
    nonce = marshalledState.getNonce();
  }
  this.shouldSendRegistrations = marshalledState.getShouldSendRegistrations();
  this.lastMessageSendTimeMs = marshalledState.getLastMessageSendTimeMs();
  this.isOnline = marshalledState.getIsOnline();
  createSchedulingTasks(marshalledState);

  // We register with the network after unmarshalling our isOnline value. This is because when
  // we register with the network, it may give us a new value for isOnline. If we unmarshalled
  // after registering, then we would clobber the new value with the old marshalled value, which
  // is wrong.
  registerWithNetwork(resources);
  logger.info("Created client: %s", this);
}
 
开发者ID:morristech,项目名称:android-chromium,代码行数:37,代码来源:InvalidationClientCore.java

示例6: registerWithNetwork

import com.google.ipc.invalidation.external.client.SystemResources; //导入依赖的package包/类
/**
 * Registers handlers for received messages and network status changes with the network of
 * {@code resources}.
 */
private void registerWithNetwork(final SystemResources resources) {
  resources.getNetwork().setListener(new NetworkChannel.NetworkListener() {
    @Override
    public void onMessageReceived(byte[] incomingMessage) {
      final String name = "handleIncomingMessage";
      InvalidationClientCore.this.handleIncomingMessage(incomingMessage);
    }
    @Override
    public void onOnlineStatusChange(boolean isOnline) {
      InvalidationClientCore.this.handleNetworkStatusChange(isOnline);
    }
    @Override
    public void onAddressChange() {
      // Send a message to the server. The header will include the new network address.
      Preconditions.checkState(internalScheduler.isRunningOnThread(), "Not on internal thread");
      sendInfoMessageToServer(false, false);
    }
  });
}
 
开发者ID:morristech,项目名称:android-chromium,代码行数:24,代码来源:InvalidationClientCore.java

示例7: retryUntilSuccessWithBackoff

import com.google.ipc.invalidation.external.client.SystemResources; //导入依赖的package包/类
/**
 * A utility function to run an async runnable with exponential backoff after failures.
 * @param runnable the asynchronous runnable.
 * @param scheduler used to schedule retries.
 * @param backOffGenerator a backoff generator that returns how to long to wait between retries.
 *     The client must pass a new instance or reset the backoff generator before calling this
 *     method.
 */

static void retryUntilSuccessWithBackoff(final SystemResources.Scheduler scheduler,
    final ExponentialBackoffDelayGenerator backOffGenerator, final AsyncRunnable runnable) {
  logger.fine("Running %s", runnable);
  runnable.run(new CompletionCallback() {
      @Override
      public void success() {
        logger.fine("%s succeeded", runnable);
      }

      @Override
      public void failure() {
        int nextDelay = backOffGenerator.getNextDelay();
        logger.fine("%s failed, retrying after %s ms", nextDelay);
        scheduler.schedule(nextDelay, new Runnable() {
          @Override
          public void run() {
            retryUntilSuccessWithBackoff(scheduler, backOffGenerator, runnable);
          }
        });
      }
  });
}
 
开发者ID:morristech,项目名称:android-chromium,代码行数:32,代码来源:AndroidChannel.java

示例8: setSystemResources

import com.google.ipc.invalidation.external.client.SystemResources; //导入依赖的package包/类
@Override
public void setSystemResources(SystemResources resources) {
  this.resources = resources;

  // Prefetch the auth sub token.  Since this might require an HTTP round trip, we do this
  // as soon as the resources are available.
  // TODO: Find a better place to fetch the auth token; this method
  // doesn't sound like one that should be doing work.
  retryUntilSuccessWithBackoff(resources.getInternalScheduler(),
      new ExponentialBackoffDelayGenerator(
          new Random(), INITIAL_AUTH_TOKEN_RETRY_DELAY_MS, MAX_AUTH_TOKEN_RETRY_FACTOR),
      new AsyncRunnable() {
        @Override
        public void run(CompletionCallback callback) {
          requestAuthToken(callback);
        }
      });
}
 
开发者ID:morristech,项目名称:android-chromium,代码行数:19,代码来源:AndroidChannel.java

示例9: createClient

import com.google.ipc.invalidation.external.client.SystemResources; //导入依赖的package包/类
/**
 * Creates a new InvalidationClient instance that the proxy will delegate requests to and listen
 * for events from.
 */
// Overridden by tests to inject mock clients or for listener interception

InvalidationClient createClient(SystemResources resources, int clientType, byte[] clientName,
    String applicationName, InvalidationListener listener, ClientConfigP config) {
  // We always use C2DM, so set the channel-supports-offline-delivery bit on our config.
  final ClientConfigP.Builder configBuilder;
  if (config == null) {
    configBuilder = InvalidationClientCore.createConfig();
  } else {
    configBuilder = ClientConfigP.newBuilder(config);
  }
  configBuilder.setChannelSupportsOfflineDelivery(true);
  config = configBuilder.build();
  Random random = new Random(resources.getInternalScheduler().getCurrentTimeMs());
  return new InvalidationClientImpl(resources, random, clientType, clientName, config,
      applicationName, listener);
}
 
开发者ID:morristech,项目名称:android-chromium,代码行数:22,代码来源:AndroidClientProxy.java

示例10: Batcher

import com.google.ipc.invalidation.external.client.SystemResources; //导入依赖的package包/类
/** Creates a batcher from {@code marshalledState}. */
Batcher(SystemResources resources, Statistics statistics, BatcherState marshalledState) {
  this(resources, statistics);
  for (ObjectIdP registration : marshalledState.getRegistrationList()) {
    pendingRegistrations.put(ProtoWrapper.of(registration), RegistrationP.OpType.REGISTER);
  }
  for (ObjectIdP unregistration : marshalledState.getUnregistrationList()) {
    pendingRegistrations.put(ProtoWrapper.of(unregistration), RegistrationP.OpType.UNREGISTER);
  }
  for (InvalidationP ack : marshalledState.getAcknowledgementList()) {
    pendingAckedInvalidations.add(ProtoWrapper.of(ack));
  }
  for (RegistrationSubtree subtree : marshalledState.getRegistrationSubtreeList()) {
    pendingRegSubtrees.add(ProtoWrapper.of(subtree));
  }
  if (marshalledState.hasInitializeMessage()) {
    pendingInitializeMessage = marshalledState.getInitializeMessage();
  }
  if (marshalledState.hasInfoMessage()) {
    pendingInfoMessage = marshalledState.getInfoMessage();
  }
}
 
开发者ID:morristech,项目名称:android-chromium,代码行数:23,代码来源:ProtocolHandler.java

示例11: AndroidInvalidationClientImpl

import com.google.ipc.invalidation.external.client.SystemResources; //导入依赖的package包/类
/**
 * Creates an instance with state restored from {@code marshalledState}. Other parameters are as
 * in {@link InvalidationClientCore}.
 */
AndroidInvalidationClientImpl(Context context, SystemResources resources, Random random,
    AndroidTiclState marshalledState) {
  super(resources,
      random,
      marshalledState.getMetadata().getClientType(),
      marshalledState.getMetadata().getClientName().getByteArray(),
      marshalledState.getMetadata().getClientConfig(),
      getApplicationName(context),
      marshalledState.getTiclState(),
      new IntentForwardingListener(context, resources.getLogger()));
  this.schedulingId = marshalledState.getMetadata().getTiclId();
  initializeSchedulerWithRecurringTasks();
}
 
开发者ID:mogoweb,项目名称:365browser,代码行数:18,代码来源:AndroidInvalidationClientImpl.java

示例12: restoreTicl

import com.google.ipc.invalidation.external.client.SystemResources; //导入依赖的package包/类
/**
 * Restores the Ticl from persistent storage if it exists. Otherwise, returns {@code null}.
 * @param context Android system context
 * @param resources resources to use for the Ticl
 */
static AndroidInvalidationClientImpl restoreTicl(Context context,
    SystemResources resources) {
  AndroidTiclState state = readTiclState(context, resources.getLogger());
  if (state == null) {
    return null;
  }
  AndroidInvalidationClientImpl ticl = new AndroidInvalidationClientImpl(context, resources,
      random, state);
  initScheduler(resources, ticl, state.getScheduledTask());
  AndroidInternalScheduler scheduler =
      (AndroidInternalScheduler) resources.getInternalScheduler();
  scheduler.handleImplicitSchedulerEvent();
  return ticl;
}
 
开发者ID:mogoweb,项目名称:365browser,代码行数:20,代码来源:TiclStateManager.java

示例13: createTicl

import com.google.ipc.invalidation.external.client.SystemResources; //导入依赖的package包/类
/** Creates a new Ticl. Persistent storage must not exist. */
static void createTicl(Context context, SystemResources resources, int clientType,
    byte[] clientName, ClientConfigP config, boolean skipStartForTest) {
  Preconditions.checkState(!doesStateFileExist(context), "Ticl already exists");
  AndroidInvalidationClientImpl ticl = new AndroidInvalidationClientImpl(context, resources,
      random, clientType, clientName, config);
  if (!skipStartForTest) {
    // Ticls are started when created unless this should be skipped for tests; we allow tests
    // to skip starting Ticls because many integration tests assume that Ticls will not be
    // started when created.
    initScheduler(resources, ticl, new ArrayList<ScheduledTask>(0));
    ticl.start();
  }
  saveTicl(context, resources.getLogger(), ticl);
}
 
开发者ID:mogoweb,项目名称:365browser,代码行数:16,代码来源:TiclStateManager.java

示例14: initScheduler

import com.google.ipc.invalidation.external.client.SystemResources; //导入依赖的package包/类
/**
 * Sets the scheduling id on the scheduler in {@code resources} to {@code ticl.getSchedulingId()}
 * and seeds the scheduler with scheduled tasks that had been persisted.
 */
private static void initScheduler(SystemResources resources,
    AndroidInvalidationClientImpl ticl, List<ScheduledTask> scheduledTasks) {
  AndroidInternalScheduler scheduler =
      (AndroidInternalScheduler) resources.getInternalScheduler();
  scheduler.init(ticl.getSchedulingId(), scheduledTasks);
}
 
开发者ID:mogoweb,项目名称:365browser,代码行数:11,代码来源:TiclStateManager.java

示例15: BatchingTask

import com.google.ipc.invalidation.external.client.SystemResources; //导入依赖的package包/类
/** 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;
}
 
开发者ID:mogoweb,项目名称:365browser,代码行数:8,代码来源:InvalidationClientCore.java


注:本文中的com.google.ipc.invalidation.external.client.SystemResources类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。