| <!DOCTYPE html> |
| <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
| <head> |
| <meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> |
| <meta content="en-us" http-equiv="Content-Language" /> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| |
| <link href="/static/images/favicon.ico" rel="shortcut icon" /> |
| <link href="/static/css/style.css" rel="stylesheet" type="text/css" /> |
| <link href="/static/css/codehilite.css" rel="stylesheet" type="text/css" /> |
| <link href="/static/css/bootstrap.css" media="screen, projection" rel="stylesheet" type="text/css" /> |
| <link href="/static/css/thrift.css" media="screen, projection" rel="stylesheet" type="text/css" /> |
| |
| <script src="/static/js/jquery.min.js"></script> |
| <script src="/static/js/bootstrap-dropdown.js"></script> |
| <script src="/static/js/bootstrap-tab.js"></script> |
| <script src="/static/js/thrift.js"></script> |
| |
| <title>Apache Thrift - OCaml library</title> |
| </head> |
| <body> |
| <div class="navbar"> |
| <div class="navbar-inner"> |
| <div class="container"> |
| <a class="brand" href="/">Apache Thrift ™</a> |
| <div class="nav-collapse"> |
| <ul class="nav pull-right"> |
| <li><a href="/download">Download</a></li> |
| <li><a href="/docs">Documentation</a></li> |
| <li><a href="/developers">Developers</a></li> |
| <li><a href="/lib">Libraries</a></li> |
| <li><a href="/tutorial">Tutorial</a></li> |
| <li><a href="/test">Test Suite</a></li> |
| <li><a href="/about">About</a></li> |
| <li class="dropdown"> |
| <a href="#" class="dropdown-toggle" data-toggle="dropdown">Apache <b class="caret"></b></a> |
| <ul class="dropdown-menu"> |
| <li><a href="http://www.apache.org/" target="_blank">Apache Home</a></li> |
| <li><a href="http://www.apache.org/licenses/" target="_blank">Apache License v2.0</a></li> |
| <li><a href="http://www.apache.org/foundation/sponsorship.html" target="_blank">Donate</a></li> |
| <li><a href="http://www.apache.org/foundation/thanks.html" target="_blank">Thanks</a></li> |
| <li><a href="http://www.apache.org/security/" target="_blank">Security</a></li> |
| </ul> |
| </li> |
| </ul> |
| </div> |
| </div> |
| </div> |
| </div> |
| |
| <div class="container"> |
| |
| <h1 id="library">Library</h1> |
| |
| <p>The library abstract classes, exceptions, and general use functions |
| are mostly jammed in Thrift.ml (an exception being |
| TServer).</p> |
| |
| <p>Generally, classes are used, however they are often put in their own |
| module along with other relevant types and functions. The classes |
| often called t, exceptions are called E.</p> |
| |
| <p>Implementations live in their own files. There is TBinaryProtocol, |
| TSocket, TThreadedServer, TSimpleServer, and TServerSocket.</p> |
| |
| <p>A note on making the library: Running make should create native, debug |
| code libraries, and a toplevel.</p> |
| |
| <h2 id="struct-format">Struct format</h2> |
| <p>Structs are turned into classes. The fields are all option types and |
| are initially None. Write is a method, but reading is done by a |
| separate function (since there is no such thing as a static |
| class). The class type is t and is in a module with the name of the |
| struct.</p> |
| |
| <h2 id="enum-format">enum format</h2> |
| <p>Enums are put in their own module along with |
| functions to_i and of_i which convert the ocaml types into ints. For |
| example:</p> |
| |
| <p>enum Numberz |
| { |
| ONE = 1, |
| TWO, |
| THREE, |
| FIVE = 5, |
| SIX, |
| EIGHT = 8 |
| }</p> |
| |
| <p>==></p> |
| |
| <p>module Numberz = |
| struct |
| type t = |
| | ONE |
| | TWO |
| | THREE |
| | FIVE |
| | SIX |
| | EIGHT</p> |
| |
| <p>let of_i = … |
| let to_i = … |
| end</p> |
| |
| <h2 id="typedef-format">typedef format</h2> |
| <p>Typedef turns into the type declaration: |
| typedef i64 UserId</p> |
| |
| <p>==></p> |
| |
| <p>type userid Int64.t</p> |
| |
| <h2 id="exception-format">exception format</h2> |
| <p>The same as structs except that the module also has an exception type |
| E of t that is raised/caught.</p> |
| |
| <p>For example, with an exception Xception, |
| raise (Xception.E (new Xception.t)) |
| and |
| try |
| … |
| with Xception.E e -> …</p> |
| |
| <h2 id="list-format">list format</h2> |
| <p>Lists are turned into OCaml native lists.</p> |
| |
| <h2 id="mapset-formats">Map/Set formats</h2> |
| <p>These are both turned into Hashtbl.t’s. Set values are bool.</p> |
| |
| <h2 id="services">Services</h2> |
| <p>The client is a class “client” parametrized on input and output |
| protocols. The processor is a class parametrized on a handler. A |
| handler is a class inheriting the iface abstract class. Unlike other |
| implementations, client does not implement iface since iface functions |
| must take option arguments so as to deal with the case where a client |
| does not send all the arguments.</p> |
| |
| <p class="snippet_footer">This page was generated by Apache Thrift's <strong>source tree docs</strong>: |
| <a href="https://gitbox.apache.org/repos/asf?p=thrift.git;a=blob;hb=HEAD;f=lib/ocaml/README.md">lib/ocaml/README.md</a> |
| </p> |
| |
| |
| </div> |
| <div class="container"> |
| <hr> |
| <footer class="footer"> |
| <div class="row"> |
| <div class="span3"> |
| <h3>Links</h3> |
| <ul class="unstyled"> |
| <li><a href="/download">Download</a></li> |
| <li><a href="/developers">Developers</a></li> |
| <li><a href="/tutorial">Tutorials</a></li> |
| </ul> |
| <ul class="unstyled"> |
| <li><a href="/sitemap">Sitemap</a></li> |
| </ul> |
| </div> |
| <div class="span3"> |
| <h3>Get Involved</h3> |
| <ul class="unstyled"> |
| <li><a href="/mailing">Mailing Lists</a></li> |
| <li><a href="http://issues.apache.org/jira/browse/THRIFT">Issue Tracking</a></li> |
| <li><a href="/docs/HowToContribute">How To Contribute</a></li> |
| </ul> |
| </div> |
| <div class="span6"> |
| <a href="http://www.apache.org/"><img src="/static/images/feather.svg" onerror="this.src='/static/images/feather.png';this.onerror=null;" /></a> |
| Copyright © 2024 <a href="http://www.apache.org/">Apache Software Foundation</a>. |
| Licensed under the <a href="http://www.apache.org/licenses/">Apache License v2.0</a>. |
| Apache, Apache Thrift, and the Apache feather logo are trademarks of The Apache Software Foundation. |
| </div> |
| </div> |
| </footer> |
| </div> |
| |
| </body> |
| </html> |