Re: New Features Question

Jonathan Houser <[email protected]>
Newsgroups gmane.comp.mobile.kannel.devel
Message-ID <[email protected]>
	  Benjamin,

> Well it's really up to you... but if you do decide to post the diff or
> a URL to the diff... other developers can eye the code and give you
> feedback (if they feel like it, of course).

      Good idea.  :)  Here's the current location of said diff file.

    http://66.255.55.23/interop.diff

      If anyone knows of a better way to do the structure handling (ie. 
submit_sm vs. data_sm and their items, ie. data_coding) in a better way, 
it'd be much appreciated.  I tried to do some dynamic casting with the 
same code for both cases (only consolidated into one instance of said 
code), just re-casting a void pointer to the individual structure with 
no success.  Most of the code is identical (ie. handling the "+", 
checking the length, etc.).  The big two-tier switch statement was the 
best I could figure out with the deadline I had to get it working in.

      An example of what I meant above is something like:

void* ptr;

...

switch (command_id)
{
    case COMMAND_ID_SUBMIT_SM:
       pdu = smpp_pdu_create(submit_sm, 
counter_increase(smpp->message_id_counter));
       ptr = &pdu->u.submit_sm;
       #undef DYN_CAST
       #define DYN_CAST struct submit_sm*
    break;

    case COMMAND_ID_DATA_SM:
       pdu = smpp_pdu_create(data_sm, 
counter_increase(smpp->message_id_counter));
       ptr = &pdu->u.data_sm;
       #undef DYN_CAST
       #define DYN_CAST struct data_sm*
    break;

...

((DYN_CAST)ptr)->source_addr = octstr_duplicate(msg->sms.sender);
((DYN_CAST)ptr)->destination_addr = octstr_duplicate(msg->sms.receiver);

      I thought I was really smooth until I remembered that #define's 
are pre-processor and essentially just lump the code into the place of 
the token, thus the above only worked for data_sm as it's #define came 
last.  <sigh>  I'd rather not duplicate 2-300 lines of code just because 
of the structure's oddities.  So like I said, if there are any tricks to 
handling this struct of structs, please let me know.


> It's a free world. ;-) And yay for it!

      Agreed.  :P

Jon
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.