Search in sources :

Example 1 with IgfsPathSummary

use of org.apache.ignite.igfs.IgfsPathSummary in project ignite by apache.

the class IgfsControlResponse method readExternal.

/**
     * Reads object from data input.
     *
     * @param in Data input.
     * @throws IOException If read failed.
     * @throws ClassNotFoundException If could not find class.
     */
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
    byte[] hdr = new byte[RES_HEADER_SIZE];
    in.readFully(hdr);
    resType = U.bytesToInt(hdr, 0);
    boolean hasErr = hdr[4] != 0;
    if (hasErr) {
        err = in.readUTF();
        errCode = in.readInt();
        if (resType == RES_TYPE_ERR_STREAM_ID)
            res = in.readLong();
        return;
    }
    switch(resType) {
        case RES_TYPE_BOOLEAN:
            res = in.readBoolean();
            break;
        case RES_TYPE_LONG:
            res = in.readLong();
            break;
        case RES_TYPE_IGFS_PATH:
            {
                boolean hasVal = in.readBoolean();
                if (hasVal)
                    res = IgfsUtils.readPath(in);
                break;
            }
        case RES_TYPE_IGFS_PATH_SUMMARY:
            {
                boolean hasVal = in.readBoolean();
                if (hasVal) {
                    IgfsPathSummary sum = new IgfsPathSummary();
                    sum.readExternal(in);
                    res = sum;
                }
                break;
            }
        case RES_TYPE_IGFS_FILE:
            {
                boolean hasVal = in.readBoolean();
                if (hasVal) {
                    IgfsFileImpl file = new IgfsFileImpl();
                    file.readExternal(in);
                    res = file;
                }
                break;
            }
        case RES_TYPE_IGFS_STREAM_DESCRIPTOR:
            {
                boolean hasVal = in.readBoolean();
                if (hasVal) {
                    IgfsInputStreamDescriptor desc = new IgfsInputStreamDescriptor();
                    desc.readExternal(in);
                    res = desc;
                }
                break;
            }
        case RES_TYPE_HANDSHAKE:
            {
                boolean hasVal = in.readBoolean();
                if (hasVal) {
                    IgfsHandshakeResponse msg = new IgfsHandshakeResponse();
                    msg.readExternal(in);
                    res = msg;
                }
                break;
            }
        case RES_TYPE_STATUS:
            {
                boolean hasVal = in.readBoolean();
                if (hasVal) {
                    IgfsStatus msg = new IgfsStatus();
                    msg.readExternal(in);
                    res = msg;
                }
                break;
            }
        case RES_TYPE_COL_IGFS_FILE:
            {
                Collection<IgfsFile> files = null;
                int size = in.readInt();
                if (size >= 0) {
                    files = new ArrayList<>(size);
                    for (int i = 0; i < size; i++) {
                        IgfsFileImpl file = new IgfsFileImpl();
                        file.readExternal(in);
                        files.add(file);
                    }
                }
                res = files;
                break;
            }
        case RES_TYPE_COL_IGFS_PATH:
            {
                Collection<IgfsPath> paths = null;
                int size = in.readInt();
                if (size >= 0) {
                    paths = new ArrayList<>(size);
                    for (int i = 0; i < size; i++) paths.add(IgfsUtils.readPath(in));
                }
                res = paths;
                break;
            }
        case RES_TYPE_COL_IGFS_BLOCK_LOCATION:
            {
                Collection<IgfsBlockLocation> locations = null;
                int size = in.readInt();
                if (size >= 0) {
                    locations = new ArrayList<>(size);
                    for (int i = 0; i < size; i++) {
                        IgfsBlockLocationImpl location = new IgfsBlockLocationImpl();
                        location.readExternal(in);
                        locations.add(location);
                    }
                }
                res = locations;
                break;
            }
        case RES_TYPE_MODE_RESOLVER:
            {
                boolean hasVal = in.readBoolean();
                if (hasVal) {
                    IgfsModeResolver msg = new IgfsModeResolver();
                    msg.readExternal(in);
                    res = msg;
                }
                break;
            }
        case RES_TYPE_BYTE_ARRAY:
            assert false : "Response type of byte array should never be processed by marshaller.";
    }
}
Also used : IgfsPathSummary(org.apache.ignite.igfs.IgfsPathSummary) IgfsModeResolver(org.apache.ignite.internal.processors.igfs.IgfsModeResolver) IgfsHandshakeResponse(org.apache.ignite.internal.processors.igfs.IgfsHandshakeResponse) IgfsBlockLocationImpl(org.apache.ignite.internal.processors.igfs.IgfsBlockLocationImpl) ArrayList(java.util.ArrayList) IgfsInputStreamDescriptor(org.apache.ignite.internal.processors.igfs.IgfsInputStreamDescriptor) Collection(java.util.Collection) IgfsFileImpl(org.apache.ignite.internal.processors.igfs.IgfsFileImpl) IgfsStatus(org.apache.ignite.internal.processors.igfs.IgfsStatus)

Example 2 with IgfsPathSummary

use of org.apache.ignite.igfs.IgfsPathSummary in project ignite by apache.

the class IgniteHadoopFileSystem method getContentSummary.

/** {@inheritDoc} */
@Override
public ContentSummary getContentSummary(Path f) throws IOException {
    A.notNull(f, "f");
    enterBusy();
    try {
        IgfsPathSummary sum = rmtClient.contentSummary(convert(f));
        return new ContentSummary(sum.totalLength(), sum.filesCount(), sum.directoriesCount(), -1, sum.totalLength(), rmtClient.fsStatus().spaceTotal());
    } finally {
        leaveBusy();
    }
}
Also used : IgfsPathSummary(org.apache.ignite.igfs.IgfsPathSummary) ContentSummary(org.apache.hadoop.fs.ContentSummary)

Example 3 with IgfsPathSummary

use of org.apache.ignite.igfs.IgfsPathSummary in project ignite by apache.

the class IgfsImpl method summary0.

/**
     * Get summary for path.
     *
     * @param path Path.
     * @return Summary.
     * @throws IgniteCheckedException If failed.
     */
private IgfsPathSummary summary0(IgfsPath path) throws IgniteCheckedException {
    IgfsFile info = info(path);
    if (info == null)
        throw new IgfsPathNotFoundException("Failed to get path summary (path not found): " + path);
    IgfsPathSummary sum = new IgfsPathSummary(path);
    summaryRecursive(info, sum);
    return sum;
}
Also used : IgfsPathSummary(org.apache.ignite.igfs.IgfsPathSummary) IgfsFile(org.apache.ignite.igfs.IgfsFile) IgfsPathNotFoundException(org.apache.ignite.igfs.IgfsPathNotFoundException)

Aggregations

IgfsPathSummary (org.apache.ignite.igfs.IgfsPathSummary)3 ArrayList (java.util.ArrayList)1 Collection (java.util.Collection)1 ContentSummary (org.apache.hadoop.fs.ContentSummary)1 IgfsFile (org.apache.ignite.igfs.IgfsFile)1 IgfsPathNotFoundException (org.apache.ignite.igfs.IgfsPathNotFoundException)1 IgfsBlockLocationImpl (org.apache.ignite.internal.processors.igfs.IgfsBlockLocationImpl)1 IgfsFileImpl (org.apache.ignite.internal.processors.igfs.IgfsFileImpl)1 IgfsHandshakeResponse (org.apache.ignite.internal.processors.igfs.IgfsHandshakeResponse)1 IgfsInputStreamDescriptor (org.apache.ignite.internal.processors.igfs.IgfsInputStreamDescriptor)1 IgfsModeResolver (org.apache.ignite.internal.processors.igfs.IgfsModeResolver)1 IgfsStatus (org.apache.ignite.internal.processors.igfs.IgfsStatus)1