/*
 * LOGICAL-PARADOX.ORG
 * Copyright (C)2005 satoshi akabane(akabane@logical-paradox.org)
 * $Id: Lookup.java,v 1.2 2005/09/07 13:38:06 rampil Exp $
 */
package org.logical_paradox.vsan.lookup;

import org.logical_paradox.vsan.dfs.DomainFileSystem;
import org.logical_paradox.vsan.domain.DomainController;

/**
 * vsan用のサービス検索インターフェース
 * @author satoshi akabane@logical-paradox.org
 * @version $Revision: 1.2 $
 */
public interface Lookup {
	/**
	 * ドメインをバインドする
	 * @param dc ドメインコントローラー
	 * @throws バインドに失敗した
	 */
	public void registerDomainController(DomainController dc) throws LookupException;
	/**
	 * ドメインファイルシステムをバインドする
	 * @param dfs ドメインファイルシステム
	 * @throws LookupException バインドに失敗した
	 */
	public void registerDomainFileSystem(DomainFileSystem dfs) throws LookupException;
	/**
	 * 指定名称のドメインコントローラーを探す
	 * @param dcn ドメインコントローラーの識別子
	 * @return 取得できたドメインコントローラーのスタブ
	 * @throws LookupException 検索に失敗した
	 */
	public DomainController lookupDomainController(String dcn) throws LookupException;
	/**
	 * 指定名称のドメインファイルシステムを探す
	 * @param domain ドメイン名
	 * @return 取得できたドメインファイルシステムのスタブ
	 * @throws LookupException 検索に失敗した
	 */
	public DomainFileSystem lookupDomainFileSystem(String domain) throws LookupException;
}
