00001 /** 00002 * @file ccn/face_mgmt.h 00003 * 00004 * Part of the CCNx C Library. 00005 * 00006 * Copyright (C) 2009 Palo Alto Research Center, Inc. 00007 * 00008 * This library is free software; you can redistribute it and/or modify it 00009 * under the terms of the GNU Lesser General Public License version 2.1 00010 * as published by the Free Software Foundation. 00011 * This library is distributed in the hope that it will be useful, 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 * Lesser General Public License for more details. You should have received 00015 * a copy of the GNU Lesser General Public License along with this library; 00016 * if not, write to the Free Software Foundation, Inc., 51 Franklin Street, 00017 * Fifth Floor, Boston, MA 02110-1301 USA. 00018 */ 00019 00020 #ifndef CCN_FACE_MGMT_DEFINED 00021 #define CCN_FACE_MGMT_DEFINED 00022 00023 #include <stddef.h> 00024 #include <ccn/charbuf.h> 00025 #include <ccn/sockcreate.h> 00026 00027 #define CCN_NO_FACEID (~0U) 00028 00029 struct ccn_face_instance { 00030 const char *action; 00031 const unsigned char *ccnd_id; 00032 size_t ccnd_id_size; 00033 unsigned faceid; 00034 struct ccn_sockdescr descr; 00035 int lifetime; 00036 struct ccn_charbuf *store; 00037 }; 00038 00039 struct ccn_face_instance *ccn_face_instance_parse(const unsigned char *p, 00040 size_t size); 00041 00042 void ccn_face_instance_destroy(struct ccn_face_instance**); 00043 00044 int ccnb_append_face_instance(struct ccn_charbuf *, 00045 const struct ccn_face_instance *); 00046 00047 #endif