All Manuals > Developing Component Software with CORBA®

Contents

Preface

1 Common Lisp and CORBA

1.1 About CORBA

1.2 About the LispWorks ORB

1.3 Features of the LispWorks ORB

1.4 CORBA examples

2 Quick Start Tutorial

2.1 A CORBA-based Hello World

2.1.1 Defining the interface

2.1.2 Generating the stub and skeleton code from IDL

2.1.3 Defining utilities for sharing an object reference

2.1.4 Implementing the client

2.1.5 Implementing the server

2.1.6 Building and testing the application

2.2 Complete source code for the Hello World example

2.2.1 The complete interface source code

2.2.2 The complete defsystem source code

2.2.3 The complete source code for the file transfer of the IOR

2.2.4 The complete Hello World client source code

2.2.5 The complete Hello World server source code

3 Setting up the Bank Example

3.1 About the bank example

3.2 Where to find the example code

3.3 Building the bank client and server

3.4 Running the server and client

4 Writing and Compiling IDL

4.1 Designing the IDL

4.1.1 IDL for the account interface

4.1.2 IDL for the checkingAccount interface

4.1.3 IDL for the bank interface

4.2 Compiling IDL for a CORBA application

4.3 Mapping IDL to Common Lisp

4.3.1 Mapping for basic types

4.3.2 Mapping for interfaces

4.3.3 Mapping for attributes

4.3.4 Mapping for operations

4.3.5 Mapping for exceptions

5 The Bank Client

5.1 The client

5.2 The client's perspective

5.3 Implementing the bank client's GUI

5.4 Defining the interfaces

5.4.1 Initializing and exiting account frames

5.4.2 Defining the callbacks

5.4.3 Initializing the ORB and obtaining the first object reference

6 The Bank Server

6.1 The server

6.2 Implementing CORBA objects on the server

6.3 The server's perspective

6.4 Implementing the bank server

6.4.1 Implementing the servant classes

6.4.2 Implementing the servant methods

6.4.3 Obtaining the initial POA object and registering the first object reference

7 The LispWorks ORB

7.1 The CORBA modules

7.2 Parsing IDL into stubs and skeletons

7.3 Configuring a name service and an interface repository

7.3.1 Configuring via initial references

7.3.2 Persistent configuration

7.4 Error handling in user code called by the server

7.5 Multi-threading

7.6 Object URLs

7.7 Specifying the port

7.8 Specifying the host name in IORs

Appendix A: Common Lisp IDL Binding

A.1 Introduction to IDL

A.2 How IDL is used

A.3 Mapping summary

A.4 Mapping in more detail

A.4.1 Mapping concepts

A.4.2 Semantics of type mapping

A.4.3 Mapping for basic types

A.4.3.1 boolean

A.4.3.2 char

A.4.3.3 octet

A.4.3.4 string

A.4.3.5 Integer types

A.4.3.6 Floating point types

A.4.4 Introduction to named types

A.4.4.1 IDL naming terminology

A.4.4.2 Lisp naming terminology

A.4.5 Distinguished packages

A.4.5.1 Nicknames for distinguished packages

A.4.6 Scoped names and scoped symbols

A.4.6.1 Definitions

A.4.6.2 Examples of scoping symbols

A.4.7 The package_prefix pragma

A.4.8 Mapping for interface

A.4.9 Mapping for operation

A.4.9.1 Parameter passing modes

A.4.9.2 Return values

A.4.9.3 oneway

A.4.9.4 Efficiency optimization: Using macros instead of functions

A.4.9.5 exception

A.4.9.6 context

A.4.10 Mapping for attribute

A.4.10.1 readonly attribute

A.4.10.2 normal attribute

A.4.11 Mapping of module

A.4.12 Mapping for enum

A.4.13 Mapping for struct

A.4.14 Mapping for union

A.4.14.1 Member accessors

A.4.15 Mapping for const

A.4.16 Mapping for array

A.4.17 Mapping for sequence

A.4.18 Mapping for exception

A.4.19 User exception

A.4.20 System exception

A.4.21 Mapping for typedef

A.4.22 Mapping for "any"

A.4.23 Constructors

A.4.24 The deduced typecode

A.4.25 Mapping overview

A.4.25.1 Rule 1: How names of types are formed

A.4.25.2 Rule 2: How names of operations are formed

A.4.25.3 Rule 3: Lisp functions corresponding to IDL types

A.5 Mapping pseudo-objects to Lisp

A.5.1 Narrowing

A.5.2 Typecodes for parsed IDL

A.6 The mapping of IDL into Common Lisp servants

A.6.1 Mapping of native types

A.6.2 Implementation objects

A.6.3 Defining methods

A.6.3.1 Example: A Named Grid

A.6.3.2 Example: A Servant Class

A.6.3.3 Implementation of the IDL operations

Index


Developing Component Software with CORBA® - 01 Dec 2021 19:38:37