© 2009-2010 OMTP Ltd. All rights reserved. OMTP and OMTP BONDI are registered trademarks of OMTP Ltd.
Common BONDI functionality.
StringArray
FeatureArray
ByteArray
ShortArray
LongArray
FloatArray
Map
SuccessCallback
RequestFeatureSuccessCallback
ErrorCallback
FeatureCallback
GenericError
DeviceAPIError
SecurityError
PendingOperation
GenericFilter
Bondi
| Interface | Method |
|---|---|
| SuccessCallback | void onSuccess() |
| RequestFeatureSuccessCallback | void onSuccess(Object ob) |
| ErrorCallback | void onError(GenericError error) |
| FeatureCallback | void onFeatureLoaded(FeatureArray loadedFeatures) |
| GenericError | |
| DeviceAPIError | |
| SecurityError | |
| PendingOperation | boolean cancel() void wait() |
| GenericFilter | |
| Bondi | PendingOperation requestFeature(RequestFeatureSuccessCallback successCallback, ErrorCallback errorCallback, DOMString name) FeatureArray getFeatures() long watchFeatures(FeatureCallback callback) void clearWatch(long watch) |
Copyright 2010 OMTP Ltd.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
This is the list of URIs used to declare this API's features, for use in bondi.requestFeature. For each URL, the list of functions covered is provided.
These definitions can be used in all other BONDI modules as dependencies.
StringArray
Array of DOMStrings.
typedef sequence<DOMString> StringArray;
FeatureArray
Array of Feature IRIs.
typedef sequence<DOMString> FeatureArray;
ByteArray
Array of 8-bit unsigned integer values.
typedef sequence<octet> ByteArray;
ShortArray
Array of 16-bit signed integer values.
typedef sequence<short> ShortArray;
LongArray
Array of 32-bit signed integer values.
typedef sequence<long> LongArray;
FloatArray
Array of floating point values.
typedef sequence<float> FloatArray;
Map
Generic Map object.
typedef Object Map;
SuccessCallback
Generic success callback interface.
[Callback=FunctionOnly, NoInterfaceObject] interface SuccessCallback {
void onSuccess();
};
onSuccess
Method invoked when the asynchronous call completes successfully
void onSuccess();
RequestFeatureSuccessCallback
Success callback interface for requestFeature invocations
[Callback=FunctionOnly, NoInterfaceObject] interface RequestFeatureSuccessCallback {
void onSuccess(in Object ob);
};
onSuccess
Method invoked upon a successful requestFeature invocation
void onSuccess(in Object ob);
ErrorCallback
Generic error callback interface.
[Callback=FunctionOnly, NoInterfaceObject] interface ErrorCallback {
void onError(in GenericError error);
};
onError
Method invoked when an error occurs
void onError(in GenericError error);
FeatureCallback
Feature callback interface.
[Callback=FunctionOnly, NoInterfaceObject] interface FeatureCallback {
void onFeatureLoaded(in FeatureArray loadedFeatures);
};
onFeatureLoaded
Called when features become available.
void onFeatureLoaded(in FeatureArray loadedFeatures);
GenericError
Generic error interface.
interface GenericError {
readonly attribute unsigned short code;
};
readonly
unsigned short code
16-bit error code.
DeviceAPIError
DeviceApiError error interface.
interface DeviceAPIError : GenericError {
const unsigned short UNKNOWN_ERROR = 10000;
const unsigned short INVALID_ARGUMENT_ERROR = 10001;
const unsigned short NOT_FOUND_ERROR = 10002;
const unsigned short PENDING_OPERATION_ERROR = 10003;
const unsigned short IO_ERROR = 10004;
const unsigned short NOT_SUPPORTED_ERROR = 10005;
};
The error codes must be in the range 10000-19999.
unsigned short UNKNOWN_ERROR
Unknown error.
unsigned short INVALID_ARGUMENT_ERROR
Invalid value was specified as input parameter.
unsigned short NOT_FOUND_ERROR
The searched value or object was not found.
unsigned short PENDING_OPERATION_ERROR
Operation is pending.
unsigned short IO_ERROR
Input/Output error.
unsigned short NOT_SUPPORTED_ERROR
Not supported error.
SecurityError
Security error interface.
interface SecurityError : GenericError {
const unsigned short PERMISSION_DENIED_ERROR = 20000;
};
The error codes must be in the range 20000-29999
PendingOperation
PendingOperation.
interface PendingOperation {
boolean cancel();
void wait();
};
Interface that is returned by asynchronous operations in order to provide a cancellation operation.
cancel
Call to cancel the underlying asynchronous operation.
boolean cancel();
This call is always successful, i.e. the pending operation i.e. either cancelled or one of the callback is called.
wait
Call to wait until the underlying asynchronous operation completes.
void wait();
This method is intended for use in cases where the BONDI asynchronous method should accomplish in synchronous-like manner. This is specifically important in the realization of the shim-layers that convert between various (a)synchronicity models. This call blocks the current execution thread until the PendingOperation completes. Depending on the success or failure of the PendingOperation result, the appropriate callbacks will be called before this method returns. A call to the PendingOperation.wait() on any instance of the PendingOperation interface, from within one of the callbacks results in no operation. This is to prevent deadlocks by improper use of the wait() method. A call to the PendingOperation.cancel() on any instance of the PendingOperation interface from within one of the callbacks results in PendingOperation.cancel() returning falsei.e. the cancellation shall not succeed.
var loadingsuccessful = 0;
function successCB()
{
alert("SUCCESS");
loadingsuccessful = 1;
}
function errorCB()
{
alert("ERROR");
loadingsuccessful = 0;
}
function loadFeatureSynchronously()
{
var asyncop = bondi.requestFeature(successCB, errorCB, "http://bondi.omtp.org/api/messaging");
asyncop.wait(); // waiting for messaging API to be loaded
alert("Feature loading accomplished");
return loadingsuccessful; // if 1, the messaging API was loaded synchronously and successfully
}
// The bondi.requestFeature() method is asynchronous by design.
// bondi.requestFeature() start dummy asynchronous operation.
// The call to loadFeatureSynchronously() results in SUCCESS or ERROR prompt prior to Feature loading accomplished prompt.
GenericFilter
Generic filter interface. All filter object must inherit from this interface.
interface GenericFilter {
};
Bondi
BONDI root API. bondi root property exists in the global object
interface Bondi {
PendingOperation requestFeature(in RequestFeatureSuccessCallback successCallback,
in ErrorCallback errorCallback,
in DOMString name);
FeatureArray getFeatures();
long watchFeatures(in FeatureCallback callback);
void clearWatch(in long watch);
};
requestFeature
Requests a feature.
PendingOperation requestFeature(in RequestFeatureSuccessCallback successCallback, in ErrorCallback errorCallback, in DOMString name);
This function requests a named feature asynchronously and returns a pending operation object. If it succeeds it calls the successCallback and passes in the object of the requested feature. If it fails it calls the errorCallback passing in a DeviceAPIError which provides an error message and error code indicating the nature of the error.
If the requested feature binds itself to a root namespace ( for example, "bondi.pim.contact") this will happen prior to the successCallback being invoked.
Errors that may be returned in the ErrorCallback:
bondi.requestFeature(successCB, errorCB, "http://bondi.omtp.org/api/messaging");
getFeatures
Returns all available features.
FeatureArray getFeatures();
watchFeatures
Registers a listener to be notified of changes in the availability of features.
long watchFeatures(in FeatureCallback callback);
clearWatch
Unregisters a previously registered listener.
void clearWatch(in long watch);