mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2025-10-16 12:05:41 +00:00
472 lines
11 KiB
TypeScript
472 lines
11 KiB
TypeScript
// Type definitions for Vortex Web 1.2
|
|
// Project: http://www.prismtech.com/vortex/vortex-web
|
|
// Definitions by: Stefan Profanter <https://github.com/Pro/>
|
|
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
|
|
|
/*
|
|
Vortex Web
|
|
|
|
This software and documentation are Copyright 2010 to 2015 PrismTech
|
|
Limited and its licensees. All rights reserved. See file:
|
|
|
|
docs/LICENSE.html
|
|
|
|
for full copyright notice and license terms.
|
|
*/
|
|
|
|
declare namespace DDS {
|
|
|
|
|
|
/**
|
|
* Base class for all policies
|
|
*/
|
|
interface Policy {
|
|
|
|
}
|
|
|
|
/**
|
|
* History policy
|
|
*/
|
|
export enum HistoryKind {
|
|
KeepAll = 0,
|
|
KeepLast = 1
|
|
}
|
|
|
|
/**
|
|
* History policy
|
|
*/
|
|
export class History implements Policy {
|
|
/**
|
|
* KeepAll - KEEP_ALL qos policy
|
|
*/
|
|
static KeepAll:any;
|
|
/**
|
|
* KeepLast - KEEP_LAST qos policy
|
|
*/
|
|
static KeepLast:any;
|
|
}
|
|
|
|
/**
|
|
* Reliability Policy
|
|
* @example var qos = Reliability.Reliable
|
|
*/
|
|
export enum ReliabilityKind {
|
|
Reliable = 0,
|
|
BestEffort = 1
|
|
}
|
|
|
|
/**
|
|
* History policy
|
|
*/
|
|
export class Reliability implements Policy {
|
|
/**
|
|
* Reliable - 'Reliable' reliability policy
|
|
*/
|
|
static Reliable:any;
|
|
/**
|
|
* BestEffort - 'BestEffort' reliability policy
|
|
*/
|
|
static BestEffort:any;
|
|
}
|
|
|
|
/**
|
|
* Create new partition policy
|
|
*
|
|
* @param policies - partition names
|
|
* @example var qos = Partition('p1', 'p2')
|
|
*/
|
|
export function Partition(...policies:string[]):Policy;
|
|
|
|
/**
|
|
* Create new content filter policy
|
|
*
|
|
* @param expr - filter expression
|
|
* @example var filter = ContentFilter("x>10 AND y<50")
|
|
*/
|
|
export function ContentFilter(expr:string):Policy;
|
|
|
|
|
|
/**
|
|
* Create new time filter policy
|
|
*
|
|
* @param period - time duration (unit ?)
|
|
* @example var filter = TimeFilter(100)
|
|
*/
|
|
export function TimeFilter(period:number):Policy;
|
|
|
|
/**
|
|
* Durability Policy
|
|
*/
|
|
export enum DurabilityKind {
|
|
Volatile = 0,
|
|
TransientLocal = 1,
|
|
Transient = 2,
|
|
Persistent = 3
|
|
}
|
|
|
|
/**
|
|
* Durability Qos Policy
|
|
*/
|
|
export class Durability implements Policy {
|
|
/**
|
|
* Volatile - Volatile durability policy
|
|
*/
|
|
static Volatile:any;
|
|
/**
|
|
* TransientLocal - TransientLocal durability policy
|
|
*/
|
|
static TransientLocal:any;
|
|
/**
|
|
* Transient - Transient durability policy
|
|
*/
|
|
static Transient:any;
|
|
/**
|
|
* Persistent - Persistent durability policy
|
|
*/
|
|
static Persistent:any;
|
|
}
|
|
|
|
|
|
interface EntityQos {
|
|
/**
|
|
* Creates any of the DDS entities quality of service, including DataReaderQos and DataWriterQos.
|
|
*
|
|
* @param policies - list of policies for the Qos entity
|
|
*/
|
|
new (...policies:Policy[]): EntityQos;
|
|
|
|
/**
|
|
* Adds the given policy to this instance.
|
|
* @param policy - the policy to add
|
|
* @return A new copy of this instance with the combined policies
|
|
*/
|
|
add (policy:Policy): EntityQos;
|
|
}
|
|
|
|
|
|
/**
|
|
* Topic quality of service object
|
|
*/
|
|
export var TopicQos:EntityQos;
|
|
/**
|
|
* DataReader quality of service object
|
|
*/
|
|
export var DataReaderQos:EntityQos;
|
|
|
|
/**
|
|
* DataWriter quality of service object
|
|
*/
|
|
export var DataWriterQos:EntityQos;
|
|
|
|
export class Topic {
|
|
/**
|
|
* Creates a `Topic` in the domain `did`, named `tname`, having `qos` Qos,
|
|
* for the type `ttype` whose registered name is `tregtype`
|
|
* @param {number} did - DDS domain ID
|
|
* @param {string} tname - topic name
|
|
* @param {TopicQos} qos - topic Qos
|
|
* @param {string} ttype - topic type. If not specified, a generic type is used.
|
|
* @param {string} tregtype - topic registered type name. If not specified, 'ttype' is used.
|
|
*/
|
|
constructor(did:number, tname:string, qos:EntityQos, ttype?:string, tregtype?:string);
|
|
|
|
/**
|
|
* Called when topic gets registered in the runtime
|
|
*/
|
|
onregistered():void;
|
|
|
|
/**
|
|
* Called when topic gets unregistered in the runtime
|
|
*/
|
|
onunregistered():void;
|
|
}
|
|
|
|
export class DataReader {
|
|
/**
|
|
* Creates a `DataReader` for a given topic and a specific in a specific DDS runtime.
|
|
*
|
|
* A `DataReader` allows to read data for a given topic with a specific QoS. A `DataReader`
|
|
* * goes through different states, it is intially disconnected and changes to the connected state
|
|
* when the underlying transport connection is successfully established with the server. At this point
|
|
* a `DataReader` can be explicitely closed or disconnected. A disconnection can happen as the result
|
|
* of a network failure or server failure. Disconnection and reconnections are managed by the runtime.
|
|
*
|
|
* @param runtime - DDS Runtime
|
|
* @param topic - DDS Topic
|
|
* @param qos - DataReader quality of service
|
|
*/
|
|
constructor(runtime:Runtime, topic:Topic, qos:EntityQos);
|
|
|
|
resetStats():void;
|
|
|
|
/**
|
|
* Attaches the listener `l` to this data reader and returns
|
|
* the id associated to the listener.
|
|
* @param l - listener code
|
|
* @returns listener handle
|
|
*/
|
|
addListener(l:(msg:any) => void):number;
|
|
|
|
/**
|
|
* removes a listener from this data reader.
|
|
* @param idx - listener id
|
|
*/
|
|
removeListener(idx:number):void;
|
|
|
|
/**
|
|
* closes the DataReader
|
|
*/
|
|
close():void;
|
|
}
|
|
|
|
export class DataWriter {
|
|
/**
|
|
* Creates a `DataWriter` for a given topic and a specific in a specific DDS runtime
|
|
*
|
|
* defines a DDS data writer. This type
|
|
* is used to write data for a specific topic with a given QoS.
|
|
* A `DataWriter` goes through different states, it is intially disconnected and changes to the connected
|
|
* state when the underlying transport connection is successfully established with the server.
|
|
* At this point a `DataWriter` can be explicitely closed or disconnected. A disconnection can happen
|
|
* as the result of a network failure or server failure. Disconnection and reconnections are managed by the
|
|
* runtime.
|
|
*
|
|
* @param runtime - DDS Runtime
|
|
* @param topic - DDS Topic
|
|
* @param qos - DataWriter quality of service
|
|
*/
|
|
constructor(runtime:Runtime, topic:Topic, qos:EntityQos);
|
|
|
|
/**
|
|
* Writes one or more samples.
|
|
* @param ds - data sample
|
|
*/
|
|
write(...ds:any[]):void;
|
|
|
|
/**
|
|
* Closes the DataWriter
|
|
*/
|
|
close():void;
|
|
}
|
|
|
|
|
|
export class DataCache {
|
|
/**
|
|
* Constructs a `DataCache` with a given `depth`. If the `cache` parameter
|
|
* is present, then the current cache is initialized with this parameter.
|
|
*
|
|
* Provides a way of storing and flexibly accessing the
|
|
* data received through a `DataReader`. A `DataCache` is organized as
|
|
* a map of queues. The depth of the queues is specified at construction
|
|
* time.
|
|
*
|
|
* @param depth - cache size
|
|
* @param cache - cache data structure
|
|
*/
|
|
constructor(depth:number, cache:any);
|
|
|
|
/**
|
|
* Register a listener to be notified whenever data which matches a predicate is written into the cache.
|
|
* If no predicate is provided then the listeners is always notified upon data inserion.
|
|
*
|
|
* @param l - listener function
|
|
* @param p - predicate
|
|
*/
|
|
addListener(l:(data:any) => void, p?:(data:any) => boolean):void;
|
|
|
|
/**
|
|
* Write the element `data` with key `k` into the cache.
|
|
*
|
|
* @param k - data key
|
|
* @param data - data value
|
|
* @returns the written data value
|
|
*/
|
|
write(k:any, data:any):any;
|
|
|
|
/**
|
|
* Same as forEach but applied, for each key, only to the first `n` samples of the cache
|
|
*
|
|
* @param f - the function to be applied
|
|
* @param n - samples set size
|
|
*/
|
|
forEachN(f:(data:any) => any, n:number):any[];
|
|
|
|
/**
|
|
* Execute the function `f` for each element of the cache.
|
|
*
|
|
* @memberof! dds.DataCache#
|
|
* @param f - the function to be applied
|
|
* @returns results of the function execution
|
|
*/
|
|
forEach(f:(data:any) => any):any[];
|
|
|
|
/**
|
|
* Returns a cache that is the result of applying `f` to each element of the cache.
|
|
*
|
|
* @param f - the function to be applied
|
|
* @returns A cache holding the results of the function execution
|
|
*/
|
|
map(f:(data:any) => any):DataCache;
|
|
|
|
/**
|
|
* Returns the list of elements in the cache that satisfy the predicate `f`.
|
|
*
|
|
* @param f - the predicate to be applied to filter the cache values
|
|
* @returns An array holding the filtered values
|
|
*/
|
|
filter(f:(data:any) => boolean):any[];
|
|
|
|
/**
|
|
* Returns the list of elements in the cache that doesn't satisfy the predicate `f`.
|
|
*
|
|
* @returns An array holding the filtered values
|
|
* @see DataCache#filter
|
|
*/
|
|
filterNot(f:(data:any) => boolean):any[];
|
|
|
|
/**
|
|
* Returns the values included in the cache as an array.
|
|
*
|
|
* @return All the cache values
|
|
*/
|
|
read():any[];
|
|
|
|
/**
|
|
* Returns the last value of the cache in an array.
|
|
*
|
|
* @return the last value of the cache
|
|
*/
|
|
readLast():any;
|
|
|
|
/**
|
|
* Returns all the values included in the cache as an array and empties the cache.
|
|
*
|
|
* @return All the cache values
|
|
*/
|
|
takeAll():any[];
|
|
|
|
/**
|
|
* Returns the `K`ith value of the cache as Monad, ie: `coffez.Some` if it exists, `coffez.None` if not.
|
|
*
|
|
* @return the 'k'th value
|
|
*/
|
|
take():any;
|
|
|
|
/**
|
|
* Takes elements from the cache up to when the predicate `f` is satisfied
|
|
*
|
|
* @param f - the predicate
|
|
* @return taken cache values
|
|
*/
|
|
takeWithFilter(f:(data:any) => boolean):any[];
|
|
|
|
/**
|
|
* Return `coffez.Some(v)` if there is an element in the cache corresponding to the
|
|
* key `k` otherwise it returns `coffez.None`.
|
|
*
|
|
* @param k - key
|
|
*/
|
|
get(k:any):any;
|
|
|
|
/**
|
|
* Return `coffez.Some(v)` if there is an element in the cache corresponding to the
|
|
* key `k` otherwise executes `f` and returns its result.
|
|
*
|
|
* @param k - key
|
|
* @param f - the function to apply
|
|
*/
|
|
getOrElse(k:any, f:(data:any)=> any):any;
|
|
|
|
/**
|
|
* folds the element of the cache using `z` as the `zero` element and
|
|
* `f` as the binary operator.
|
|
*
|
|
* @param z - initial value
|
|
* @param {function} f - reduce function
|
|
*/
|
|
fold(z:any, f:(data:any) => any):void;
|
|
|
|
/**
|
|
* clears the data cache
|
|
*/
|
|
clear():void;
|
|
|
|
}
|
|
|
|
interface Runtime {
|
|
/**
|
|
* Constructs a DDS Runtime object
|
|
*
|
|
* maintains the connection with the server, re-establish the connection
|
|
* if dropped and mediates the `DataReader` and `DataWriter` communication.
|
|
*/
|
|
new (): Runtime;
|
|
|
|
/**
|
|
* Connect the runtime to the server. If the runtime is already connected an exception is thrown
|
|
*
|
|
* @param srv - Vortex Web server WebSocket URL
|
|
* @param authToken - Authorization token
|
|
*/
|
|
connect(server:string, authToken?:string): void;
|
|
|
|
/**
|
|
* Disconnects, withouth closing, a `Runtime`. Notice that upon re-connection all existing
|
|
* subscriptions and publications will be re-restablished.
|
|
*/
|
|
disconnect(): void;
|
|
|
|
/**
|
|
* Registers the provided Topic.
|
|
*
|
|
* @param t - Topic to be registered
|
|
*/
|
|
registerTopic(t:Topic): void;
|
|
|
|
/**
|
|
* Function called when runtime is connected.
|
|
*
|
|
* @param e
|
|
*/
|
|
onconnect(e:any): void;
|
|
|
|
|
|
/**
|
|
* Function called when runtime is disconnected.
|
|
*
|
|
* @param e
|
|
*/
|
|
ondisconnect(e:any): void;
|
|
|
|
/**
|
|
* Closes the DDS runtime and as a consequence all the `DataReaders` and `DataWriters` that belong to this runtime.
|
|
*
|
|
*/
|
|
close(): void;
|
|
|
|
/**
|
|
* Checks whether the Runtime is connected.
|
|
* @return `true` if connected, `false` if not
|
|
*/
|
|
isConnected() : boolean;
|
|
|
|
/**
|
|
* Checks whether the Runtime is closed.
|
|
* @return `true` if connected, `false` if not
|
|
*/
|
|
isClosed() : boolean;
|
|
}
|
|
|
|
export var runtime:{
|
|
Runtime : Runtime;
|
|
};
|
|
|
|
export var VERSION:string;
|
|
}
|
|
|
|
/**
|
|
* Defines the core Vortex-Web-Client javascript library. It includes the JavaScript API for DDS. This API allows
|
|
* web applications to share data among them as well as with native DDS applications.
|
|
*/
|
|
declare var dds:typeof DDS;
|