<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<link rel="canonical" href="https://ignite.apache.org/releases/2.0.0/javadoc/org/apache/ignite/igfs/package-frame.html" />
<META NAME="ROBOTS" CONTENT="NOINDEX">

<!-- Generated by javadoc (version 1.7.0_80) on Sun Apr 30 12:27:13 MSK 2017 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>org.apache.ignite.igfs (Ignite 2.0.0)</title>
<meta name="date" content="2017-04-30">
<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>
