pub struct ODQuery { /* private fields */ }ODQuery only.Expand description
Class used for querying OpenDirectory.
OpenDirectory queries may be used to search for different types of records, e.g. users, groups.
See also Apple’s documentation
Implementations§
Source§impl ODQuery
impl ODQuery
Sourcepub unsafe fn queryWithNode_forRecordTypes_attribute_matchType_queryValues_returnAttributes_maximumResults_error(
in_node: Option<&ODNode>,
in_record_type_or_list: Option<&AnyObject>,
in_attribute: Option<&ODAttributeType>,
in_match_type: ODMatchType,
in_query_value_or_list: Option<&AnyObject>,
in_return_attribute_or_list: Option<&AnyObject>,
in_maximum_results: NSInteger,
out_error: Option<&mut Option<Retained<NSError>>>,
) -> Option<Retained<ODQuery>>
Available on crate features CFOpenDirectory and CFOpenDirectoryConstants and ODNode only.
pub unsafe fn queryWithNode_forRecordTypes_attribute_matchType_queryValues_returnAttributes_maximumResults_error( in_node: Option<&ODNode>, in_record_type_or_list: Option<&AnyObject>, in_attribute: Option<&ODAttributeType>, in_match_type: ODMatchType, in_query_value_or_list: Option<&AnyObject>, in_return_attribute_or_list: Option<&AnyObject>, in_maximum_results: NSInteger, out_error: Option<&mut Option<Retained<NSError>>>, ) -> Option<Retained<ODQuery>>
CFOpenDirectory and CFOpenDirectoryConstants and ODNode only.Creates an autoreleased query with the node using the parameters provided
Creates an autoreleased query with the node using the supplied query parameters. Some parameters can either be NSString or NSData or an NSArray of either NSString or NSData. Passing nil for returnAttributes is equivalent to passing kODAttributeTypeStandardOnly. outError is optional parameter, nil can be passed if error details are not needed.
§Safety
in_nodemight not allowNone.in_record_type_or_listshould be of the correct type.in_record_type_or_listmight not allowNone.in_attributemight not allowNone.in_query_value_or_listshould be of the correct type.in_query_value_or_listmight not allowNone.in_return_attribute_or_listshould be of the correct type.in_return_attribute_or_listmight not allowNone.out_errormight not allowNone.
Sourcepub unsafe fn initWithNode_forRecordTypes_attribute_matchType_queryValues_returnAttributes_maximumResults_error(
this: Allocated<Self>,
in_node: Option<&ODNode>,
in_record_type_or_list: Option<&AnyObject>,
in_attribute: Option<&ODAttributeType>,
in_match_type: ODMatchType,
in_query_value_or_list: Option<&AnyObject>,
in_return_attribute_or_list: Option<&AnyObject>,
in_maximum_results: NSInteger,
out_error: Option<&mut Option<Retained<NSError>>>,
) -> Option<Retained<Self>>
Available on crate features CFOpenDirectory and CFOpenDirectoryConstants and ODNode only.
pub unsafe fn initWithNode_forRecordTypes_attribute_matchType_queryValues_returnAttributes_maximumResults_error( this: Allocated<Self>, in_node: Option<&ODNode>, in_record_type_or_list: Option<&AnyObject>, in_attribute: Option<&ODAttributeType>, in_match_type: ODMatchType, in_query_value_or_list: Option<&AnyObject>, in_return_attribute_or_list: Option<&AnyObject>, in_maximum_results: NSInteger, out_error: Option<&mut Option<Retained<NSError>>>, ) -> Option<Retained<Self>>
CFOpenDirectory and CFOpenDirectoryConstants and ODNode only.Creates a query with the node using the parameters provided
Creates a query with the node using the supplied query parameters. Some parameters can either be NSString or NSData or an NSArray of either NSString or NSData. Passing nil for returnAttributes is equivalent to passing kODAttributeTypeStandardOnly. outError is optional parameter, nil can be passed if error details are not needed.
§Safety
in_nodemight not allowNone.in_record_type_or_listshould be of the correct type.in_record_type_or_listmight not allowNone.in_attributemight not allowNone.in_query_value_or_listshould be of the correct type.in_query_value_or_listmight not allowNone.in_return_attribute_or_listshould be of the correct type.in_return_attribute_or_listmight not allowNone.out_errormight not allowNone.
Sourcepub unsafe fn resultsAllowingPartial_error(
&self,
in_allow_partial_results: bool,
out_error: Option<&mut Option<Retained<NSError>>>,
) -> Option<Retained<NSArray>>
pub unsafe fn resultsAllowingPartial_error( &self, in_allow_partial_results: bool, out_error: Option<&mut Option<Retained<NSError>>>, ) -> Option<Retained<NSArray>>
Returns results from a provided ODQuery synchronously
Returns results from a provided ODQuery synchronously. Passing NO to inAllowPartialResults will block the call until all results are returned or an error occurs. YES can be passed at any time even if previous calls were made with NO. outError is optional parameter, nil can be passed if error details are not needed.
§Safety
out_error might not allow None.
Sourcepub unsafe fn delegate(
&self,
) -> Option<Retained<ProtocolObject<dyn ODQueryDelegate>>>
pub unsafe fn delegate( &self, ) -> Option<Retained<ProtocolObject<dyn ODQueryDelegate>>>
The currently set delegate
The query delegate which will receive asynchronous query results.
§Safety
This is not retained internally, you must ensure the object is still alive.
Sourcepub unsafe fn setDelegate(
&self,
delegate: Option<&ProtocolObject<dyn ODQueryDelegate>>,
)
pub unsafe fn setDelegate( &self, delegate: Option<&ProtocolObject<dyn ODQueryDelegate>>, )
Sourcepub unsafe fn scheduleInRunLoop_forMode(
&self,
in_run_loop: Option<&NSRunLoop>,
in_mode: Option<&NSString>,
)
pub unsafe fn scheduleInRunLoop_forMode( &self, in_run_loop: Option<&NSRunLoop>, in_mode: Option<&NSString>, )
Adds the query object to the specified NSRunLoop to receive asynchronous results
Adds the query object to the specified NSRunLoop to receive asynchronous results. A delegate must be set in advance otherwise results may be lost due to the lack of a receiver.
§Safety
in_run_looppossibly has additional threading requirements.in_run_loopmight not allowNone.in_modemight not allowNone.
Sourcepub unsafe fn removeFromRunLoop_forMode(
&self,
in_run_loop: Option<&NSRunLoop>,
in_mode: Option<&NSString>,
)
pub unsafe fn removeFromRunLoop_forMode( &self, in_run_loop: Option<&NSRunLoop>, in_mode: Option<&NSString>, )
Removes the query object from the specified NSRunLoop
Removes the query object from the specified NSRunLoop.
§Safety
in_run_looppossibly has additional threading requirements.in_run_loopmight not allowNone.in_modemight not allowNone.
Sourcepub unsafe fn synchronize(&self)
pub unsafe fn synchronize(&self)
Will dispose of any results and restart the query.
Will dispose of any results and restart the query for subsequent resultsAllowingPartial: calls. If the query is currently scheduled on a RunLoop, then the delegate will be called with inResults == nil and [inError code] == kODErrorQuerySynchronize and [inError domain] == ODFrameworkErrorDomain, signifying that all existing results should be thrown away in preparation for new results.
Sourcepub unsafe fn operationQueue(&self) -> Option<Retained<NSOperationQueue>>
pub unsafe fn operationQueue(&self) -> Option<Retained<NSOperationQueue>>
The NSOperationQueue on which asynchronous results are delivered to the delegate.
The NSOperationQueue on which asynchronous results are delivered to the delegate.
Sourcepub unsafe fn setOperationQueue(
&self,
operation_queue: Option<&NSOperationQueue>,
)
pub unsafe fn setOperationQueue( &self, operation_queue: Option<&NSOperationQueue>, )
Setter for operationQueue.
§Safety
operation_queuepossibly has additional threading requirements.operation_queuemight not allowNone.
Methods from Deref<Target = NSObject>§
Sourcepub fn doesNotRecognizeSelector(&self, sel: Sel) -> !
pub fn doesNotRecognizeSelector(&self, sel: Sel) -> !
Handle messages the object doesn’t recognize.
See Apple’s documentation for details.
Methods from Deref<Target = AnyObject>§
Sourcepub fn class(&self) -> &'static AnyClass
pub fn class(&self) -> &'static AnyClass
Dynamically find the class of this object.
§Panics
May panic if the object is invalid (which may be the case for objects
returned from unavailable init/new methods).
§Example
Check that an instance of NSObject has the precise class NSObject.
use objc2::ClassType;
use objc2::runtime::NSObject;
let obj = NSObject::new();
assert_eq!(obj.class(), NSObject::class());Sourcepub unsafe fn get_ivar<T>(&self, name: &str) -> &Twhere
T: Encode,
👎Deprecated: this is difficult to use correctly, use Ivar::load instead.
pub unsafe fn get_ivar<T>(&self, name: &str) -> &Twhere
T: Encode,
Ivar::load instead.Use Ivar::load instead.
§Safety
The object must have an instance variable with the given name, and it
must be of type T.
See Ivar::load_ptr for details surrounding this.
Sourcepub fn downcast_ref<T>(&self) -> Option<&T>where
T: DowncastTarget,
pub fn downcast_ref<T>(&self) -> Option<&T>where
T: DowncastTarget,
Attempt to downcast the object to a class of type T.
This is the reference-variant. Use Retained::downcast if you want
to convert a retained object to another type.
§Mutable classes
Some classes have immutable and mutable variants, such as NSString
and NSMutableString.
When some Objective-C API signature says it gives you an immutable class, it generally expects you to not mutate that, even though it may technically be mutable “under the hood”.
So using this method to convert a NSString to a NSMutableString,
while not unsound, is generally frowned upon unless you created the
string yourself, or the API explicitly documents the string to be
mutable.
See Apple’s documentation on mutability and on
isKindOfClass: for more details.
§Generic classes
Objective-C generics are called “lightweight generics”, and that’s because they aren’t exposed in the runtime. This makes it impossible to safely downcast to generic collections, so this is disallowed by this method.
You can, however, safely downcast to generic collections where all the
type-parameters are AnyObject.
§Panics
This works internally by calling isKindOfClass:. That means that the
object must have the instance method of that name, and an exception
will be thrown (if CoreFoundation is linked) or the process will abort
if that is not the case. In the vast majority of cases, you don’t need
to worry about this, since both root objects NSObject and
NSProxy implement this method.
§Examples
Cast an NSString back and forth from NSObject.
use objc2::rc::Retained;
use objc2_foundation::{NSObject, NSString};
let obj: Retained<NSObject> = NSString::new().into_super();
let string = obj.downcast_ref::<NSString>().unwrap();
// Or with `downcast`, if we do not need the object afterwards
let string = obj.downcast::<NSString>().unwrap();Try (and fail) to cast an NSObject to an NSString.
use objc2_foundation::{NSObject, NSString};
let obj = NSObject::new();
assert!(obj.downcast_ref::<NSString>().is_none());Try to cast to an array of strings.
use objc2_foundation::{NSArray, NSObject, NSString};
let arr = NSArray::from_retained_slice(&[NSObject::new()]);
// This is invalid and doesn't type check.
let arr = arr.downcast_ref::<NSArray<NSString>>();This fails to compile, since it would require enumerating over the array to ensure that each element is of the desired type, which is a performance pitfall.
Downcast when processing each element instead.
use objc2_foundation::{NSArray, NSObject, NSString};
let arr = NSArray::from_retained_slice(&[NSObject::new()]);
for elem in arr {
if let Some(data) = elem.downcast_ref::<NSString>() {
// handle `data`
}
}Trait Implementations§
Source§impl ClassType for ODQuery
impl ClassType for ODQuery
Source§const NAME: &'static str = "ODQuery"
const NAME: &'static str = "ODQuery"
Source§type ThreadKind = <<ODQuery as ClassType>::Super as ClassType>::ThreadKind
type ThreadKind = <<ODQuery as ClassType>::Super as ClassType>::ThreadKind
Source§impl CopyingHelper for ODQuery
impl CopyingHelper for ODQuery
Source§impl NSCopying for ODQuery
impl NSCopying for ODQuery
Source§impl NSObjectProtocol for ODQuery
impl NSObjectProtocol for ODQuery
Source§fn isEqual(&self, other: Option<&AnyObject>) -> bool
fn isEqual(&self, other: Option<&AnyObject>) -> bool
Source§fn hash(&self) -> usize
fn hash(&self) -> usize
Source§fn isKindOfClass(&self, cls: &AnyClass) -> bool
fn isKindOfClass(&self, cls: &AnyClass) -> bool
Source§fn is_kind_of<T>(&self) -> bool
fn is_kind_of<T>(&self) -> bool
isKindOfClass directly, or cast your objects with AnyObject::downcast_ref