<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<META NAME="ROBOTS" CONTENT="NOINDEX">
<link rel="canonical" href="https://ignite.apache.org/releases/1.7.0/javadoc/org/apache/ignite/igfs/package-frame.html" />
<!-- Generated by javadoc (version 1.7.0_80) on Mon Aug 01 20:32:34 MSK 2016 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>org.apache.ignite.igfs (Ignite 1.7.0)</title>
<meta name="date" content="2016-08-01">
<link rel="stylesheet" type="text/css" href="../../../../javadoc.css" title="Style">

<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-61232409-1', 'auto');
  ga('send', 'pageview');

</script></head>
<body>
<h1 class="bar"><a href="../../../../org/apache/ignite/igfs/package-summary.html" target="classFrame">org.apache.ignite.igfs</a></h1>
<div class="indexContainer">
<h2 title="Interfaces">Interfaces</h2>
<ul title="Interfaces">
<li><a href="IgfsBlockLocation.html" title="interface in org.apache.ignite.igfs" target="classFrame"><i>IgfsBlockLocation</i></a></li>
<li><a href="IgfsFile.html" title="interface in org.apache.ignite.igfs" target="classFrame"><i>IgfsFile</i></a></li>
<li><a href="IgfsMetrics.html" title="interface in org.apache.ignite.igfs" target="classFrame"><i>IgfsMetrics</i></a></li>
</ul>
<h2 title="Classes">Classes</h2>
<ul title="Classes">
<li><a href="IgfsGroupDataBlocksKeyMapper.html" title="class in org.apache.ignite.igfs" target="classFrame">IgfsGroupDataBlocksKeyMapper</a></li>
<li><a href="IgfsInputStream.html" title="class in org.apache.ignite.igfs" target="classFrame">IgfsInputStream</a></li>
<li><a href="IgfsIpcEndpointConfiguration.html" title="class in org.apache.ignite.igfs" target="classFrame">IgfsIpcEndpointConfiguration</a></li>
<li><a href="IgfsOutputStream.html" title="class in org.apache.ignite.igfs" target="classFrame">IgfsOutputStream</a></li>
<li><a href="IgfsPath.html" title="class in org.apache.ignite.igfs" target="classFrame">IgfsPath</a></li>
<li><a href="IgfsPathSummary.html" title="class in org.apache.ignite.igfs" target="classFrame">IgfsPathSummary</a></li>
<li><a href="IgfsUserContext.html" title="class in org.apache.ignite.igfs" target="classFrame">IgfsUserContext</a></li>
</ul>
<h2 title="Enums">Enums</h2>
<ul title="Enums">
<li><a href="IgfsIpcEndpointType.html" title="enum in org.apache.ignite.igfs" target="classFrame">IgfsIpcEndpointType</a></li>
<li><a href="IgfsMode.html" title="enum in org.apache.ignite.igfs" target="classFrame">IgfsMode</a></li>
</ul>
<h2 title="Exceptions">Exceptions</h2>
<ul title="Exceptions">
<li><a href="IgfsConcurrentModificationException.html" title="class in org.apache.ignite.igfs" target="classFrame">IgfsConcurrentModificationException</a></li>
<li><a href="IgfsCorruptedFileException.html" title="class in org.apache.ignite.igfs" target="classFrame">IgfsCorruptedFileException</a></li>
<li><a href="IgfsDirectoryNotEmptyException.html" title="class in org.apache.ignite.igfs" target="classFrame">IgfsDirectoryNotEmptyException</a></li>
<li><a href="IgfsException.html" title="class in org.apache.ignite.igfs" target="classFrame">IgfsException</a></li>
<li><a href="IgfsInvalidHdfsVersionException.html" title="class in org.apache.ignite.igfs" target="classFrame">IgfsInvalidHdfsVersionException</a></li>
<li><a href="IgfsInvalidPathException.html" title="class in org.apache.ignite.igfs" target="classFrame">IgfsInvalidPathException</a></li>
<li><a href="IgfsOutOfSpaceException.html" title="class in org.apache.ignite.igfs" target="classFrame">IgfsOutOfSpaceException</a></li>
<li><a href="IgfsParentNotDirectoryException.html" title="class in org.apache.ignite.igfs" target="classFrame">IgfsParentNotDirectoryException</a></li>
<li><a href="IgfsPathAlreadyExistsException.html" title="class in org.apache.ignite.igfs" target="classFrame">IgfsPathAlreadyExistsException</a></li>
<li><a href="IgfsPathIsDirectoryException.html" title="class in org.apache.ignite.igfs" target="classFrame">IgfsPathIsDirectoryException</a></li>
<li><a href="IgfsPathIsNotDirectoryException.html" title="class in org.apache.ignite.igfs" target="classFrame">IgfsPathIsNotDirectoryException</a></li>
<li><a href="IgfsPathNotFoundException.html" title="class in org.apache.ignite.igfs" target="classFrame">IgfsPathNotFoundException</a></li>
</ul>
</div>
</body>
</html>
