RE: Problem with IDL to c++

"Swapnil Wale" <[email protected]>
Newsgroups gmane.comp.corba.orbacus
Message-ID <[email protected]>
Hi David,
         Here is the IDL file and CPP file.


-----------------------------------
Logger.idl----------------------------------------------------


/**
 * ejbinterop/Logger.idl
 * Tuesday, March 15, 2005 12:29:26 AM PST
 */


#include "javax/ejb/EJBObject.idl"
#include "orb.idl"

#ifndef __ejbinterop_Logger__
#define __ejbinterop_Logger__


module ejbinterop {

    interface Logger: ::javax::ejb::EJBObject {

        void logString(
in ::CORBA::WStringValue arg0 );

    };

#pragma ID Logger "RMI:ejbinterop.Logger:0000000000000000"

};

#endif



----------------------------------Logger.cpp--------------------------------
-----------------------

#include <OB/CORBAClient.h>
#include <Logger.h>

#ifndef OB_INTEGER_VERSION
#   error No ORBacus version defined! Is <OB/CORBA.h> included?
#endif

#ifndef OB_NO_VERSION_CHECK
#   if (OB_INTEGER_VERSION != 4020200L)
#       error ORBacus version mismatch!
#   endif
#endif


namespace ejbinterop
{	::OB::TypeCodeConst
_tc_Logger("01dd48000e0000003b0000000100000027000000524d493a656a62696e746572
6f702e4c6f676""765723a303030303030303030303030303030300000070000004c6f676765
7200");

} // End of namespace ejbinterop

//
// RMI:ejbinterop.Logger:0000000000000000
//
const char* ejbinterop::Logger::ids_[] =
{"RMIejbinterop.Logger:0000000000000000",
"RMI:javax.ejb.EJBObject:0000000000000000", 0
};

void OBDuplicate(ejbinterop::Logger_ptr p)
{
    if(p)
        p -> _add_ref();
}

void OBRelease(ejbinterop::Logger_ptr p)
{
    if(p)
        p -> _remove_ref();
}

ejbinterop::Logger_ptr ejbinterop::Logger::_narrow(::CORBA::Object_ptr p)
{
    if(!::CORBA::is_nil(p))
    {
        Logger_ptr v = dynamic_cast<Logger_ptr>(p);
        if(v)
            return _duplicate(v);

        if(p -> _is_a(ids_[0]))
        {
            OBProxy_ejbinterop::Logger* val = new
OBProxy_ejbinterop::Logger;
            val -> _OB_copyFrom(p);
            return val;
        }
    }

    return _nil();
}

ejbinterop::Logger_ptr ejbinterop::Logger::_narrow(::CORBA::AbstractBase_ptr
p)
{
    if(!::CORBA::is_nil(p))
    {
        Logger_ptr v = dynamic_cast<Logger_ptr>(p);
        if(v)
            return _duplicate(v);

        ::CORBA::Object_var obj = p -> _to_object();
        return _narrow(obj);
    }
    return _nil();
}

ejbinterop::Logger_ptr
ejbinterop::Logger::_unchecked_narrow(::CORBA::Object_ptr p)
{
    if(!::CORBA::is_nil(p))
    {
        Logger_ptr v = dynamic_cast<Logger_ptr>(p);
        if(v)
            return _duplicate(v);

        OBProxy_ejbinterop::Logger* val = new OBProxy_ejbinterop::Logger;
        val -> _OB_copyFrom(p);
        return val;
    }

    return _nil();
}

ejbinterop::Logger_ptr
ejbinterop::Logger::_unchecked_narrow(::CORBA::AbstractBase_ptr p)
{
    if(!::CORBA::is_nil(p))
    {
        ::CORBA::Object_var obj = p -> _to_object();
        return _unchecked_narrow(obj);
    }
    return _nil();
}

const char**
ejbinterop::Logger::_OB_staticIds()
{
    return ids_;
}

void
OBMarshal(ejbinterop::Logger_ptr _ob_v, OB::OutputStreamImpl* _ob_out)
{
    _ob_out -> write_Object(_ob_v);
}

void
OBUnmarshal(ejbinterop::Logger_ptr& _ob_v, OB::InputStreamImpl* _ob_in)
{
    ejbinterop::Logger_var old = _ob_v;
    ::CORBA::Object_var p = _ob_in -> read_Object();

    if(!::CORBA::is_nil(p))
    {
        OBProxy_ejbinterop::Logger* _ob_obj = new
OBProxy_ejbinterop::Logger;
        _ob_obj -> _OB_copyFrom(p);
        _ob_v = _ob_obj;
    }
    else
        _ob_v = ejbinterop::Logger::_nil();
}

void
operator<<=(::CORBA::Any& any, ejbinterop::Logger_ptr* v)
{
    any.replace(ejbinterop::_tc_Logger, (::CORBA::Object_ptr)*v, true);
}

void
operator<<=(::CORBA::Any& any, ejbinterop::Logger_ptr v)
{
    ejbinterop::Logger_ptr val = ejbinterop::Logger::_duplicate(v);
    any <<= &val;
}

::CORBA::Boolean
operator>>=(const ::CORBA::Any& any, ejbinterop::Logger_ptr& v)
{
    if(any.check_type(ejbinterop::_tc_Logger))
    {
        ::CORBA::Object_ptr val = (::CORBA::Object_ptr)any.value();

        if(!::CORBA::is_nil(val))
        {
            if(!(v = dynamic_cast<ejbinterop::Logger_ptr>(val)))
            {
                OBProxy_ejbinterop::Logger* obj = new
OBProxy_ejbinterop::Logger;
                obj -> _OB_copyFrom(val);
                v = obj;
                (::CORBA::Any&)any <<= &v;
            }
        }
        else
            v = ejbinterop::Logger::_nil();

        return true;
    }
    else
        return false;
}

//
// RMI:ejbinterop.Logger:0000000000000000
//
OB::MarshalStubImpl_ptr
OBProxy_ejbinterop::Logger::_OB_createMarshalStubImpl()
{
    return new OBMarshalStubImpl_ejbinterop::Logger;
}

const char**
OBProxy_ejbinterop::Logger::_OB_ids() const
{
    return ::ejbinterop::Logger::ids_;
}

//
// IDL:ejbinterop/Logger/logString:1.0
//
void
OBProxy_ejbinterop::Logger::logString(::CORBA::WStringValue* _ob_a0)
{
    ::CORBA::ULong _ob_retry = 0, _ob_hop = 0;
    while(true)
    {
        try
        {
            OB::StubImplBase_var _ob_stubImplBase = _OB_getStubImpl();
            OBStubImpl_ejbinterop::Logger_ptr _ob_stubImpl = dynamic_cast<
OBStubImpl_ejbinterop::Logger_ptr>(_ob_stubImplBase.in());
            _ob_stubImpl -> logString(_ob_a0);
            return;
        }
        catch(const OB::ExceptionBase& _ob_ex)
        {
            _OB_handleException(_ob_ex, _ob_retry, _ob_hop);
        }
    }
}

//
// RMI:ejbinterop.Logger:0000000000000000
//
void
OBDuplicate(OBStubImpl_ejbinterop::Logger_ptr p)
{
    if(p)
        p -> _OB_incRef();
}

void
OBRelease(OBStubImpl_ejbinterop::Logger_ptr p)
{
    if(p)
        p -> _OB_decRef();
}

//
// IDL:ejbinterop/Logger/logString:1.0
//
void
OBMarshalStubImpl_ejbinterop::Logger::logString(::CORBA::WStringValue*
_ob_a0)
{
    while(true)
    {
        OB::Downcall_var _ob_down = _OB_createDowncall("logString", true);
        try
        {
            OB::OutputStreamImpl* _ob_out = _OB_preMarshal(_ob_down);
            try
            {
                OBMarshal(_ob_a0, _ob_out);
            }
            catch(const ::CORBA::SystemException& _ob_ex)
            {
                _OB_marshalEx(_ob_down, _ob_ex);
            }
            _OB_postMarshal(_ob_down);
            _OB_request(_ob_down);
            _OB_preUnmarshal(_ob_down);
            _OB_postUnmarshal(_ob_down);
            return;
        }
        catch(const OB::FailureException& _ob_ex)
        {
            _OB_handleFailureException(_ob_down, _ob_ex);
        }
    }
}





-----Original Message-----
From: David Weir [mailto:[email protected]]
Sent: Tuesday, March 15, 2005 2:06 AM
To: Swapnil Wale
Cc: David Weir; [email protected]
Subject: Re: [OB-Users] Problem with IDL to c++


Hello again Swapnil,

On Mon, Mar 14, 2005 at 10:25:29PM +0530, Swapnil Wale wrote:
> Hi David,
>            Yes I am using Sun's RMIC complier. Have you come across
someone
> who has successfully implemented RMI-IIOP using Sun's RMIC compiler or is
it
> just in theory?
>
> I have a long way to go with the project. So if you can give me some
advise
> I can think on migrating. Thank you and have a nice day.
>
> -Swapnil-

Would it be possible for you to send along your IDL file and the
"Logger.cpp" file? It looks like there is a namespace issue here
that may be resolved fairly easily.

Cheers,
Dave

--
David Weir
Team Orbacus - Your CORBA Source
E-Mail: [email protected]
Phone: (709) 738-3725 x20
WWW: http://www.orbacus.com


_______________________________________________
OB-Users Mailing List - [email protected]
http://mail.ooc.nf.ca/mailman/listinfo/ob-users
Visit our support FAQ before you send a message.
http://www.orbacus.com/faq/support.html
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.