<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="generator" content="Crystal Docs 0.34.0">
<meta name="crystal_docs.project_version" content="HEAD">
<meta name="crystal_docs.project_name" content="crirc">


<link href="css/style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/doc.js"></script>

<svg class="hidden">
  <symbol id="octicon-link" viewBox="0 0 16 16">
    <path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path>
  </symbol>
</svg>

  <meta id="repository-name" content="crirc">
  <title>Crirc - crirc HEAD</title>
  <script type="text/javascript">
    CrystalDocs.base_path = "";
  </script>
</head>
<body>

<div class="sidebar">
  <div class="sidebar-header">
    <div class="search-box">
      <input type="search" class="search-input" placeholder="Search..." spellcheck="false" aria-label="Search">
    </div>

    <div class="project-summary">
      <h1 class="project-name">
        <a href="index.html">
          crirc
        </a>
      </h1>

      <span class="project-version">
        HEAD
      </span>
    </div>
  </div>

  <div class="search-results" class="hidden">
    <ul class="search-list"></ul>
  </div>

  <div class="types-list">
    <ul>
  
  <li class=" " data-id="crirc/toplevel" data-name="top level namespace">
      <a href="toplevel.html">Top Level Namespace</a>
      
    </li>
  
  <li class="parent open current" data-id="crirc/Crirc" data-name="crirc">
      <a href="Crirc.html">Crirc</a>
      
        <ul>
  
  <li class="parent " data-id="crirc/Crirc/Binding" data-name="crirc::binding">
      <a href="Crirc/Binding.html">Binding</a>
      
        <ul>
  
  <li class="parent " data-id="crirc/Crirc/Binding/Handler" data-name="crirc::binding::handler">
      <a href="Crirc/Binding/Handler.html">Handler</a>
      
        <ul>
  
  <li class=" " data-id="crirc/Crirc/Binding/Handler/Hook" data-name="crirc::binding::handler::hook">
      <a href="Crirc/Binding/Handler/Hook.html">Hook</a>
      
    </li>
  
  <li class=" " data-id="crirc/Crirc/Binding/Handler/HookRule" data-name="crirc::binding::handler::hookrule">
      <a href="Crirc/Binding/Handler/HookRule.html">HookRule</a>
      
    </li>
  
</ul>

      
    </li>
  
  <li class=" " data-id="crirc/Crirc/Binding/Trigger" data-name="crirc::binding::trigger">
      <a href="Crirc/Binding/Trigger.html">Trigger</a>
      
    </li>
  
</ul>

      
    </li>
  
  <li class=" " data-id="crirc/Crirc/Broadcast" data-name="crirc::broadcast">
      <a href="Crirc/Broadcast.html">Broadcast</a>
      
    </li>
  
  <li class=" " data-id="crirc/Crirc/ChanList" data-name="crirc::chanlist">
      <a href="Crirc/ChanList.html">ChanList</a>
      
    </li>
  
  <li class="parent " data-id="crirc/Crirc/Controller" data-name="crirc::controller">
      <a href="Crirc/Controller.html">Controller</a>
      
        <ul>
  
  <li class=" " data-id="crirc/Crirc/Controller/Client" data-name="crirc::controller::client">
      <a href="Crirc/Controller/Client.html">Client</a>
      
    </li>
  
  <li class="parent " data-id="crirc/Crirc/Controller/Command" data-name="crirc::controller::command">
      <a href="Crirc/Controller/Command.html">Command</a>
      
        <ul>
  
  <li class=" " data-id="crirc/Crirc/Controller/Command/Chan" data-name="crirc::controller::command::chan">
      <a href="Crirc/Controller/Command/Chan.html">Chan</a>
      
    </li>
  
  <li class=" " data-id="crirc/Crirc/Controller/Command/Ping" data-name="crirc::controller::command::ping">
      <a href="Crirc/Controller/Command/Ping.html">Ping</a>
      
    </li>
  
  <li class=" " data-id="crirc/Crirc/Controller/Command/Talk" data-name="crirc::controller::command::talk">
      <a href="Crirc/Controller/Command/Talk.html">Talk</a>
      
    </li>
  
  <li class=" " data-id="crirc/Crirc/Controller/Command/User" data-name="crirc::controller::command::user">
      <a href="Crirc/Controller/Command/User.html">User</a>
      
    </li>
  
</ul>

      
    </li>
  
  <li class=" " data-id="crirc/Crirc/Controller/Controller" data-name="crirc::controller::controller">
      <a href="Crirc/Controller/Controller.html">Controller</a>
      
    </li>
  
  <li class=" " data-id="crirc/Crirc/Controller/Server" data-name="crirc::controller::server">
      <a href="Crirc/Controller/Server.html">Server</a>
      
    </li>
  
  <li class=" " data-id="crirc/Crirc/Controller/ServerClient" data-name="crirc::controller::serverclient">
      <a href="Crirc/Controller/ServerClient.html">ServerClient</a>
      
    </li>
  
</ul>

      
    </li>
  
  <li class="parent " data-id="crirc/Crirc/Network" data-name="crirc::network">
      <a href="Crirc/Network.html">Network</a>
      
        <ul>
  
  <li class="parent " data-id="crirc/Crirc/Network/Client" data-name="crirc::network::client">
      <a href="Crirc/Network/Client.html">Client</a>
      
        <ul>
  
  <li class=" " data-id="crirc/Crirc/Network/Client/IrcSocket" data-name="crirc::network::client::ircsocket">
      <a href="Crirc/Network/Client/IrcSocket.html">IrcSocket</a>
      
    </li>
  
</ul>

      
    </li>
  
  <li class=" " data-id="crirc/Crirc/Network/Network" data-name="crirc::network::network">
      <a href="Crirc/Network/Network.html">Network</a>
      
    </li>
  
  <li class=" " data-id="crirc/Crirc/Network/Server" data-name="crirc::network::server">
      <a href="Crirc/Network/Server.html">Server</a>
      
    </li>
  
  <li class=" " data-id="crirc/Crirc/Network/ServerClient" data-name="crirc::network::serverclient">
      <a href="Crirc/Network/ServerClient.html">ServerClient</a>
      
    </li>
  
</ul>

      
    </li>
  
  <li class="parent " data-id="crirc/Crirc/Protocol" data-name="crirc::protocol">
      <a href="Crirc/Protocol.html">Protocol</a>
      
        <ul>
  
  <li class="parent " data-id="crirc/Crirc/Protocol/Chan" data-name="crirc::protocol::chan">
      <a href="Crirc/Protocol/Chan.html">Chan</a>
      
        <ul>
  
  <li class=" " data-id="crirc/Crirc/Protocol/Chan/Motd" data-name="crirc::protocol::chan::motd">
      <a href="Crirc/Protocol/Chan/Motd.html">Motd</a>
      
    </li>
  
  <li class=" " data-id="crirc/Crirc/Protocol/Chan/ParsingError" data-name="crirc::protocol::chan::parsingerror">
      <a href="Crirc/Protocol/Chan/ParsingError.html">ParsingError</a>
      
    </li>
  
</ul>

      
    </li>
  
  <li class="parent " data-id="crirc/Crirc/Protocol/Message" data-name="crirc::protocol::message">
      <a href="Crirc/Protocol/Message.html">Message</a>
      
        <ul>
  
  <li class=" " data-id="crirc/Crirc/Protocol/Message/ParsingError" data-name="crirc::protocol::message::parsingerror">
      <a href="Crirc/Protocol/Message/ParsingError.html">ParsingError</a>
      
    </li>
  
</ul>

      
    </li>
  
  <li class=" " data-id="crirc/Crirc/Protocol/Target" data-name="crirc::protocol::target">
      <a href="Crirc/Protocol/Target.html">Target</a>
      
    </li>
  
  <li class="parent " data-id="crirc/Crirc/Protocol/User" data-name="crirc::protocol::user">
      <a href="Crirc/Protocol/User.html">User</a>
      
        <ul>
  
  <li class=" " data-id="crirc/Crirc/Protocol/User/ParsingError" data-name="crirc::protocol::user::parsingerror">
      <a href="Crirc/Protocol/User/ParsingError.html">ParsingError</a>
      
    </li>
  
</ul>

      
    </li>
  
</ul>

      
    </li>
  
  <li class=" " data-id="crirc/Crirc/UserList" data-name="crirc::userlist">
      <a href="Crirc/UserList.html">UserList</a>
      
    </li>
  
</ul>

      
    </li>
  
</ul>

  </div>
</div>


<div class="main-content">
<h1 class="type-name">

  <span class="kind">module</span> Crirc

</h1>





  <h2>
    <a id="overview" class="anchor" href="#overview">
  <svg class="octicon-link" aria-hidden="true">
    <use href="#octicon-link"/>
  </svg>
</a>
    Overview
  </h2>

  <p>The Crirc module contains all the object related to the project.
It uses 4 layers of objects:</p>

<ol><li><strong>Network</strong>: A network object manage a socket / I0.
   The interface is described by <code><a href="Crirc/Network/Network.html">Crirc::Network::Network</a></code>.</li><li><strong>Controller</strong>: A controller belongs to a network object,
   and handle the logic and data. Its interface is described by
   <code><a href="Crirc/Controller/Controller.html">Crirc::Controller::Controller</a></code>.</li><li><strong>Protocol</strong>: A protocol object represent a IRC entity
   (chan, user, message, ...).</li><li><strong>Broadcast</strong>: The <code><a href="Crirc/Broadcast.html">Broadcast</a></code> allows the system to send transmission to
   several IRC entity as one.</li><li><strong>Binding</strong>: The <code><a href="Crirc/Binding/Handler.html">Binding::Handler</a></code> allows a given <code><a href="Crirc/Controller.html">Controller</a></code> to respond
   to incoming transmissions.</li></ol>














  <h2>
    <a id="defined-in" class="anchor" href="#defined-in">
  <svg class="octicon-link" aria-hidden="true">
    <use href="#octicon-link"/>
  </svg>
</a>
    Defined in:
  </h2>
  
    
      <a href="https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc.cr#L15" target="_blank">
        crirc.cr
      </a>
    
    <br/>
  
    
      <a href="https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/version.cr#L1" target="_blank">
        crirc/version.cr
      </a>
    
    <br/>
  



  
    <h2>
      <a id="constant-summary" class="anchor" href="#constant-summary">
  <svg class="octicon-link" aria-hidden="true">
    <use href="#octicon-link"/>
  </svg>
</a>
      Constant Summary
    </h2>
  
  <dl>
    
      <dt class="entry-const" id="VERSION">
        <strong>VERSION</strong> = <code><span class="s">&quot;0.4.0&quot;</span></code>
      </dt>
      
    
  </dl>











<div class="methods-inherited">
  
</div>









</div>

</body>
</html>