#ifndef __CPOLICYXML__
#define __CPOLICYXML__
#ifdef __cplusplus
extern "C" {
#endif
#include <PasswordServer/CPolicyBase.h>
int ConvertXMLPolicyToSpaceDelimited( const char *inXMLDataStr, char **outPolicyStr );
int ConvertSpaceDelimitedPolicyToXML( const char *inPolicyStr, char **outXMLDataStr );
void GetDefaultUserPolicies( PWAccessFeatures *inOutUserPolicies );
#ifdef __cplusplus
};
#endif
class CPolicyXML : public CPolicyBase
{
public:
CPolicyXML();
CPolicyXML( CFDictionaryRef inPolicyDict );
CPolicyXML( const char *xmlDataStr );
virtual ~CPolicyXML();
virtual void CPolicyCommonInit( void );
static void CPolicyXMLCommonInitStatic( PWAccessFeatures *inOutPolicies );
virtual void GetPolicy( PWAccessFeatures *outPolicy );
virtual char * GetPolicyAsSpaceDelimitedData( void );
virtual void SetPolicy( PWAccessFeatures *inPolicy );
virtual void SetPolicy( CFDictionaryRef inPolicyDict );
protected:
virtual int ConvertPropertyListPolicyToStruct( CFMutableDictionaryRef inPolicyDict );
virtual int ConvertStructToPropertyListPolicy( void );
PWAccessFeatures mPolicy;
unsigned long mWarnOfExpirationMinutes;
unsigned long mWarnOfDisableMinutes;
time_t mProjectedPasswordExpireDate;
time_t mProjectedAccountDisableDate;
};
#endif