blob: 2a02d760f2efa3976b816cd5d2d34086ae7629eb [file] [log] [blame]
% Licensed under the Apache License, Version 2.0 (the "License"); you may not
% use this file except in compliance with the License. You may obtain a copy of
% the License at
%
% http://www.apache.org/licenses/LICENSE-2.0
%
% Unless required by applicable law or agreed to in writing, software
% distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
% WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
% License for the specific language governing permissions and limitations under
% the License.
% Job map/json field definitions
%
-define(OPT_PRIORITY, <<"priority">>).
-define(OPT_DATA, <<"data">>).
-define(OPT_CANCEL, <<"cancel">>).
-define(OPT_RESUBMIT, <<"resubmit">>).
% These might be in a fabric public hrl eventually
%
-define(uint2bin(I), binary:encode_unsigned(I, little)).
-define(bin2uint(I), binary:decode_unsigned(I, little)).
-define(UNSET_VS, {versionstamp, 16#FFFFFFFFFFFFFFFF, 16#FFFF}).
-define(METADATA_VERSION_KEY, <<"$metadata_version_key$">>).
% Data model definitions
%
-define(JOBS, 51). % coordinate with fabric2.hrl
-define(DATA, 1).
-define(PENDING, 2).
-define(WATCHES_PENDING, 3).
-define(WATCHES_ACTIVITY, 4).
-define(ACTIVITY_TIMEOUT, 5).
-define(ACTIVITY, 6).
-define(COUCH_JOBS_EVENT, '$couch_jobs_event').
-define(COUCH_JOBS_CURRENT, '$couch_jobs_current').
-define(UNDEFINED_MAX_SCHEDULED_TIME, 1 bsl 36).
-type jtx() :: map() | undefined | tuple().
-type job_id() :: binary().
-type job_type() :: tuple() | binary() | non_neg_integer().
-type job() :: map().
-type job_data() :: map() | undefined.
-type job_accept_opts() :: map().
-type scheduled_time() :: non_neg_integer() | undefined.
-type job_state() :: running | pending | finished.
-type job_subscription() :: {pid(), reference()}.