%% -*- mode: LaTeX -*-
%%
%% Copyright (c) 1999 The University of Utah and the Computer Systems
%% Laboratory at the University of Utah (CSL).
%%
%% This file is part of Flick, the Flexible IDL Compiler Kit.
%%
%% Flick is free software; you can redistribute it and/or modify it under the
%% terms of the GNU General Public License as published by the Free Software
%% Foundation; either version 2 of the License, or (at your option) any later
%% version.
%%
%% Flick is distributed in the hope that it will be useful, but WITHOUT ANY
%% WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
%% FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
%% details.
%%
%% You should have received a copy of the GNU General Public License along with
%% Flick; see the file COPYING.  If not, write to the Free Software Foundation,
%% 59 Temple Place #330, Boston, MA 02111, USA.
%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\emph{Flick} is a flexible and optimizing compiler for interface definition
languages (IDLs).  Like a traditional IDL compiler, Flick reads a high-level
interface specification and from that produces C or C++ language \emph{stubs}
to implement communication between client and server programs or between
distributed objects.  Unlike traditional IDL compilers, however, Flick
generates speed-optimized code for a wide variety of IDLs, stub styles, and
communication infrastructures.  Flick can generate optimized code for many
different applications such as ONC RPC (Sun RPC) systems, third-party CORBA
ORBs, and other, more specialized situations.  In sum, Flick is a ``kit'': the
user picks the IDL, language mapping, and transport components that are
required in order to implement the stubs for the user's particular application.

This manual describes how to build Flick, how to run the various compiler
passes, and how to use the generated stubs.  A simple client/server phonebook
is presented and implemented in three different ways: as an ONC RPC (Sun RPC)
application, as a CORBA C application, and as a CORBA C++ application.  The
examples are presented in detail and illustrate how users can make use of
Flick-generated stubs in their own programs.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% End of file.

