/*
* (C) Copyright 2013 Scoop IT SAS (http://scoop.it/) and others.
*
* 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.
*
* Contributors:
* Philippe GASSMANN
* Jean-Baptiste BELLET
*/
package com.scoopit.weedfs.client;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import com.scoopit.weedfs.client.status.MasterStatus;
import com.scoopit.weedfs.client.status.VolumeStatus;
/**
* <pre>
* ,
* dM
* MMr
* 4MMML .
* MMMMM. xf
* . "M6MMM .MM-
* Mh.. +MM5MMM .MMMM
* .MMM. .MMMMML. MMMMMh
* )MMMh. MM5MMM MMMMMMM
* 3MMMMx. 'MMM3MMf xnMMMMMM"
* '*MMMMM MMMMMM. nMMMMMMP"
* *MMMMMx "MMM5M\ .MMMMMMM=
* *MMMMMh "MMMMM" JMMMMMMP
* MMMMMM GMMMM. dMMMMMM .
* MMMMMM "MMMM .MMMMM( .nnMP"
* .. *MMMMx MMM" dMMMM" .nnMMMMM*
* "MMn... 'MMMMr 'MM MMM" .nMMMMMMM*"
* "4MMMMnn.. *MMM MM MMP" .dMMMMMMM""
* ^MMMMMMMMx. *ML "M .M* .MMMMMM**"
* *PMMMMMMhn. *x > M .MMMM**""
* ""**MMMMhx/.h/ .=*"
* .3P"%....
* nP" "*MMnx
*
* </pre>
*
* Note: fileName that exceeds 256 characters will be truncated.
*/
public interface WeedFSClient {
Assignation assign(AssignParams params) throws IOException, WeedFSException;
int write(WeedFSFile weedFSFile, Location location, File file) throws IOException, WeedFSException;
int write(WeedFSFile file, Location location, byte[] dataToUpload, String fileName) throws IOException, WeedFSException;
int write(WeedFSFile file, Location location, InputStream inputToUpload, String fileName) throws IOException, WeedFSException;
void delete(WeedFSFile file, Location location) throws IOException, WeedFSException;
List<Location> lookup(long volumeId) throws IOException, WeedFSException;
InputStream read(WeedFSFile file, Location location) throws IOException, WeedFSException;
MasterStatus getMasterStatus() throws IOException;
VolumeStatus getVolumeStatus(Location location) throws IOException;
}