Skip to content
ToshiyukiTerashita edited this page Sep 10, 2010 · 1 revision

Inter-Component Communication

ICC will be implemented based on HTTP as a POST data and/or GET URI parameters

storages = Basket::lookup_storages_for_basket_creation( creation_hints )

command=lookup
type=creation
total_file_size=xxxxMB
number_of_files=nnn

storages = Basket::lookup_storages_for_basket_push_replication( basket_id, creation_hints )

command=lookup
type=push
total_file_size=xxxxMB
number_of_files=nnn

storages = Basket::lookup_storages_for_basket_pull_replication( basket_id, creation_hints )

command=lookup
type=pull
total_file_size=xxxx ( unit: none, kb, mb, or gb )
number_of_files=nnn

storages = Basket::lookup_storages_for_basket_retrieval( basket_id, scheme, retrieval_criteria )

command=lookup
type=retrieval
content_id=nnnnn
class_id=nn
revision=nn
scheme=xxxx ( nfs, nfs, or rsync )
criteria=xxxx ( ok to use cache data, do not use cache data, … )

storage = storages.pick_one( criteria )

not applicable since this interface will not involve any Inter-Component Communication

basket = storage.create_basket( new_basket_id )

basket = storage.replicate_basket( basket_id )

basket.replicated( basket_id )

basket.replace_basket( new_basket_id )

basket.prepare_to_commit()

basket.commit()

basket.rollback()

baskets = retrieve_baskets( basket_id, retrieve_criteria )

Basket::delete_baskets( basket_id )

Basket::undelete_baskets( basket_id )

insert( basket )

drop( basket )

Clone this wiki locally