Skip to content

pedia/dart-ice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

Ice Dart

Implement ZeroC Ice in pure Dart.

Worked client demo:

void main(List<String> args) async {
  final ich = CommunicatorHolder(args: args, configFile: 'bin/config.client');

  final o = ich.communicator.propertyToProxy("Hello.Proxy");
  assert(o.runtimeType == ObjectPrx);

  if (o != null) {
    final prx = checkedCast<HelloPrx>(o, HelloPrx.creator);
    if (prx != null) {
      assert(prx.runtimeType == HelloPrx);

      final typeId = '::Demo::Hello';
      prx.ice_isA(typeId);

      assert(true == await prx.ice_isAAsync(typeId));
      assert(true == await prx.ice_isAAsync('::Ice::Object'));
      assert(false == await prx.ice_isAAsync('not-exist'));

      prx.sayHello(0);

      await prx.sayHelloAsync(0);
    }
  }

  ich.communicator.shutdown();
}

TODO List

  • Object
  • Proxy
  • [] Server
  • slice
    • slice scanner
    • slice parser
    • slice2dart
    • [] unittest for cpp/test/.../*.ice of ice
  • [] Transport
    • Tcp
    • Udp
    • [] SSL
    • [] WebSocket
  • [] Features
    • [] Router
    • [] BatchMode
    • [] facet
  • [] External
    • [] Oberve and Metrix

Ice Protocol

Implement of Ice Protocol is split up as a standalone library ice.protocol.

Licence

Maybe later or donate.

About

Ice implement in Dart

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages