#[repr(C)]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.
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.
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.
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.
Sourcepub unsafe fn setDelegate(
&self,
delegate: Option<&ProtocolObject<dyn ODQueryDelegate>>,
)
pub unsafe fn setDelegate( &self, delegate: Option<&ProtocolObject<dyn ODQueryDelegate>>, )
Setter for delegate
.
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.
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.
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
.
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