CORBA-MICO

 view release on metacpan or  search on metacpan

server.h  view on Meta::CPAN


    CORBA::OperationDescription *find_operation(
	CORBA::InterfaceDef::FullInterfaceDescription *d, 
	const char  *name);
    CORBA::AttributeDescription *find_attribute(
	CORBA::InterfaceDef::FullInterfaceDescription *d, 
	const char  *name, 
	bool         set);
    CORBA::NVList_ptr build_args(
	const char  *name, 
	int         &return_items,
	CORBA::TypeCode *&return_type,
	int         &inout_items,
	CORBA::ExcDescriptionSeq  *&exceptions);

    PerlInterpreter* thx;	//! Perl context
    SV *perlobj;
    CORBA::InterfaceDef::FullInterfaceDescription *desc;
};

// Specialized skeleton classes for the POA

class PMicoAdapterActivator : public POA_PortableServer::AdapterActivator {
public:
    PMicoAdapterActivator          (SV *_perlobj) {
	perlobj = SvRV(_perlobj);
    }

    CORBA::Boolean unknown_adapter (PortableServer::POA_ptr parent, 
				    const char *            name);

private:
    SV *perlobj;
};

class PMicoServantActivator : public virtual POA_PortableServer::ServantActivator {
public:
    PMicoServantActivator(SV *_perlobj);

    PortableServer::Servant incarnate   (const PortableServer::ObjectId& oid,
				         PortableServer::POA_ptr         adapter);
    void                    etherealize (const PortableServer::ObjectId& oid,
					 PortableServer::POA_ptr         adapter,
					 PortableServer::Servant         serv,
					 CORBA::Boolean                  cleanup_in_progress,
					 CORBA::Boolean                  remaining_activations);
private:
    PerlInterpreter* thx;	//! Perl context
    SV *perlobj;
};

class PMicoServantLocator : public POA_PortableServer::ServantLocator {
public:
    PMicoServantLocator                (SV *_perlobj) {
	perlobj = SvRV(_perlobj);
    }

    PortableServer::Servant preinvoke  (const PortableServer::ObjectId& oid,
				        PortableServer::POA_ptr   adapter,
				        const char *                    operation,
				        PortableServer::ServantLocator::Cookie &the_cookie);
    void                    postinvoke (const PortableServer::ObjectId& oid,
					PortableServer::POA_ptr   adapter,
					const char *                    operation,
					PortableServer::ServantLocator::Cookie  the_cookie,
					PortableServer::Servant         serv);
private:
    SV *perlobj;
};

// Information attached to a Perl servant via '~' magic
struct PMicoInstVars
{
    U32 magic;	                // 0x18981972 
    PortableServer::Servant servant;
};

#endif /* __SERVER_H__ */



( run in 0.442 second using v1.01-cache-2.11-cpan-39bf76dae61 )