Middleware Project Team The Public Client API for

Middleware Project Team The Public Client API for Device-Oriented Middleware Communication The Middleware Project Team The Middleware Public Client API 2 -Oct-00 ()

Client API Design Overview • One generic Remote. Device class – one Remote. Device object per device instance – set/get, monitor. On/Off methods – no Context! • Constructor: Remote. Device(String dev. Name); • Set/Get methods: XXX = Int, Double, Object etc. • Monitoring methods: Mon. Token = monitor. On(Prop. Name, Cycle. Sel, Listener); monitor. Off(Mon. Token); • Property values: structures of primitives and arrays struct Profile { long time. Stamp; float[] values; } The Middleware Public Client API 2 -Oct-00 Middleware Project Team set. XXX(Prop. Name, Value, …); Value = get. XXX(Prop. Name, …); (2)

Set/Get Methods • Synchronous (“blocking”) get/set int get. Int(String prop. Name); void set. Int(String prop. Name, int value); • Asynchronous (“non-blocking”) get/set void get. Int(String prop. Name, Reply. Listener rl); • Cycle-dependent, asynchronous get/set • Filtered 1, cycle-dependent, asynchronous get/set void get. Int(String prop. Name, Cycle. Selector sel, Filter f, Reply. Listener rl) 1) server-side filtering of property data The Middleware Public Client API 2 -Oct-00 Middleware Project Team void get. Int(String prop. Name, Cycle. Selector sel, Reply. Listener rl) (3)

Monitor. On/Off Methods • Monitor a property on-change: Mon. Token monitor. On(String prop. Name, mon. Listener l); void monitor. Off(Mon. Token mt); • Monitor a property with Cycle. Selector: Mon. Token monitor. On(String prop. Name, Cycle. Selector cs, mon. Listener l); • Unsubscribe: Middleware Project Team void monitor. Off(Mon. Token tok); The Middleware Public Client API 2 -Oct-00 (4)

Type-specific, overloaded methods In Remote. Device class: • One group of methods per primitive type set. Int() set. Long() set. Float() set. Double() set. Byte() set. Char() set. Boolean() • One group of methods for Object types set. Object() can be used for anything, including Arrays and Data/Data. Entry – they are extracted and packed into Data/Data-Entry using Reflection The Middleware Public Client API 2 -Oct-00 Middleware Project Team • Complex data types are passed with set. Object() (5)
- Slides: 5