code: public final int runOperation(@NonNull final ChronosOperation operation, @NonNull final String tag,
              final boolean broadcast) {
          return mChronosListener.invoke(operation, tag, broadcast);
      }
docs: Runs an operation in a background thread. Only one operation with the given tag may run in a
  single moment of time. The result will be delivered to {@link Chronos#OWN_CALLBACK_METHOD_NAME}
  method. If {@code broadcast} is {@code true} all other Chronos clients will receive the
  result in {@link Chronos#BROADCAST_CALLBACK_METHOD_NAME} method. Both method must have only
  one parameter of type {@link ChronosOperation#getResultClass()} to receive a result.
  
  @param operation an operation to be run in background
  @param tag       value which prohibits running new operations with the same tag while there
  is a running one
  @param broadcast {@code true} if any other Chronos clients should be able to receive a
  result; {@code false} otherwise
  @return a unique launch id, may be the same with the previous run with the same tag, if the
  operation is still running
  @see #runOperation(ChronosOperation, boolean)
  @see #cancelOperation(int, boolean)
  @see #cancelOperation(String, boolean)