Navigation


Changeset 624:a5682d003ed9 in freeDiameter for doc


Ignore:
Timestamp:
Dec 9, 2010, 5:14:24 PM (13 years ago)
Author:
Sebastien Decugis <sdecugis@nict.go.jp>
Branch:
default
Phase:
public
Message:

Finally got the proxy aka shadow class to work

File:
1 edited

Legend:

Unmodified
Added
Removed
  • doc/dbg_interactive.py.sample

    r623 r624  
    3030
    3131# Print messages to freeDiameter's debug facility
    32 fd_log_debug("3 + 4 = %d\n", 7)
    33 # Hum... Currently I get "3 + 4 = 0" output... need some fix...
     32fd_log_debug("3 + 4 = %d\n" % (7))
     33# See SWIG documentation about varargs functions for more information
    3434
    3535
     
    4242# foo_a_get(s)     --> returns s->a value
    4343# delete_foo(s)    --> free(s)
     44#
     45# In addition, thanks to proxy (aka shadow) class, we can also do:
     46# s = foo()
     47# s.a = 2
     48# s.a
     49# del s
    4450
    4551
     
    6369peer_info_config_pic_flags_pro4_set(mypicflag, 1)   # 1 for TCP
    6470fd_peer_add(mypeer, "python", None, None)
     71delete_peer_info(mypeer)
    6572
    6673
     
    7885# Dictionary
    7986gdict = fd_config_cnf_dict_get(cvar.fd_g_config)
     87
    8088id = new_int_ptr()
    8189int_ptr_assign(id, 3)
    82 res = new_dict_object_ptr()
    83 err = fd_dict_search ( gdict, DICT_APPLICATION, APPLICATION_BY_ID, id, res, -1 )
    84 obj = dict_object_ptr_value(res)
     90pobj = new_dict_object_pptr()
     91fd_dict_search ( gdict, DICT_APPLICATION, APPLICATION_BY_ID, id, pobj, -1 )
     92delete_int_ptr(id)
     93obj = dict_object_pptr_value(pobj)
     94delete_dict_object_pptr(pobj)
    8595t = new_dict_object_type_ptr()
    86 err = fd_dict_gettype(obj, t)
     96fd_dict_gettype(obj, t)
    8797dict_object_type_ptr_dump(t)
    88 v = new_dict_application_data()
    89 err = fd_dict_getval(obj, v)
    90 dict_application_data_application_name_get(v)
     98delete_dict_object_type_ptr(t)
     99objdata = new_dict_application_data()
     100fd_dict_getval(obj, objdata)
     101dict_application_data_application_name_get(objdata)
     102delete_dict_application_data(objdata)
     103
     104vd = new_dict_vendor_data()
     105dict_vendor_data_vendor_id_set(vd, 123)
     106dict_vendor_data_vendor_name_set(vd, "my test vendor")
     107pobj = new_dict_object_pptr()
     108fd_dict_new ( gdict, DICT_VENDOR, vd, None, pobj)
     109delete_dict_vendor_data(vd)
     110obj = dict_object_pptr_value(pobj)
     111delete_dict_object_pptr(pobj)
     112fd_dict_dump_object(obj)
    91113
    92114
     115# Sessions
     116pmyhdl = new_session_handler_pptr()
     117fd_sess_handler_create_internal(pmyhdl, None)
     118### Have to work on this one, a cleanup handler is actually required.
     119### How to define the handler in python ?
     120myhdl = session_handler_pptr_value(pmyhdl)
     121delete_session_handler_pptr(pmyhdl)
    93122
     123psess = new_session_pptr()
     124fd_sess_new (psess, fd_config_cnf_diamid_get(cvar.fd_g_config), "dbg_interactive", 0)
     125sess = session_pptr_value(psess)
     126fd_sess_dump(0, sess)
     127fd_sess_destroy(psess)
     128delete_session_pptr(psess)
     129
     130
     131# Routing data
     132prtd = new_rt_data_pptr()
     133fd_rtd_init(prtd)
     134fd_rtd_candidate_add(rt_data_pptr_value(prtd), "p1.testbed.aaa", "testbed.aaa")
     135fd_rtd_candidate_add(rt_data_pptr_value(prtd), "p2.testbed.aaa", "testbed.aaa")
     136fd_rtd_candidate_add(rt_data_pptr_value(prtd), "p3.testbed.aaa", "testbed.aaa")
     137fd_rtd_candidate_del(rt_data_pptr_value(prtd), "p2.testbed.aaa", 0)
     138pcands = new_fd_list_pptr()
     139fd_rtd_candidate_extract(rt_data_pptr_value(prtd), pcands, 0)
     140li = fd_list_pptr_value(pcands)
     141li = fd_list_next_get(li)
     142c = fd_list_to_rtd_candidate(li)
     143rtd_candidate_diamid_get(c)
     144li = fd_list_next_get(li)
     145c = fd_list_to_rtd_candidate(li)
     146rtd_candidate_diamid_get(c)
     147
     148
     149# Messages
     150gdict = fd_config_cnf_dict_get(cvar.fd_g_config)
     151pobj = new_dict_object_pptr()
     152fd_dict_search ( gdict, DICT_COMMAND, CMD_BY_NAME, char_to_void("Capabilities-Exchange-Request"), pobj, -1 )
     153cerdict = dict_object_pptr_value(pobj)
     154fd_dict_search ( gdict, DICT_AVP, AVP_BY_NAME, char_to_void("Origin-Host"), pobj, -1 )
     155ohdict = dict_object_pptr_value(pobj)
     156delete_dict_object_pptr(pobj)
     157
     158pmsg = new_msg_pptr()
     159fd_msg_new(cerdict, MSGFL_ALLOC_ETEID, pmsg)
     160msg = msg_pptr_value(pmsg);
     161pavp = new_avp_pptr()
     162fd_msg_avp_new(ohdict, 0, pavp)
     163avp = avp_pptr_value(pavp);
     164fd_msg_avp_add(msg, MSG_BRW_FIRST_CHILD, avp)
     165fd_msg_dump_walk(0, msg)
     166
     167pahdr = new_avp_hdr_pptr()
     168fd_msg_avp_hdr(avp, pahdr)
     169ahdr = avp_hdr_pptr_value(pahdr)
     170delete_avp_hdr_pptr(pahdr)
     171avp_hdr_avp_code_get(ahdr)
     172os = new_avp_value_os()
     173avp_value_os_fromstr(os, fd_config_cnf_diamid_get(cvar.fd_g_config))
     174val = new_avp_value()
     175avp_value_os_set(val, os)
     176delete_avp_value_os(os)
     177fd_msg_avp_setvalue(avp, val)
     178delete_avp_value(val)
     179
     180r,buf = fd_msg_bufferize_py(msg)
     181fd_msg_free(msg)
     182delete_avp_pptr(pavp)
     183
Note: See TracChangeset for help on using the changeset viewer.