# Module bulkowner

- Description
- Data Types
- Function Index
- Function Details

Bulk owner operations (for now only broadcasting).

Copyright © 2007-2012 Zuse Institute Berlin

Version: $Id$

Authors: Thorsten Schuett (`schuett@zib.de`).

References

- Ali Ghodsi, Distributed k-ary System: Algorithms for Distributed Hash Tables, PhD Thesis, page 129.

## Description

Bulk owner operations (for now only broadcasting).

## Data Types

### bulkowner_msg()

    bulkowner_msg() = bulkowner_req() | bulkowner_send_error()

### bulkowner_req()

    bulkowner_req() =
        {bulkowner,
         start,
         Id :: uid:global_uid(),
         I :: intervals:interval(),
         Msg :: comm:message()} |
        {bulkowner,
         Id :: uid:global_uid(),
         I :: intervals:interval(),
         Msg :: comm:message(),
         Parents :: [comm:mypid(), ...]} |
        {bulkowner,
         deliver,
         Id :: uid:global_uid(),
         Range :: intervals:interval(),
         Msg :: comm:message(),
         Parents :: [comm:mypid(), ...]} |
        {bulkowner,
         reply,
         Id :: uid:global_uid(),
         Target :: comm:mypid(),
         Msg :: comm:message(),
         Parents :: [comm:mypid()]} |
        {bulkowner, reply_process_all} |
        {bulkowner,
         gather,
         Id :: uid:global_uid(),
         Target :: comm:mypid(),
         [comm:message()],
         Parents :: [comm:mypid()]}

### bulkowner_send_error()

    bulkowner_send_error() =
        {send_error, comm:mypid(), bulkowner_req(), atom()}

## Function Index

issue_bulk_distribute/5 |
issue_bulk_distribute/6 |
issue_bulk_owner/3 | Start a bulk owner operation to send the message to all nodes in the given interval.
issue_send_reply/4 |
on/2 |
send_reply/5 |
send_reply_failed/6 |

## Function Details

### issue_bulk_owner/3

    issue_bulk_owner(Id :: uid:global_uid(),
                     I :: intervals:interval(),
                     Msg :: comm:message()) ->
                        ok

Start a bulk owner operation to send the message to all nodes in the given interval.

### issue_send_reply/4

    issue_send_reply(Id :: uid:global_uid(),
                     Target :: comm:mypid(),
                     Msg :: comm:message(),
                     Parents :: [comm:mypid()]) ->
                        ok

### issue_bulk_distribute/5

    issue_bulk_distribute(ID :: uid:global_uid(),
                          Proc :: atom(),
                          Pos :: pos_integer(),
                          Msg :: comm:message(),
                          Data ::
                              [{rt_chord:key(), string(), term()}] |
                              {ets, ets:tab()}) ->
                             ok

### issue_bulk_distribute/6

    issue_bulk_distribute(ID :: uid:global_uid(),
                          Proc :: atom(),
                          Pos :: pos_integer(),
                          Msg :: comm:message(),
                          Data ::
                              [{rt_chord:key(), string(), term()}] |
                              {ets, ets:tab()},
                          Interval :: intervals:interval()) ->
                             ok

### send_reply/5

    send_reply(Id :: uid:global_uid(),
               Target :: comm:mypid(),
               Msg :: comm:message() | comm:group_message(),
               Parents :: [comm:mypid()],
               Shepherd :: comm:erl_local_pid()) ->
                  ok

### send_reply_failed/6

    send_reply_failed(Id :: uid:global_uid(),
                      Target :: comm:mypid(),
                      Msg :: comm:message(),
                      Parents :: [comm:mypid()],
                      Shepherd :: comm:erl_local_pid(),
                      FailedPid :: comm:mypid()) ->
                         ok

### on/2

    on(X1 :: bulkowner_msg(), State :: dht_node_state:state()) ->
          dht_node_state:state()

Generated by EDoc, Apr 22 2017, 15:58:22.