RemObjectsSDK

Classes

Class Notes
ROAESEncryptionEnvelope The ROAESEncryptionEnvelope class represents a specific RO Message Envelope that uses the widely-known symetric AES/Rijndael encryption mechanism for encrypting...
ROArray ROArray forms the base class for all array types defined in your RODL library.
ROAsyncProxy This is asynchronous proxy abstract class. It is used as an ancestor for all asynchronous proxy classes when generating code to support asynchronous calls .
ROAsyncRequest ROAsyncRequest objects present an ongoing or completed asynchronous request that is executing after one of the begin* messages is set to an Asynchronous Proxy. The ROAsyncRequest can be used to check the status of the request, assign a delegate (of type ROAsyncRequestDelegate to be informed of progress, success and failures. It also needs to be referenced when sending the end* message to receive any result or outgoing parameters, after the request has completed.
ROBinHeader The ROBinHeader class represents headers of Binary messages.
ROBinHelpers ROBinHelpers represents helper class that provides methods for correct conversion NSDate to Delphi Date and vise versa, getting ANSI strings from NSData and methods for raising RO-encoding specific exceptions.
ROBinMessage Being a descendant of the abstract message class, this class implements the binary messaging protocol for Xcode.
ROBinReaderWriter The ROBinReaderWriter class is used to serialize and deserialize any kind of data into the bytes buffer. It provides a lot of symmetrical read/write methods for each datatype, so you can easily write and read any objects to and from NSData.
ROCertificateInfo This class is used to describe a server certificate when a HTTP based client channel attempts to establish SSL connection with a server.
ROChannel Base class for all particular remobject channels.
ROClientChannel ROClientChannel is the abstract base class for Client Channel implementations in Remoting SDK for Xcode.
ROComplexType ROComplexType is the base class for all Struct types defined in your RODL library.
ROData
ROEnumMetaData This is the base class for building enumeration value to string converters. Concrete descendants of this class are generated by codegen for every enum defined in the corresponding RODL. Natively Objective...
ROEventHandlerRecord
ROEventInvoker
ROEventReceiver The ROEventReceiver class is a server callback events receiver implementation for OS X platform.
ROGuid Provides a convenient object-oriented facility to create and store GUID values. GUIDs (also known as UUIDs in Mac Xcode) are 128-bit values guaranteed to be unique.
ROHTTPAsyncRequest
ROHTTPClientChannel ROHTTPClientChannel implements the standard Client Channel for communicating with Remoting SDK servers via the HTTP protocol. It is also the channel used by the ROSimpleRemoteService.
ROInvokeParameters
ROMessage ROMessage is the abstract base class for Message implementations in Remoting SDK for Xcode.
ROMessageEnvelope ROMessageEnvelope is the abstract base class for Message Envelope implementations in Remoting SDK for Xcode.
ROMessageState Internal message state object. Not intended to use by users.
ROProxy ROProxy is the abstract base class for Proxy classes defined for your services. Proxy objects are used on the client side as call sites for methods on your services, and encapsulate the logic needed for taking the method calls...
RORemoteService A RORemoteService instance represents all information needed to identify a service on a remote machine that a client wants to communicate with, namely the ROClientChannel configured for the server's end point, the ROMessage for the approriate message...
RORodlFile
RORodlItem
RORodlService
ROSimpleRemoteService A ROSimpleRemoteService is provided to cater for the most common scenario of talking to a HTTP server via BinMessage without needing to manually create the necessary message and channel instances.
ROSoapMessage This class is the SOAP Message implementation for Xcode.
ROSoapMessageState The internal SOAP message state object. It is not intended to use by users.
ROSoapSerializer This class is a helper class used internally by the ROSoapMessage to convert simple data to SOAP-compatible XML expressions. This class is not intended to be instantiated or used by users.
ROSuperHTTPAsyncRequest This class is the ROAsyncRequest descendant describing in context. It adds no new user visible features to the superclass but internally reflects the specifics of the SuperHTTP channel...
ROSuperHTTPAsyncRequestOperation
ROSuperHTTPClientChannel This class is the Xcode implementation of the Super HTTP Channel - the enhanced HTTP-based channel which provides a sophisticated and flexible communication...
ROSuperHTTPEventsOperation
ROSuperHTTPOperation
ROSuperHTTPRequestOperation
ROSuperHTTPWaitResponseOperation
ROTCPAsyncRequest This is the asynchronous request class that is designed to be used together with ROTCPClientChannel class. This class exposes no new members available to users and should not be created by users directly. This class is used through the interface of it's superclass, ROAsyncRequest. Please refer to the ROAsyncRequest class documentation for more information.
ROTCPClientChannel The ROTCPClientChannel class is the legacy TCP channel implementation for Xcode.
ROTCPClientChannelConnection
ROTypeActivator This class is abstract. Its descendants are used together with the ROTypeManager class to create complex types instances. In simple scenarios, it is enough to call [[[SomeClass alloc] init] autorelease] to successfully create a...
ROTypeManager The general purpose of this class is to provide a facility to create an instance of the class with a given class name. In this sense, it is a kind of substitute for the reflection feature that exists in .NET.
ROVariant This class is designed to read and write a Delphi-compatible variant type. The variant type can be used to represent a piece of data of unknown type and can hold different/changing types of data at runtime.
ROXml ROXml provides a cross-platform data type to hold XML data to be sent to or received from services. Because Cocoa's native CML classes are not supported on the iPhone platform at the time of writing, this class was introduced to provide a common type...
ROZeroConfBrowser The ROZeroConfBrowser class is a facility to support client-side zero configuration networking in RO SDK for Xcode applications. Its functionality is based on Cocoa's NSNetServiceBrowser class. In addition, the ROZeroConfBrowser class is able...
ROZlib This class is a simple Objective C wrapper around ZLib compression library. It allows to compress and decompress the data easily eliminating the need to operate with C language functions and data structures.

Protocols

Protocol Notes
NSURLConnectionDelegate
ROActiveClientChannel This protocol defines several methods specific to active (super) client channels, such as ROSuperHTTPClientChannel.
ROActiveClientChannelDelegate This protocol defines delegate methods for active (super) client channels, such as ROSuperHTTPClientChannel.
ROAsyncRequestDelegate The ROAsyncRequestDelegate describes the delegate methods that a ROAsyncRequest will call on its delegate object, to inform it about progress, success or failure of the request.
ROClientChannelDelegate This article describes the informal protocol that allows to get feedback from the client channel (ROClientChannel descendant) about connection progress. This includes data flow tracking, login (RO approach, see Authentication and Login) and exception handling.
RODeepCopying The RODeepCopying protocol is quite similar to NSCopying protocol found in Foundation framework but the difference consists of making deep copies of objects. Deep copying means that if the source object contains references to other objects those...
ROEventReceiverDelegate This protocol defines the optional methods implemented by delegates of ROEventReceiver objects.
ROHTTPBasedClientChannel This protocol defines the set of methods specific to HTTP based client channels. The main goal is to operate with HTTP headers used for HTTP requests.
ROHTTPBasedClientChannelDelegate Defines the HTTP based client channel delegate methods.
ROSerialization This is the formal protocol that defines the interface to allow serialization and deserialization of values of all supported types. This protocol is used internally to create message classes such as binary message or SOAP message. You will have to implement this protocol if you want to create your own message class as a ROMessage descendant.
ROSOAPNillableWrapper
ROStreamable This formal protocol defines the interface to read and write a complex type instance to a message. Complex types that implement this protocol include ROComplexType and ROException. In other words, the complex type should...
ROSuperHTTPClientChannelDelegate This protocol is intended to extend ROClientChannelDelegate protocol with some events specific to the ROSuperHTTPClientChannel client channel class.
ROZeroConfBrowserDelegate The informal protocol to be implemented by a ROZeroConfBrowser delegate object. Declares methods to notify the delegate object about services availability changes.

Enums

Enum Notes
ROMessageType
ROSoapMode This enumeration is used to quickly set up ROSoapMessage message instance to use one of the common SOAP messaging conventions.
ROVariantTypeCode This enumeration contains variant type code values matching those of Delphi native Variant type.

Exceptions

Exception Notes
ROAESEnvelopeUnexpectedLengthException Is thrown by ROAESEncryptionEnvelope when:
ROAsyncRequestActiveException Thrown by ROAsyncRequest or descendants when there is an attempt to start the request that is already started.
ROAsyncRequestCancelledException Thrown by ROAsyncRequest or descendants when there is an attempt to access the result of the request that has been cancelled.
ROAsyncRequestException The base class for async request exceptions. Descendants of this class indicate error conditions specific to asynchronous calls.
ROAsyncRequestThreadSuspendedException Thrown by ROAsyncRequest or descendants when the thread the request was started from is not running at the moment of the request completion. By default the request completion code is executed on the originating thread. To avoid this error condition make...
ROBinMessageVersionException This exception is thrown by ROBinMessage when incoming message's version (as specified in the dedicated binary message field) is not supported by the current RO SDK version.
ROChannelBusyException The exception is thrown by plain client channels is case of attempt to use the channel for a remote request while the channel is waiting for another request results. Plain channels are synchronous and can process only one request at a time.
ROClientChannelException The base class for client channel exceptions. Descendants of this class indicate error conditions specific to Client Channels.
ROCommonCryptoException Indicetes a Common Crypto API error. It is currently used by ROAESEncryptionEnvelope. Common Crypto execptions are also thrown in case of wrong decryption key used.
ROConnectionReestablishedException The special exception class that can be thrown on any remote request in case the client channel detects a possible half open socket condition.
RODeprecatedApiException This exception can be thrown ny various classes to indicate that certain method or even entire class is deprecated and cannot be used any more. The exception message will contain hints about suitable replacement of the deprecated API.
RODispatchErrorException This exception is thrown by client channels in case of error dispatching message to the server. This is not a business logic or server side error and usually caused by communication failures...
ROException ROException is the base class for all exception types related to Remoting SDK. This includes exceptions thrown from the RO SDK code indicating some error condition and exceptions defined in your RODL Library. The base exception type provides special support for propagating exceptions back from servers. Any server exceptions that are unknown on the client or do not descend from ROException will be represented using a special descendant of ROException, ROServerException .
ROInvalidBinMessageException The base class for error conditions specific to binary messaging. It is thrown by ROBinMessage class.
ROInvalidClientIdException This exception is thrown when SuperHTTP server could not identify the connecting client as known. This could happen after the server was restarted unexpectedly to the client or the client sufferes from prolonged connection...
ROInvalidUrlException This exception is thrown by client channels and messages when they parse URL Schemes and configure themselves accordingly. There are two possible causes of this exception:
ROInvalidVariantCodeException This exception happens when deserializing a Variant typed value sent by remote party. Every variant value contains a type identifier to specify the type of data that is actually stored inside the Variant value. The exception is thrown when such identifier...
ROLibraryNotLinkedException This exception is thrown when the library code is able to detect the absence of required code linked to the application. This can happen when RO SDK is used as a static library, most probably for iOS development.
ROMessageException The base class for message specific error conditions.
ROMessageTooShortException Thrown when the data stream received from from server is too short to be a valid data package for certain messaging protocol. This can be caused by the server failure or improper specification of client connection parameters...
ROMissingEventInvokerException This exception is thrown when there is an incoming event but it cannot be processed because the corresponding processing class (event invoker) is missing. This error is caused by mismatch between the generated remote service interface...
ROMissingMessageEnvelopeException This exception is thrown by ROBinMessage class instance when it detects an incoming message wrapped with message envelope but it is unable to find the corresponding ROMessageEnvelope configured locally to unwrap it. You need to configure the same set of envelopes on both server and client side for the communication to function properly.
RONotImplementedException
ROPropertyValidationException This exception can be thrown by various classes to indicate that a certain property has invalid value or not assigned at all.
ROProxyConfigurationException The exception is thrown when you try to use a ROProxy instance (it's descendant from the remote service interface code) but it is not fully configured: either channel or message is not assigned.
RORemoteRequestTimeoutException This exception is thrown when calling remote services and indicates that the client has not received the responce for the remote request during the specified period of time. This can happen due to communication failure or when the remote operation takes...
ROServerException The base class for all server side exceptions transferred from the server to client and thrown locally.
ROSoapDateException This exception is thrown when ROSoapMessage class instance tries to parse a parameter value that is expected to be of datetime type but the date representation does not conform to the SOAP datetime convention.
ROSoapException This is the base class for SOAP specific excptions thrown by ROSoapMessage class.
ROSoapMessageValidityException Thie exception is thrown when any part of SOAP message appeared to be invalid or when a mandoatory part of the message is missing.
ROSoapMissingRefTargeException This exception indicates that the incoming SOAP message contains references to some entities but those entities are missing. The possible cause is the SOAP server error or data corruption.
ROSoapXmlException This exception is thrown when the libxml parser was unable to parse the SOAP message. The most common cause is the server response is not XML, you need to check the server configuration and connection parameters, such as target URL.
ROSuperHTTPCommunicationException This exception is thrown by ROSuperHTTPClientChannel in case there is a error reported by underlying HTTP connections. The most common cause is a network link failure.
ROSuperHTTPException The base class for exceptions specific to Super HTTP Channel. Descendants of this exception class are thrown by ROSuperHTTPClientChannel.
ROSuperHTTPPackageTooBigException Thius exception is thrown when the size of data package being transmitted exceeds the configured limits. This exception can be thrown on both client and server sides. Use ROSuperHTTPClientChannel property to configure the desired maximum...
ROSuperHTTPProtocolException This exception is used to indicate a error condition with the SuperHTTP specific communication . Such errors can happen for example after unexpected server restart when all clients registration internal data is lost. It is necessary to reestablish the...
ROSuperHTTPSoftException This exception is used internally by the ROSuperHTTPClientChannel class and never raised at the user code level.
ROTCPDispatchErrorException This eception is thrown by ROTCPClientChannel class when it is unable to dispatch a message. As a rule this inidicates a network problem or unavailable server.
ROUnableInstantiateObjectException This exception happens when deserializing complex types (i.e. arrays and structures) but the library was unable to create an instance of the required class. This can happen when the local...
ROUnexpectedObjectInStreamException This exception happens when deserializing complex types (i.e. arrays and structures) but the actual deserialized class does not match the expected class. This can happen when the local service...
ROUnknownClassException This exception is thrown when ROTypeManager is requested to instantiate an unknown class. This can happen when the reference to unknown class is received from the server as a part of remote request result and usually indicates that the current service...
ROVariantConvertException This exception indicates that value contained in the ROVariant instance cannot be converted to a certain type using as[Type] property.
ROVariantException The base class for exceptions related to processing data of Variant type.
ROVariantIsNotArrayException The exception is thrown in case of attempt to acceess a ROVariant containing a scalar value as an array, i.e. use getItemAtIndex: and setItem:atIndex: methods.
ROZeroConfException This exception is thrown by RORemoteService class in case of any errors interacting with the Bonjour.
SessionDoesNotHaveRequiredRolesException This is a server side exception thrown when the connection has no required security roles to perform a certain operation.
SessionNotFoundException SessionNotFoundException, a special exception class shared between all three editions of Remoting SDK, is used to indicate when a remote call failed because no session was found - typically meaning that user login is required.

Aliases

Alias Type
byte
unsigned char
int16
int16_t
int32
int32_t
int64
int64_t
int8
signed char
ROXmlDocument
void *
ROXmlNamespace
void *
ROXmlNode
void *
uint16
uint16_t
uint32
uint32_t
uint64
uint64_t
uint8
unsigned char

Extensions

Extension
Base64
SoapConverters
StackEmulation
Helpers
XmlSafe
Internal
Protected
internal_dispatch
operations
Private