// GetContentValue() // core: ccn_content_get_value() public static string GetContentValue(IntPtr content_ccnb, IntPtr pco) { ccn_parsed_ContentObject Pco = new ccn_parsed_ContentObject(); Pco = (ccn_parsed_ContentObject)Marshal.PtrToStructure(content_ccnb, typeof(ccn_parsed_ContentObject)); UInt16 source_length = Pco.offset[(int)PCO.ccn_parsed_content_object_offsetid.CCN_PCO_E]; IntPtr result_ptr = IntPtr.Zero; int result_length = 0; ccn_content_get_value(content_ccnb, source_length, pco, ref result_ptr, ref result_length); string content = Marshal.PtrToStringAnsi(result_ptr); return content; }
// GetContentName() // get name from content object // takes info->content_ccnb // returns full content name // core: ccn_uri_append() public static string GetContentName(IntPtr content_ccnb) { IntPtr c = ccn_charbuf_create(); ccn_parsed_ContentObject Pco = new ccn_parsed_ContentObject(); Pco = (ccn_parsed_ContentObject)Marshal.PtrToStructure(content_ccnb, typeof(ccn_parsed_ContentObject)); UInt16 source_length = Pco.offset[(int)PCO.ccn_parsed_content_object_offsetid.CCN_PCO_E]; ccn_uri_append(c, content_ccnb, source_length, 0); IntPtr temp = ccn_charbuf_as_string(c); string contentname = Marshal.PtrToStringAnsi(temp); //string [] split = contentname.Split(new char [] {'/'},StringSplitOptions.RemoveEmptyEntries); return contentname; }