/*
 *  CodecObject.java v0.10 20-DEC-1999
 *  Copyright (c) TKK/TLM/Calypso
 *  Author: Alexey Mednonogov
 */

package codec;

import java.io.*;
import java.util.*;

import codec.*;
import codec.adapt.*;
import codec.convert.*;
import codec.debug.*;
import codec.dyntree.*;
import codec.export.*;
import codec.orb.*;
import codec.pco.*;
import codec.server.*;
import codec.client.*;
import codec.visit.*;
import codec.build.*;

/** Collection of all Calypso Gateway objects. */
final public class CodecObject {

    /** CORBA ORB Manager. */
    private OrbGeneric orbGeneric;

    /** Main Gateway PCO handler. */
    private OrbPcoPool orbPcoPool;

    /** Gateway CORBA Object Pool. */
    private CorbaObjectPool corbaObjectPool;

    /** Manager of responses from asynchronous invocations. */
    private ServantRequestPool servantRequestPool;

	/** Registry of client operation invocations. */
	private ClientRequestPool clientRequestPool;

    public OrbGeneric getOrbGeneric() {
        return orbGeneric;
    }
       
    public OrbPcoPool getOrbPcoPool() {
        return orbPcoPool;
    }

    public CorbaObjectPool getCorbaObjectPool() {
        return corbaObjectPool;
    }

    public ServantRequestPool getServantRequestPool() {
        return servantRequestPool;
    }

    public ClientRequestPool getClientRequestPool() {
        return clientRequestPool;
    }

    public CodecObject(String args[]) {

        orbPcoPool = new OrbPcoPool();
        corbaObjectPool = new CorbaObjectPool();
        orbGeneric = new OrbGeneric(args,
            OrbGeneric.INIT_ALL_ENTITIES);
        clientRequestPool = new ClientRequestPool();
        servantRequestPool = new ServantRequestPool();
        servantRequestPool.start();
    }
}
