#ifndef __PPP_UTILS__
#define __PPP_UTILS__
int getStringFromEntity(CFStringRef domain, CFStringRef serviceID,
CFStringRef entity, CFStringRef property, u_char *str, u_int16_t maxlen);
CFStringRef copyCFStringFromEntity(CFStringRef domain, CFStringRef serviceID,
CFStringRef entity, CFStringRef property);
int getNumberFromEntity(CFStringRef domain, CFStringRef serviceID,
CFStringRef entity, CFStringRef property, u_int32_t *outval);
int getAddressFromEntity(CFStringRef domain, CFStringRef serviceID,
CFStringRef entity, CFStringRef property, u_int32_t *outval);
int getNumber(CFDictionaryRef service, CFStringRef property, u_int32_t *outval);
int getString(CFDictionaryRef service, CFStringRef property, u_char *str, u_int16_t maxlen);
CFDictionaryRef copyService(CFStringRef domain, CFStringRef serviceID);
CFDictionaryRef copyEntity(CFStringRef domain, CFStringRef serviceID, CFStringRef entity);
int existEntity(CFStringRef domain, CFStringRef serviceID, CFStringRef entity);
u_int32_t CFStringAddrToLong(CFStringRef string);
void AddNumber(CFMutableDictionaryRef dict, CFStringRef property, u_int32_t nunmber);
void AddString(CFMutableDictionaryRef dict, CFStringRef property, char *string);
void AddNumberFromState(CFStringRef serviceID, CFStringRef entity, CFStringRef property, CFMutableDictionaryRef dict);
void AddStringFromState(CFStringRef serviceID, CFStringRef entity, CFStringRef property, CFMutableDictionaryRef dict);
Boolean my_CFEqual(CFTypeRef obj1, CFTypeRef obj2);
void my_CFRelease(CFTypeRef obj);
void my_CFRetain(CFTypeRef obj);
void my_close(int fd);
void *my_Allocate(int size);
void my_Deallocate(void * addr, int size);
CFDataRef Serialize(CFPropertyListRef obj, void **data, u_int32_t *dataLen);
CFPropertyListRef Unserialize(void *data, u_int32_t dataLen);
CFStringRef CopyUserLocalizedString(CFBundleRef bundle,
CFStringRef key, CFStringRef value, CFArrayRef userLanguages);
CFStringRef parse_component(CFStringRef key, CFStringRef prefix);
#endif