/** * Sets a list of vbuckets to stream keys from. * * @param vbs - A list of vbuckets. */ public void setVbucketlist(int[] vbs) { byte[] vblist = new byte[(vbs.length + 1) * VBUCKET_LIST_FIELD_LENGTH]; for (int i = 0; i < vbs.length + 1; i++) { if (i == 0) Util.valueToField(vblist, 0, VBUCKET_LIST_FIELD_LENGTH, (long) vbs.length); else if (vbs[i - 1] < TapStreamClient.NUM_VBUCKETS && vbs[i - 1] >= 0) Util.valueToField( vblist, (i * VBUCKET_LIST_FIELD_LENGTH), VBUCKET_LIST_FIELD_LENGTH, (long) vbs[i - 1]); else LOG.info("vBucket ignored " + vbs[i - 1] + "is not a valid vBucket number"); } vbucketlist = vblist; encode(); }
/** * Sets the flags for the tap stream. These flags decide what kind of tap stream will be received. * * @param f The flags to use for this tap stream. */ public void setFlags(Flag f) { if (flags.length != FLAGS_FIELD_LENGTH) flags = new byte[FLAGS_FIELD_LENGTH]; if (!f.hasFlag(getFlags())) { Util.valueToField(flags, 0, FLAGS_FIELD_LENGTH, (long) f.flag); encode(); } }
/** * Stream all keys inserted into the server after a given date. * * @param date - The date to stream keys from. Null to stream all keys. */ public void setBackfill(Date date) { backfilldate = new byte[BACKFILL_DATE_FIELD_LENGTH]; if (date == null) { for (int i = 0; i < 8; i++) backfilldate[i] = -1; } else { Util.valueToField(backfilldate, 0, BACKFILL_DATE_FIELD_LENGTH, date.getTime()); } encode(); }
/** * Returns the flags for this message. * * @return An int value of flags set for this tap message. */ public int getFlags() { if (flags.length != FLAGS_FIELD_LENGTH) return 0; return (int) Util.fieldToValue(flags, 0, FLAGS_FIELD_LENGTH); }