// **********************************************************************
//
// Generated by the ORBacus IDL-to-C++ Translator
//
// Copyright (c) 1998
// Object-Oriented Concepts, Inc.
// Billerica, MA, USA
//
// Copyright (c) 1998
// Object-Oriented Concepts GmbH
// Ettlingen, Germany
//
// All Rights Reserved
//
// **********************************************************************

// Version: 3.0.1
// License: non-commercial

#ifndef __trs_skel_h__
#define __trs_skel_h__

#include "trs.h"

#include <cause_skel.h>

//
// IDL:trs:1.0
//

//
// IDL:trs/RouteServerCallback:1.0
//
class trs_RouteServerCallback_skel : virtual public trs_RouteServerCallback,
                                     virtual public CORBA_Object_skel
{
    trs_RouteServerCallback_skel(const trs_RouteServerCallback_skel&);
    void operator=(const trs_RouteServerCallback_skel&);

public:

    trs_RouteServerCallback_skel() { }

    trs_RouteServerCallback_ptr _this() { return trs_RouteServerCallback::_duplicate(this); }

    virtual OBDispatchStatus _OB_dispatch(const char*, OBBuffer&, bool, CORBA_ULong, CORBA_ULong);

    //
    // IDL:trs/RouteServerCallback/routeSelection:1.0
    //
    virtual void routeSelection(const trs_LinkNumberList& nextLinks,
                                const trs_DTLstackList& dtlStacks,
                                CORBA_ULong failure) = 0;
};

//
// IDL:trs/RouteServer:1.0
//
class trs_RouteServer_skel : virtual public trs_RouteServer,
                             virtual public CORBA_Object_skel
{
    trs_RouteServer_skel(const trs_RouteServer_skel&);
    void operator=(const trs_RouteServer_skel&);

public:

    trs_RouteServer_skel() { }

    trs_RouteServer_ptr _this() { return trs_RouteServer::_duplicate(this); }

    virtual OBDispatchStatus _OB_dispatch(const char*, OBBuffer&, bool, CORBA_ULong, CORBA_ULong);

    //
    // IDL:trs/RouteServer/registerNode:1.0
    //
    virtual void registerNode(const trs_Node& node) = 0;

    //
    // IDL:trs/RouteServer/unregisterNode:1.0
    //
    virtual void unregisterNode(const trs_Node& node) = 0;

    //
    // IDL:trs/RouteServer/addLinks:1.0
    //
    virtual void addLinks(const trs_Node& node,
                          const trs_LinkList& additionalLinks) = 0;

    //
    // IDL:trs/RouteServer/removeLinks:1.0
    //
    virtual void removeLinks(const trs_Node& node,
                             const trs_LinkList& removableLinks) = 0;

    //
    // IDL:trs/RouteServer/updateLinks:1.0
    //
    virtual void updateLinks(const trs_Node& node,
                             const trs_LinkList& updatedlinks) = 0;

    //
    // IDL:trs/RouteServer/selectRoute:1.0
    //
    virtual void selectRoute(const char* caller,
                             const char* calledParty,
                             const trs_DTLstack& dtlStack,
                             const trs_ParameterList& qosParameters,
                             trs_RouteServerCallback_ptr callback,
                             CORBA_ULong numberOfRoutes) = 0;
};

#endif
