// // Copyright (c) ZeroC, Inc. All rights reserved. // #import "Properties.h" #import "Convert.h" @implementation ICEProperties -(std::shared_ptr) properties { return std::static_pointer_cast(self.cppObject); } -(NSString*) getProperty:(NSString*)key { return toNSString(self.properties->getProperty(fromNSString(key))); } -(NSString*) getPropertyWithDefault:(NSString*)key value:(NSString*)value { return toNSString(self.properties->getPropertyWithDefault(fromNSString(key), fromNSString(value))); } -(int32_t) getPropertyAsInt:(NSString*)key { return self.properties->getPropertyAsInt(fromNSString(key)); } -(int32_t) getPropertyAsIntWithDefault:(NSString*)key value:(int32_t)value { return self.properties->getPropertyAsIntWithDefault(fromNSString(key), value); } -(NSArray*) getPropertyAsList:(NSString*)key { return toNSArray(self.properties->getPropertyAsList(fromNSString(key))); } -(NSArray*) getPropertyAsListWithDefault:(NSString*)key value:(NSArray*)value { std::vector s; fromNSArray(value, s); return toNSArray(self.properties->getPropertyAsListWithDefault(fromNSString(key), s)); } -(NSDictionary*) getPropertiesForPrefix:(NSString*)prefix { return toNSDictionary(self.properties->getPropertiesForPrefix(fromNSString(prefix))); } -(BOOL) setProperty:(NSString*)key value:(NSString*)value error:(NSError**)error; { try { self.properties->setProperty(fromNSString(key), fromNSString(value)); return YES; } catch(const std::exception& ex) { *error = convertException(ex); return NO; } } -(NSArray*) getCommandLineOptions { return toNSArray(self.properties->getCommandLineOptions()); } -(NSArray*) parseCommandLineOptions:(NSString*)prefix options:(NSArray*)options error:(NSError**)error; { try { std::vector s; fromNSArray(options, s); return toNSArray(self.properties->parseCommandLineOptions(fromNSString(prefix), s)); } catch(const std::exception& ex) { *error = convertException(ex); return nil; } } -(NSArray*) parseIceCommandLineOptions:(NSArray*)options error:(NSError**)error; { try { std::vector s; fromNSArray(options, s); return toNSArray(self.properties->parseIceCommandLineOptions(s)); } catch(const std::exception& ex) { *error = convertException(ex); return nil; } } -(BOOL) load:(NSString*)file error:(NSError**)error { try { self.properties->load(fromNSString(file)); return YES; } catch(const std::exception& ex) { *error = convertException(ex); return NO; } } -(ICEProperties*) clone { auto props = self.properties->clone(); return [ICEProperties getHandle:props]; } @end