[wsf-c-dev] [C++] How should this be implimented in C++?

Damitha Kumarage damitha at wso2.com
Fri Oct 19 02:19:58 PDT 2007


Hi Senaka,

Senaka Fernando wrote:

>The code below is extracted from axiom_node.h, in Axis2/C. How should
>this be implemented in C++? What types are returned? Is it really
>required? Are there any alternative workarounds?
>       /**
>        * get the struct contained in the node
>        * IF the node is on type AXIOM_ELEMENT , this method returns
>        * a pointer to  axiom_element_t struct contained
>        * @param om_node node
>        * @returns pointer to struct contained in the node
>        * returns NULL if no struct is contained
>        */
>        AXIS2_EXTERN void *AXIS2_CALL
>        axiom_node_get_data_element(wsf_axiom_node om_node);
>  
>
In Axis2/C axiom I could not find the functio you mentioned. However I 
can see
    AXIS2_EXTERN void *AXIS2_CALL
    axiom_node_get_data_element(
        axiom_node_t * om_node,
        const axutil_env_t * env);
May be you have made a mistake or is this something else?.
Also I cannot understand what you mean by your question.
Anyway when I try to sense your question I guess studying the sample I 
created
below may give you some facts to think about and discuss.

Say I have a struct cperson type in C and I have a function called

caddress_t *
cperson_get_address(
    cperson_t *person)

implemented in C. If I write a wrapper for this in C++ I will be having 
a classes called person and address corresponding to the structs cperson 
and caddress in C
and it has class variables similar to the corresponding C structures.

Here is how my wrapper method in C++ would be.
address *get_address()
{
        return (address *) cperson_get_address((cperson_t *) this);
}

Complete running sample is attached. Please study it and check the 
sanity of the code with regards to compilers, specs etc.
Damitha



>Regards,
>Senaka
>
>
>_______________________________________________
>Wsf-c-dev mailing list
>Wsf-c-dev at wso2.org
>http://wso2.org/cgi-bin/mailman/listinfo/wsf-c-dev
>
>  
>

-------------- next part --------------
A non-text attachment was scrubbed...
Name: wrapper.zip
Type: application/zip
Size: 19154 bytes
Desc: not available
Url : http://wso2.org/pipermail/wsf-c-dev/attachments/20071019/43e46f90/wrapper-0001.zip


More information about the Wsf-c-dev mailing list