├── .clang-format ├── .clang-tidy ├── .devcontainer ├── Dockerfile ├── devcontainer.json └── rhel9 │ ├── Dockerfile │ └── devcontainer.json ├── .editorconfig ├── .github ├── actions │ ├── install-nightly-ice │ │ └── action.yml │ └── setup-xcode │ │ └── action.yml ├── assets │ └── ice-banner.svg └── workflows │ ├── ci.yml │ ├── cpp.yml │ ├── dotnet.yml │ ├── java.yml │ ├── python.yml │ └── swift.yml ├── .globalconfig ├── .markdownlint.json ├── .vscode ├── cspell.json ├── extensions.json └── settings.json ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── certs ├── README.md ├── ca.jks ├── ca.p12 ├── ca_cert.der ├── ca_cert.pem ├── ca_key.pem ├── client.jks ├── client.p12 ├── client_cert.pem ├── client_key.pem ├── server.jks ├── server.p12 ├── server_cert.pem └── server_key.pem ├── cpp ├── DataStorm │ ├── clock │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── Reader.cpp │ │ ├── Writer.cpp │ │ ├── config.reader │ │ └── config.writer │ ├── keyFilter │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── Reader.cpp │ │ ├── Writer.cpp │ │ ├── config.reader │ │ └── config.writer │ ├── minimal │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── Reader.cpp │ │ └── Writer.cpp │ ├── node │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── Reader.cpp │ │ ├── Writer.cpp │ │ ├── config.node │ │ ├── config.reader │ │ └── config.writer │ ├── sampleFilter │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── Reader.cpp │ │ ├── Writer.cpp │ │ ├── config.reader │ │ └── config.writer │ └── stock │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── Reader.cpp │ │ ├── Stock.ice │ │ ├── Writer.cpp │ │ ├── config.reader │ │ └── config.writer ├── Glacier2 │ ├── callback │ │ ├── AlarmClock.ice │ │ ├── CMakeLists.txt │ │ ├── Client.cpp │ │ ├── MockAlarmClock.cpp │ │ ├── MockAlarmClock.h │ │ ├── README.md │ │ ├── Server.cpp │ │ ├── SimpleWakeUpService.cpp │ │ ├── SimpleWakeUpService.h │ │ └── config.glacier2 │ └── greeter │ │ ├── CMakeLists.txt │ │ ├── Chatbot.cpp │ │ ├── Chatbot.h │ │ ├── Client.cpp │ │ ├── Greeter.ice │ │ ├── README.md │ │ ├── Server.cpp │ │ └── config.glacier2 ├── Ice │ ├── README.md │ ├── bidir │ │ ├── AlarmClock.ice │ │ ├── BidirWakeUpService.cpp │ │ ├── BidirWakeUpService.h │ │ ├── CMakeLists.txt │ │ ├── Client.cpp │ │ ├── MockAlarmClock.cpp │ │ ├── MockAlarmClock.h │ │ ├── README.md │ │ └── Server.cpp │ ├── callback │ │ ├── AlarmClock.ice │ │ ├── CMakeLists.txt │ │ ├── Client.cpp │ │ ├── MockAlarmClock.cpp │ │ ├── MockAlarmClock.h │ │ ├── README.md │ │ ├── Server.cpp │ │ ├── SimpleWakeUpService.cpp │ │ └── SimpleWakeUpService.h │ ├── cancellation │ │ ├── CMakeLists.txt │ │ ├── Chatbot.cpp │ │ ├── Chatbot.h │ │ ├── Client.cpp │ │ ├── Greeter.ice │ │ ├── README.md │ │ └── Server.cpp │ ├── config │ │ ├── CMakeLists.txt │ │ ├── Chatbot.cpp │ │ ├── Chatbot.h │ │ ├── Client.cpp │ │ ├── Greeter.ice │ │ ├── README.md │ │ ├── Server.cpp │ │ ├── config.client │ │ └── config.server │ ├── context │ │ ├── CMakeLists.txt │ │ ├── Chatbot.cpp │ │ ├── Chatbot.h │ │ ├── Client.cpp │ │ ├── Greeter.ice │ │ ├── README.md │ │ └── Server.cpp │ ├── customError │ │ ├── CMakeLists.txt │ │ ├── Chatbot.cpp │ │ ├── Chatbot.h │ │ ├── Client.cpp │ │ ├── Greeter.ice │ │ ├── README.md │ │ └── Server.cpp │ ├── filesystem │ │ ├── CMakeLists.txt │ │ ├── Client.cpp │ │ ├── Filesystem.ice │ │ ├── Memory.cpp │ │ ├── Memory.h │ │ ├── README.md │ │ └── Server.cpp │ ├── forwarder │ │ ├── CMakeLists.txt │ │ ├── Chatbot.cpp │ │ ├── Chatbot.h │ │ ├── Client.cpp │ │ ├── Forwarder.cpp │ │ ├── Forwarder.h │ │ ├── ForwardingServer.cpp │ │ ├── Greeter.ice │ │ ├── README.md │ │ └── Server.cpp │ ├── greeter │ │ ├── CMakeLists.txt │ │ ├── Chatbot.cpp │ │ ├── Chatbot.h │ │ ├── ChatbotAMD.cpp │ │ ├── ChatbotAMD.h │ │ ├── Client.cpp │ │ ├── Greeter.ice │ │ ├── GreeterAMD.ice │ │ ├── README.md │ │ ├── Server.cpp │ │ └── ServerAMD.cpp │ ├── middleware │ │ ├── AuthorizationMiddleware.cpp │ │ ├── AuthorizationMiddleware.h │ │ ├── CMakeLists.txt │ │ ├── Chatbot.cpp │ │ ├── Chatbot.h │ │ ├── Client.cpp │ │ ├── Greeter.ice │ │ ├── README.md │ │ └── Server.cpp │ ├── multicast │ │ ├── CMakeLists.txt │ │ ├── Client.cpp │ │ ├── Discovery.ice │ │ ├── Hello.ice │ │ ├── README.md │ │ ├── Server.cpp │ │ ├── config.client │ │ └── config.server │ ├── optional │ │ ├── CMakeLists.txt │ │ ├── Client1.cpp │ │ ├── Client2.cpp │ │ ├── ConsolePrinter1.cpp │ │ ├── ConsolePrinter1.h │ │ ├── ConsolePrinter2.cpp │ │ ├── ConsolePrinter2.h │ │ ├── README.md │ │ ├── Server1.cpp │ │ ├── Server2.cpp │ │ ├── WeatherStation1.ice │ │ └── WeatherStation2.ice │ └── secure │ │ ├── CMakeLists.txt │ │ ├── Chatbot.cpp │ │ ├── Chatbot.h │ │ ├── ClientOpenSSL.cpp │ │ ├── ClientRun.cpp │ │ ├── ClientRun.h │ │ ├── ClientSchannel.cpp │ │ ├── ClientSecureTransport.cpp │ │ ├── Greeter.ice │ │ ├── README.md │ │ ├── ServerOpenSSL.cpp │ │ ├── ServerRun.cpp │ │ ├── ServerRun.h │ │ ├── ServerSchannel.cpp │ │ ├── ServerSecureTransport.cpp │ │ ├── UtilSchannel.cpp │ │ ├── UtilSchannel.h │ │ ├── UtilSecureTransport.cpp │ │ ├── UtilSecureTransport.h │ │ └── keychain-access.png ├── IceBox │ └── greeter │ │ ├── CMakeLists.txt │ │ ├── Chatbot.cpp │ │ ├── Chatbot.h │ │ ├── Client.cpp │ │ ├── Greeter.ice │ │ ├── GreeterService.cpp │ │ ├── GreeterService.h │ │ └── README.md ├── IceDiscovery │ ├── greeter │ │ ├── CMakeLists.txt │ │ ├── Chatbot.cpp │ │ ├── Chatbot.h │ │ ├── Client.cpp │ │ ├── Greeter.ice │ │ ├── README.md │ │ └── Server.cpp │ └── replication │ │ ├── CMakeLists.txt │ │ ├── Chatbot.cpp │ │ ├── Chatbot.h │ │ ├── Client.cpp │ │ ├── Greeter.ice │ │ ├── README.md │ │ └── Server.cpp ├── IceGrid │ ├── allocate │ │ ├── CMakeLists.txt │ │ ├── Client.cpp │ │ ├── Hello.ice │ │ ├── HelloI.cpp │ │ ├── HelloI.h │ │ ├── README.md │ │ ├── Server.cpp │ │ ├── application-multiple.xml │ │ ├── application-single.xml │ │ ├── config.admin │ │ ├── config.client │ │ └── config.grid │ ├── customLocator │ │ ├── CMakeLists.txt │ │ ├── Client.cpp │ │ ├── Hello.ice │ │ ├── HelloI.cpp │ │ ├── HelloI.h │ │ ├── Locator.cpp │ │ ├── README.md │ │ ├── Server.cpp │ │ ├── application.xml │ │ ├── config.admin │ │ ├── config.client │ │ ├── config.grid │ │ └── config.locator │ ├── greeter │ │ ├── CMakeLists.txt │ │ ├── Chatbot.cpp │ │ ├── Chatbot.h │ │ ├── Client.cpp │ │ ├── Greeter.ice │ │ ├── README.md │ │ ├── Server.cpp │ │ ├── config.admin │ │ ├── config.node │ │ ├── config.registry │ │ ├── greeter-hall-with-replication.xml │ │ └── greeter-hall.xml │ ├── icebox │ │ ├── CMakeLists.txt │ │ ├── Chatbot.cpp │ │ ├── Chatbot.h │ │ ├── Client.cpp │ │ ├── Greeter.ice │ │ ├── GreeterService.cpp │ │ ├── GreeterService.h │ │ ├── README.md │ │ ├── config.admin │ │ ├── config.grid │ │ ├── config.node │ │ ├── config.registry │ │ └── greeter-hall.xml │ ├── locatorDiscovery │ │ ├── CMakeLists.txt │ │ ├── Client.cpp │ │ ├── Greeter.ice │ │ └── README.md │ ├── query │ │ ├── CMakeLists.txt │ │ ├── Chatbot.cpp │ │ ├── Chatbot.h │ │ ├── Client.cpp │ │ ├── Greeter.ice │ │ ├── README.md │ │ ├── Server.cpp │ │ ├── config.admin │ │ ├── config.node │ │ ├── config.registry │ │ └── greeter-hall.xml │ ├── replication │ │ ├── CMakeLists.txt │ │ ├── Client.cpp │ │ ├── Hello.ice │ │ ├── HelloI.cpp │ │ ├── HelloI.h │ │ ├── README.md │ │ ├── Server.cpp │ │ ├── application.xml │ │ ├── config.client │ │ ├── config.master │ │ ├── config.node1 │ │ ├── config.node2 │ │ ├── config.replica1 │ │ └── config.replica2 │ ├── secure │ │ ├── CMakeLists.txt │ │ ├── Client.cpp │ │ ├── Hello.ice │ │ ├── HelloI.cpp │ │ ├── HelloI.h │ │ ├── README.md │ │ ├── Server.cpp │ │ ├── application.xml │ │ ├── config.admin │ │ ├── config.client │ │ ├── config.glacier2 │ │ ├── config.master │ │ ├── config.node │ │ ├── config.slave │ │ └── makedemocerts.py │ └── sessionActivation │ │ ├── CMakeLists.txt │ │ ├── Client.cpp │ │ ├── Hello.ice │ │ ├── HelloI.cpp │ │ ├── HelloI.h │ │ ├── README.md │ │ ├── Server.cpp │ │ ├── application.xml │ │ ├── config.admin │ │ ├── config.client │ │ └── config.grid ├── IceStorm │ ├── counter │ │ ├── CMakeLists.txt │ │ ├── Client.cpp │ │ ├── Counter.ice │ │ ├── CounterI.cpp │ │ ├── CounterI.h │ │ ├── CounterObserverI.cpp │ │ ├── CounterObserverI.h │ │ ├── README.md │ │ ├── Server.cpp │ │ ├── config.admin │ │ ├── config.client │ │ ├── config.icebox │ │ ├── config.server │ │ └── config.service │ ├── replicated │ │ ├── CMakeLists.txt │ │ ├── Clock.ice │ │ ├── Publisher.cpp │ │ ├── README.md │ │ ├── Subscriber.cpp │ │ ├── application.xml │ │ ├── config.admin │ │ ├── config.grid │ │ ├── config.pub │ │ └── config.sub │ ├── replicated2 │ │ ├── CMakeLists.txt │ │ ├── Clock.ice │ │ ├── Publisher.cpp │ │ ├── README.md │ │ ├── Subscriber.cpp │ │ ├── config.admin │ │ ├── config.ib1 │ │ ├── config.ib2 │ │ ├── config.ib3 │ │ ├── config.pub │ │ ├── config.s1 │ │ ├── config.s2 │ │ ├── config.s3 │ │ └── config.sub │ └── weather │ │ ├── AtmosphericConditions.cpp │ │ ├── CMakeLists.txt │ │ ├── ConsolePrinter.cpp │ │ ├── ConsolePrinter.h │ │ ├── README.md │ │ ├── Sensor.cpp │ │ ├── Station.cpp │ │ ├── WeatherStation.ice │ │ └── config.icestorm ├── README.md ├── cmake │ └── common.cmake └── common │ ├── Env.h │ └── Time.h ├── csharp ├── Directory.Build.props ├── Glacier2 │ ├── Callback │ │ ├── Callback.sln │ │ ├── Client │ │ │ ├── Client.csproj │ │ │ ├── MockAlarmClock.cs │ │ │ └── Program.cs │ │ ├── README.md │ │ ├── Server │ │ │ ├── Program.cs │ │ │ ├── Server.csproj │ │ │ └── SimpleWakeUpService.cs │ │ ├── config.glacier2 │ │ └── slice │ │ │ └── AlarmClock.ice │ └── Greeter │ │ ├── Client │ │ ├── Client.csproj │ │ └── Program.cs │ │ ├── Greeter.sln │ │ ├── README.md │ │ ├── Server │ │ ├── Chatbot.cs │ │ ├── Program.cs │ │ └── Server.csproj │ │ ├── config.glacier2 │ │ └── slice │ │ └── Greeter.ice ├── Ice │ ├── Bidir │ │ ├── Bidir.sln │ │ ├── Client │ │ │ ├── Client.csproj │ │ │ ├── MockAlarmClock.cs │ │ │ └── Program.cs │ │ ├── README.md │ │ ├── Server │ │ │ ├── BidirWakeUpService.cs │ │ │ ├── Program.cs │ │ │ └── Server.csproj │ │ └── slice │ │ │ └── AlarmClock.ice │ ├── Callback │ │ ├── Callback.sln │ │ ├── Client │ │ │ ├── Client.csproj │ │ │ ├── MockAlarmClock.cs │ │ │ └── Program.cs │ │ ├── README.md │ │ ├── Server │ │ │ ├── Program.cs │ │ │ ├── Server.csproj │ │ │ └── SimpleWakeUpService.cs │ │ └── slice │ │ │ └── AlarmClock.ice │ ├── Cancellation │ │ ├── Cancellation.sln │ │ ├── Client │ │ │ ├── Client.csproj │ │ │ └── Program.cs │ │ ├── README.md │ │ ├── Server │ │ │ ├── Chatbot.cs │ │ │ ├── Program.cs │ │ │ └── Server.csproj │ │ └── slice │ │ │ └── Greeter.ice │ ├── Config │ │ ├── Client │ │ │ ├── Client.csproj │ │ │ ├── Program.cs │ │ │ └── config.client │ │ ├── Config.sln │ │ ├── README.md │ │ ├── Server │ │ │ ├── Chatbot.cs │ │ │ ├── Program.cs │ │ │ ├── Server.csproj │ │ │ └── config.server │ │ └── slice │ │ │ └── Greeter.ice │ ├── Context │ │ ├── Client │ │ │ ├── Client.csproj │ │ │ └── Program.cs │ │ ├── Context.sln │ │ ├── README.md │ │ ├── Server │ │ │ ├── Chatbot.cs │ │ │ ├── Program.cs │ │ │ └── Server.csproj │ │ └── slice │ │ │ └── Greeter.ice │ ├── CustomError │ │ ├── Client │ │ │ ├── Client.csproj │ │ │ └── Program.cs │ │ ├── CustomError.sln │ │ ├── README.md │ │ ├── Server │ │ │ ├── Chatbot.cs │ │ │ ├── Program.cs │ │ │ └── Server.csproj │ │ └── slice │ │ │ └── Greeter.ice │ ├── Filesystem │ │ ├── Client │ │ │ ├── Client.csproj │ │ │ └── Program.cs │ │ ├── Filesystem.sln │ │ ├── README.md │ │ ├── Server │ │ │ ├── MDirectory.cs │ │ │ ├── MFile.cs │ │ │ ├── Program.cs │ │ │ └── Server.csproj │ │ └── slice │ │ │ └── Filesystem.ice │ ├── Forwarder │ │ ├── Client │ │ │ ├── Client.csproj │ │ │ └── Program.cs │ │ ├── Forwarder.sln │ │ ├── ForwardingServer │ │ │ ├── Forwarder.cs │ │ │ ├── ForwardingServer.csproj │ │ │ └── Program.cs │ │ ├── README.md │ │ ├── Server │ │ │ ├── Chatbot.cs │ │ │ ├── Program.cs │ │ │ └── Server.csproj │ │ └── slice │ │ │ └── Greeter.ice │ ├── Greeter │ │ ├── Client │ │ │ ├── Client.csproj │ │ │ └── Program.cs │ │ ├── Greeter.sln │ │ ├── README.md │ │ ├── Server │ │ │ ├── Chatbot.cs │ │ │ ├── Program.cs │ │ │ └── Server.csproj │ │ ├── ServerAMD │ │ │ ├── Chatbot.cs │ │ │ ├── Program.cs │ │ │ └── ServerAMD.csproj │ │ └── slice │ │ │ ├── Greeter.ice │ │ │ └── GreeterAMD.ice │ ├── Middleware │ │ ├── Client │ │ │ ├── Client.csproj │ │ │ └── Program.cs │ │ ├── Middleware.sln │ │ ├── README.md │ │ ├── Server │ │ │ ├── AuthorizationMiddleware.cs │ │ │ ├── Chatbot.cs │ │ │ ├── Program.cs │ │ │ └── Server.csproj │ │ └── slice │ │ │ └── Greeter.ice │ ├── Optional │ │ ├── Client1 │ │ │ ├── Client1.csproj │ │ │ └── Program.cs │ │ ├── Client2 │ │ │ ├── Client2.csproj │ │ │ └── Program.cs │ │ ├── Optional.sln │ │ ├── README.md │ │ ├── Server1 │ │ │ ├── AtmosphericConditions.cs │ │ │ ├── ConsolePrinter.cs │ │ │ ├── Program.cs │ │ │ └── Server1.csproj │ │ ├── Server2 │ │ │ ├── AtmosphericConditions.cs │ │ │ ├── ConsolePrinter.cs │ │ │ ├── Program.cs │ │ │ └── Server2.csproj │ │ └── slice │ │ │ ├── WeatherStation1.ice │ │ │ └── WeatherStation2.ice │ └── Secure │ │ ├── Client │ │ ├── Client.csproj │ │ └── Program.cs │ │ ├── README.md │ │ ├── Secure.sln │ │ ├── Server │ │ ├── Chatbot.cs │ │ ├── Program.cs │ │ └── Server.csproj │ │ └── slice │ │ └── Greeter.ice ├── IceBox │ └── Greeter │ │ ├── Client │ │ ├── Client.csproj │ │ └── Program.cs │ │ ├── Greeter.sln │ │ ├── README.md │ │ ├── Service │ │ ├── Chatbot.cs │ │ ├── GreeterService.cs │ │ └── Service.csproj │ │ └── slice │ │ └── Greeter.ice ├── IceDiscovery │ ├── Greeter │ │ ├── Client │ │ │ ├── Client.csproj │ │ │ └── Program.cs │ │ ├── Greeter.sln │ │ ├── README.md │ │ ├── Server │ │ │ ├── Chatbot.cs │ │ │ ├── Program.cs │ │ │ └── Server.csproj │ │ └── slice │ │ │ └── Greeter.ice │ └── Replication │ │ ├── Client │ │ ├── Client.csproj │ │ └── Program.cs │ │ ├── README.md │ │ ├── Replication.sln │ │ ├── Server │ │ ├── Chatbot.cs │ │ ├── Program.cs │ │ └── Server.csproj │ │ └── slice │ │ └── Greeter.ice ├── IceGrid │ ├── Greeter │ │ ├── Client │ │ │ ├── Client.csproj │ │ │ └── Program.cs │ │ ├── Greeter.sln │ │ ├── README.md │ │ ├── Server │ │ │ ├── Chatbot.cs │ │ │ ├── Program.cs │ │ │ └── Server.csproj │ │ ├── config.admin │ │ ├── config.node │ │ ├── config.registry │ │ ├── greeter-hall-with-replication.xml │ │ ├── greeter-hall.xml │ │ └── slice │ │ │ └── Greeter.ice │ ├── IceBox │ │ ├── Client │ │ │ ├── Client.csproj │ │ │ └── Program.cs │ │ ├── IceBox.sln │ │ ├── README.md │ │ ├── Service │ │ │ ├── Chatbot.cs │ │ │ ├── GreeterService.cs │ │ │ └── Service.csproj │ │ ├── config.admin │ │ ├── config.node │ │ ├── config.registry │ │ ├── greeter-hall.xml │ │ └── slice │ │ │ └── Greeter.ice │ ├── LocatorDiscovery │ │ ├── Client │ │ │ ├── Client.csproj │ │ │ └── Program.cs │ │ ├── LocatorDiscovery.sln │ │ └── README.md │ └── Query │ │ ├── Client │ │ ├── Client.csproj │ │ └── Program.cs │ │ ├── Query.sln │ │ ├── README.md │ │ ├── Server │ │ ├── Chatbot.cs │ │ ├── Program.cs │ │ └── Server.csproj │ │ ├── config.admin │ │ ├── config.node │ │ ├── config.registry │ │ ├── greeter-hall.xml │ │ └── slice │ │ └── Greeter.ice ├── IceStorm │ └── Weather │ │ ├── README.md │ │ ├── Sensor │ │ ├── Program.cs │ │ └── Sensor.csproj │ │ ├── Station │ │ ├── AtmosphericConditions.cs │ │ ├── ConsolePrinter.cs │ │ ├── Program.cs │ │ └── Station.csproj │ │ ├── Weather.sln │ │ ├── config.icestorm │ │ └── slice │ │ └── WeatherStation.ice ├── README.md └── nuget.config ├── java ├── Glacier2 │ └── greeter │ │ ├── README.md │ │ ├── client │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── com │ │ │ └── example │ │ │ └── glacier2 │ │ │ └── greeter │ │ │ └── client │ │ │ └── Client.java │ │ ├── config.glacier2 │ │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ ├── server │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── com │ │ │ └── example │ │ │ └── glacier2 │ │ │ └── greeter │ │ │ └── server │ │ │ ├── Chatbot.java │ │ │ └── Server.java │ │ ├── settings.gradle.kts │ │ └── slice │ │ └── Greeter.ice ├── Ice │ ├── android-greeter │ │ ├── README.md │ │ ├── app │ │ │ ├── build.gradle.kts │ │ │ ├── proguard-rules.pro │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── example │ │ │ │ │ └── ice │ │ │ │ │ └── androidgreeter │ │ │ │ │ ├── App.kt │ │ │ │ │ └── MainActivity.kt │ │ │ │ ├── res │ │ │ │ ├── drawable │ │ │ │ │ ├── ic_launcher_background.xml │ │ │ │ │ └── ic_launcher_foreground.xml │ │ │ │ ├── layout │ │ │ │ │ └── activity_main.xml │ │ │ │ ├── mipmap-anydpi │ │ │ │ │ ├── ic_launcher.xml │ │ │ │ │ └── ic_launcher_round.xml │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ ├── ic_launcher.webp │ │ │ │ │ └── ic_launcher_round.webp │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ ├── ic_launcher.webp │ │ │ │ │ └── ic_launcher_round.webp │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ ├── ic_launcher.webp │ │ │ │ │ └── ic_launcher_round.webp │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ ├── ic_launcher.webp │ │ │ │ │ └── ic_launcher_round.webp │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ │ ├── ic_launcher.webp │ │ │ │ │ └── ic_launcher_round.webp │ │ │ │ ├── values-night │ │ │ │ │ └── themes.xml │ │ │ │ ├── values │ │ │ │ │ ├── colors.xml │ │ │ │ │ ├── strings.xml │ │ │ │ │ └── themes.xml │ │ │ │ └── xml │ │ │ │ │ ├── backup_rules.xml │ │ │ │ │ └── data_extraction_rules.xml │ │ │ │ └── slice │ │ │ │ └── Greeter.ice │ │ ├── build.gradle.kts │ │ ├── gradle.properties │ │ ├── gradle │ │ │ ├── libs.versions.toml │ │ │ └── wrapper │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ └── settings.gradle.kts │ ├── cancellation │ │ ├── README.md │ │ ├── client │ │ │ ├── build.gradle.kts │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── ice │ │ │ │ └── cancellation │ │ │ │ └── client │ │ │ │ └── Client.java │ │ ├── gradle │ │ │ └── wrapper │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ ├── server │ │ │ ├── build.gradle.kts │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── ice │ │ │ │ └── cancellation │ │ │ │ └── server │ │ │ │ ├── Chatbot.java │ │ │ │ └── Server.java │ │ ├── settings.gradle.kts │ │ └── slice │ │ │ └── Greeter.ice │ ├── config │ │ ├── README.md │ │ ├── client │ │ │ ├── build.gradle.kts │ │ │ ├── config.client │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── ice │ │ │ │ └── config │ │ │ │ └── client │ │ │ │ └── Client.java │ │ ├── gradle │ │ │ └── wrapper │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ ├── server │ │ │ ├── build.gradle.kts │ │ │ ├── config.server │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── ice │ │ │ │ └── config │ │ │ │ └── server │ │ │ │ ├── Chatbot.java │ │ │ │ └── Server.java │ │ ├── settings.gradle.kts │ │ └── slice │ │ │ └── Greeter.ice │ ├── context │ │ ├── README.md │ │ ├── client │ │ │ ├── build.gradle.kts │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── ice │ │ │ │ └── context │ │ │ │ └── client │ │ │ │ └── Client.java │ │ ├── gradle │ │ │ └── wrapper │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ ├── server │ │ │ ├── build.gradle.kts │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── ice │ │ │ │ └── context │ │ │ │ └── server │ │ │ │ ├── Chatbot.java │ │ │ │ └── Server.java │ │ ├── settings.gradle.kts │ │ └── slice │ │ │ └── Greeter.ice │ ├── customError │ │ ├── README.md │ │ ├── client │ │ │ ├── build.gradle.kts │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── ice │ │ │ │ └── customerror │ │ │ │ └── client │ │ │ │ └── Client.java │ │ ├── gradle │ │ │ └── wrapper │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ ├── server │ │ │ ├── build.gradle.kts │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── ice │ │ │ │ └── customerror │ │ │ │ └── server │ │ │ │ ├── Chatbot.java │ │ │ │ └── Server.java │ │ ├── settings.gradle.kts │ │ └── slice │ │ │ └── Greeter.ice │ ├── forwarder │ │ ├── README.md │ │ ├── client │ │ │ ├── build.gradle.kts │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── ice │ │ │ │ └── forwarder │ │ │ │ └── client │ │ │ │ └── Client.java │ │ ├── forwardingserver │ │ │ ├── build.gradle.kts │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── ice │ │ │ │ └── forwarder │ │ │ │ └── forwardingserver │ │ │ │ ├── Forwarder.java │ │ │ │ └── Server.java │ │ ├── gradle │ │ │ └── wrapper │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ ├── server │ │ │ ├── build.gradle.kts │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── ice │ │ │ │ └── forwarder │ │ │ │ └── server │ │ │ │ ├── Chatbot.java │ │ │ │ └── Server.java │ │ ├── settings.gradle.kts │ │ └── slice │ │ │ └── Greeter.ice │ ├── greeter │ │ ├── README.md │ │ ├── client │ │ │ ├── build.gradle.kts │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── ice │ │ │ │ └── greeter │ │ │ │ └── client │ │ │ │ └── Client.java │ │ ├── gradle │ │ │ └── wrapper │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ ├── server │ │ │ ├── build.gradle.kts │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── ice │ │ │ │ └── greeter │ │ │ │ └── server │ │ │ │ ├── Chatbot.java │ │ │ │ └── Server.java │ │ ├── serveramd │ │ │ ├── build.gradle.kts │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── ice │ │ │ │ └── greeter │ │ │ │ └── serveramd │ │ │ │ ├── Chatbot.java │ │ │ │ └── Server.java │ │ ├── settings.gradle.kts │ │ └── slice │ │ │ ├── Greeter.ice │ │ │ └── GreeterAMD.ice │ ├── middleware │ │ ├── README.md │ │ ├── client │ │ │ ├── build.gradle.kts │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── ice │ │ │ │ └── middleware │ │ │ │ └── client │ │ │ │ └── Client.java │ │ ├── gradle │ │ │ └── wrapper │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ ├── server │ │ │ ├── build.gradle.kts │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── ice │ │ │ │ └── middleware │ │ │ │ └── server │ │ │ │ ├── AuthorizationMiddleware.java │ │ │ │ ├── Chatbot.java │ │ │ │ └── Server.java │ │ ├── settings.gradle.kts │ │ └── slice │ │ │ └── Greeter.ice │ └── secure │ │ ├── README.md │ │ ├── client │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── com │ │ │ └── example │ │ │ └── ice │ │ │ └── secure │ │ │ └── client │ │ │ └── Client.java │ │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ ├── server │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── com │ │ │ └── example │ │ │ └── ice │ │ │ └── secure │ │ │ └── server │ │ │ ├── Chatbot.java │ │ │ └── Server.java │ │ ├── settings.gradle.kts │ │ └── slice │ │ └── Greeter.ice ├── build-logic │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── zeroc-linting.gradle.kts └── config │ ├── checkstyle │ ├── checkstyle.xml │ └── suppressions.xml │ └── rewrite.yml ├── js ├── .editorconfig ├── .prettierignore ├── .prettierrc ├── Glacier2 │ └── callback │ │ ├── .npmrc │ │ ├── AlarmClock.ice │ │ ├── MockAlarmClock.ts │ │ ├── README.md │ │ ├── client.ts │ │ ├── config.glacier2 │ │ ├── package.json │ │ ├── timeUtil.ts │ │ └── tsconfig.json ├── Ice │ ├── bidir │ │ ├── .npmrc │ │ ├── AlarmClock.ice │ │ ├── MockAlarmClock.ts │ │ ├── README.md │ │ ├── client.ts │ │ ├── package.json │ │ ├── timeUtil.ts │ │ └── tsconfig.json │ ├── cancellation │ │ ├── .npmrc │ │ ├── Greeter.ice │ │ ├── README.md │ │ ├── client.ts │ │ ├── package.json │ │ └── tsconfig.json │ ├── context │ │ ├── .npmrc │ │ ├── Greeter.ice │ │ ├── README.md │ │ ├── client.ts │ │ ├── package.json │ │ └── tsconfig.json │ ├── fileSystem │ │ ├── .npmrc │ │ ├── Filesystem.ice │ │ ├── README.md │ │ ├── client.ts │ │ ├── package.json │ │ └── tsconfig.json │ └── greeter │ │ ├── .npmrc │ │ ├── Greeter.ice │ │ ├── README.md │ │ ├── client.ts │ │ ├── package.json │ │ └── tsconfig.json ├── IceStorm │ └── weather │ │ ├── .npmrc │ │ ├── README.md │ │ ├── WeatherStation.ice │ │ ├── package.json │ │ ├── sensor.ts │ │ └── tsconfig.json └── README.md ├── matlab ├── Glacier2 │ └── greeter │ │ ├── Greeter.ice │ │ ├── README.md │ │ └── client.m ├── Ice │ ├── cancellation │ │ ├── Greeter.ice │ │ ├── README.md │ │ └── client.m │ ├── config │ │ ├── Greeter.ice │ │ ├── README.md │ │ ├── client.m │ │ └── config.client │ ├── context │ │ ├── Greeter.ice │ │ ├── README.md │ │ └── client.m │ ├── customError │ │ ├── Greeter.ice │ │ ├── README.md │ │ └── client.m │ ├── filesystem │ │ ├── Filesystem.ice │ │ ├── README.md │ │ └── client.m │ ├── greeter │ │ ├── Greeter.ice │ │ ├── README.md │ │ └── client.m │ ├── matrix │ │ ├── Matrix.ice │ │ ├── README.md │ │ ├── client.m │ │ └── config.client │ └── optional │ │ ├── README.md │ │ ├── client1 │ │ ├── WeatherStation.ice │ │ └── client.m │ │ └── client2 │ │ ├── WeatherStation.ice │ │ └── client.m ├── IceDiscovery │ └── greeter │ │ ├── Greeter.ice │ │ ├── README.md │ │ └── client.m ├── IceGrid │ ├── greeter │ │ ├── Greeter.ice │ │ ├── README.md │ │ └── client.m │ └── locatorDiscovery │ │ ├── Greeter.ice │ │ ├── README.md │ │ └── client.m ├── IceStorm │ └── weather │ │ ├── README.md │ │ ├── WeatherStation.ice │ │ └── sensor.m └── README.md ├── php ├── Glacier2 │ └── greeter │ │ ├── Client.php │ │ ├── Greeter.ice │ │ └── README.md ├── Ice │ ├── config │ │ ├── Client.php │ │ ├── Greeter.ice │ │ ├── README.md │ │ └── config.client │ ├── context │ │ ├── Client.php │ │ ├── Greeter.ice │ │ └── README.md │ ├── customError │ │ ├── Client.php │ │ ├── Greeter.ice │ │ └── README.md │ ├── filesystem │ │ ├── Client.php │ │ ├── Filesystem.ice │ │ └── README.md │ ├── greeter │ │ ├── Client.php │ │ ├── Greeter.ice │ │ └── README.md │ ├── invocationTimeout │ │ ├── Client.php │ │ ├── Greeter.ice │ │ └── README.md │ ├── optional │ │ ├── README.md │ │ ├── client1 │ │ │ ├── Client.php │ │ │ └── WeatherStation.ice │ │ └── client2 │ │ │ ├── Client.php │ │ │ └── WeatherStation.ice │ └── registerCommunicator │ │ ├── Dockerfile │ │ ├── Greeter.ice │ │ ├── README.md │ │ ├── docker-compose.yml │ │ ├── entrypoint.sh │ │ ├── nginx.conf │ │ └── web │ │ ├── Client.php │ │ └── index.html ├── IceDiscovery │ └── greeter │ │ ├── Client.php │ │ ├── Greeter.ice │ │ └── README.md ├── IceGrid │ ├── greeter │ │ ├── Client.php │ │ ├── Greeter.ice │ │ └── README.md │ └── locatorDiscovery │ │ ├── Client.php │ │ ├── Greeter.ice │ │ └── README.md ├── IceStorm │ └── weather │ │ ├── README.md │ │ ├── Sensor.php │ │ └── WeatherStation.ice └── README.md ├── python ├── Glacier2 │ ├── callback │ │ ├── README.md │ │ ├── client │ │ │ ├── main.py │ │ │ ├── mock_alarm_clock.py │ │ │ └── requirements.txt │ │ ├── config.glacier2 │ │ ├── server │ │ │ ├── main.py │ │ │ ├── requirements.txt │ │ │ └── simple_wake_up_service.py │ │ └── slice │ │ │ └── AlarmClock.ice │ └── greeter │ │ ├── README.md │ │ ├── client │ │ ├── main.py │ │ └── requirements.txt │ │ ├── config.glacier2 │ │ ├── server │ │ ├── chatbot.py │ │ ├── main.py │ │ └── requirements.txt │ │ └── slice │ │ └── Greeter.ice ├── Ice │ ├── bidir │ │ ├── README.md │ │ ├── client │ │ │ ├── main.py │ │ │ ├── mock_alarm_clock.py │ │ │ └── requirements.txt │ │ ├── server │ │ │ ├── bidir_wake_up_service.py │ │ │ ├── main.py │ │ │ └── requirements.txt │ │ └── slice │ │ │ └── AlarmClock.ice │ ├── callback │ │ ├── README.md │ │ ├── client │ │ │ ├── main.py │ │ │ ├── mock_alarm_clock.py │ │ │ └── requirements.txt │ │ ├── server │ │ │ ├── main.py │ │ │ ├── requirements.txt │ │ │ └── simple_wake_up_service.py │ │ └── slice │ │ │ └── AlarmClock.ice │ ├── config │ │ ├── README.md │ │ ├── client │ │ │ ├── config.client │ │ │ ├── main.py │ │ │ └── requirements.txt │ │ ├── server │ │ │ ├── chatbot.py │ │ │ ├── config.server │ │ │ ├── main.py │ │ │ └── requirements.txt │ │ └── slice │ │ │ └── Greeter.ice │ ├── context │ │ ├── README.md │ │ ├── client │ │ │ ├── main.py │ │ │ └── requirements.txt │ │ ├── server │ │ │ ├── chatbot.py │ │ │ ├── main.py │ │ │ └── requirements.txt │ │ └── slice │ │ │ └── Greeter.ice │ ├── filesystem │ │ ├── README.md │ │ ├── client │ │ │ ├── main.py │ │ │ └── requirements.txt │ │ ├── server │ │ │ ├── m_directory.py │ │ │ ├── m_file.py │ │ │ ├── m_node.py │ │ │ ├── main.py │ │ │ └── requirements.txt │ │ └── slice │ │ │ └── Filesystem.ice │ ├── greeter │ │ ├── README.md │ │ ├── client │ │ │ ├── main.py │ │ │ └── requirements.txt │ │ ├── server │ │ │ ├── chatbot.py │ │ │ ├── main.py │ │ │ └── requirements.txt │ │ ├── server_asyncio │ │ │ ├── chatbot.py │ │ │ ├── main.py │ │ │ └── requirements.txt │ │ └── slice │ │ │ └── Greeter.ice │ ├── invocation_timeout │ │ ├── README.md │ │ ├── client │ │ │ ├── main.py │ │ │ └── requirements.txt │ │ ├── server │ │ │ ├── chatbot.py │ │ │ ├── main.py │ │ │ └── requirements.txt │ │ └── slice │ │ │ └── Greeter.ice │ └── optional │ │ ├── README.md │ │ ├── client1 │ │ ├── main.py │ │ └── requirements.txt │ │ ├── client2 │ │ ├── main.py │ │ └── requirements.txt │ │ ├── server1 │ │ ├── console_printer.py │ │ ├── main.py │ │ └── requirements.txt │ │ ├── server2 │ │ ├── console_printer.py │ │ ├── main.py │ │ └── requirements.txt │ │ └── slice │ │ ├── WeatherStation1.ice │ │ └── WeatherStation2.ice ├── IceDiscovery │ └── greeter │ │ ├── README.md │ │ ├── client │ │ ├── main.py │ │ └── requirements.txt │ │ ├── server │ │ ├── chatbot.py │ │ ├── main.py │ │ └── requirements.txt │ │ └── slice │ │ └── Greeter.ice ├── IceGrid │ └── greeter │ │ ├── README.md │ │ ├── client │ │ ├── main.py │ │ └── requirements.txt │ │ ├── config.admin │ │ ├── config.node │ │ ├── config.registry │ │ ├── greeter-hall-with-replication.xml │ │ ├── greeter-hall.xml │ │ ├── server │ │ ├── chatbot.py │ │ ├── main.py │ │ └── requirements.txt │ │ └── slice │ │ └── Greeter.ice ├── IceStorm │ └── weather │ │ ├── README.md │ │ ├── config.icestorm │ │ ├── sensor │ │ ├── main.py │ │ └── requirements.txt │ │ ├── slice │ │ └── WeatherStation.ice │ │ └── station │ │ ├── console_printer.py │ │ ├── main.py │ │ └── requirements.txt ├── common │ ├── common │ │ ├── __init__.py │ │ └── time.py │ └── pyproject.toml └── tox.ini ├── ruby ├── Glacier2 │ └── greeter │ │ ├── Greeter.ice │ │ ├── README.md │ │ └── client.rb ├── Ice │ ├── config │ │ ├── Greeter.ice │ │ ├── README.md │ │ ├── client.rb │ │ └── config.client │ ├── context │ │ ├── Greeter.ice │ │ ├── README.md │ │ └── client.rb │ ├── customError │ │ ├── Greeter.ice │ │ ├── README.md │ │ └── client.rb │ ├── filesystem │ │ ├── Filesystem.ice │ │ ├── README.md │ │ └── client.rb │ ├── greeter │ │ ├── Greeter.ice │ │ ├── README.md │ │ └── client.rb │ ├── invocationTimeout │ │ ├── Greeter.ice │ │ ├── README.md │ │ └── client.rb │ ├── latency │ │ ├── Latency.ice │ │ ├── README.md │ │ ├── client.rb │ │ └── config.client │ └── optional │ │ ├── Contact.ice │ │ ├── README.md │ │ ├── client.rb │ │ └── config.client ├── IceDiscovery │ └── greeter │ │ ├── Greeter.ice │ │ ├── README.md │ │ └── client.rb ├── IceGrid │ ├── greeter │ │ ├── Greeter.ice │ │ ├── README.md │ │ └── client.rb │ └── locatorDiscovery │ │ ├── Greeter.ice │ │ ├── README.md │ │ └── client.rb ├── IceStorm │ └── weather │ │ ├── README.md │ │ ├── WeatherStation.ice │ │ └── sensor.rb └── README.md ├── stylecop.json ├── swift ├── .swift-format.json ├── .swift-version ├── Glacier2 │ ├── callback │ │ ├── Package.swift │ │ ├── README.md │ │ ├── Sources │ │ │ ├── Client │ │ │ │ ├── MockAlarmClock.swift │ │ │ │ ├── main.swift │ │ │ │ └── slice-plugin.json │ │ │ └── Server │ │ │ │ ├── SimpleWakeUpService.swift │ │ │ │ ├── main.swift │ │ │ │ └── slice-plugin.json │ │ ├── config.glacier2 │ │ └── slice │ │ │ └── AlarmClock.ice │ └── greeter │ │ ├── Package.swift │ │ ├── README.md │ │ ├── Sources │ │ ├── Client │ │ │ ├── main.swift │ │ │ └── slice-plugin.json │ │ └── Server │ │ │ ├── Chatbot.swift │ │ │ ├── main.swift │ │ │ └── slice-plugin.json │ │ ├── config.glacier2 │ │ └── slice │ │ └── Greeter.ice ├── Ice │ ├── bidir │ │ ├── Package.swift │ │ ├── README.md │ │ ├── Sources │ │ │ ├── Client │ │ │ │ ├── MockAlarmClock.swift │ │ │ │ ├── main.swift │ │ │ │ └── slice-plugin.json │ │ │ └── Server │ │ │ │ ├── BidirWakeUpService.swift │ │ │ │ ├── main.swift │ │ │ │ └── slice-plugin.json │ │ └── slice │ │ │ └── AlarmClock.ice │ ├── callback │ │ ├── Package.swift │ │ ├── README.md │ │ ├── Sources │ │ │ ├── Client │ │ │ │ ├── MockAlarmClock.swift │ │ │ │ ├── main.swift │ │ │ │ └── slice-plugin.json │ │ │ └── Server │ │ │ │ ├── SimpleWakeUpService.swift │ │ │ │ ├── main.swift │ │ │ │ └── slice-plugin.json │ │ └── slice │ │ │ └── AlarmClock.ice │ ├── config │ │ ├── Package.swift │ │ ├── README.md │ │ ├── Sources │ │ │ ├── Client │ │ │ │ ├── main.swift │ │ │ │ └── slice-plugin.json │ │ │ └── Server │ │ │ │ ├── Chatbot.swift │ │ │ │ ├── main.swift │ │ │ │ └── slice-plugin.json │ │ ├── config.client │ │ ├── config.server │ │ └── slice │ │ │ └── Greeter.ice │ ├── context │ │ ├── Package.swift │ │ ├── README.md │ │ ├── Sources │ │ │ ├── Client │ │ │ │ ├── main.swift │ │ │ │ └── slice-plugin.json │ │ │ └── Server │ │ │ │ ├── Chatbot.swift │ │ │ │ ├── main.swift │ │ │ │ └── slice-plugin.json │ │ └── slice │ │ │ └── Greeter.ice │ ├── customError │ │ ├── Package.swift │ │ ├── README.md │ │ ├── Sources │ │ │ ├── Client │ │ │ │ ├── main.swift │ │ │ │ └── slice-plugin.json │ │ │ └── Server │ │ │ │ ├── Chatbot.swift │ │ │ │ ├── main.swift │ │ │ │ └── slice-plugin.json │ │ └── slice │ │ │ └── Greeter.ice │ ├── filesystem │ │ ├── Package.swift │ │ ├── README.md │ │ ├── Sources │ │ │ ├── Client │ │ │ │ ├── main.swift │ │ │ │ └── slice-plugin.json │ │ │ └── Server │ │ │ │ ├── MDirectory.swift │ │ │ │ ├── MFile.swift │ │ │ │ ├── MNode.swift │ │ │ │ ├── main.swift │ │ │ │ └── slice-plugin.json │ │ └── slice │ │ │ └── Filesystem.ice │ ├── forwarder │ │ ├── Package.swift │ │ ├── README.md │ │ ├── Sources │ │ │ ├── Client │ │ │ │ ├── main.swift │ │ │ │ └── slice-plugin.json │ │ │ ├── ForwardingServer │ │ │ │ ├── Forwarder.swift │ │ │ │ └── main.swift │ │ │ └── Server │ │ │ │ ├── Chatbot.swift │ │ │ │ ├── main.swift │ │ │ │ └── slice-plugin.json │ │ └── slice │ │ │ └── Greeter.ice │ ├── greeter │ │ ├── Package.swift │ │ ├── README.md │ │ ├── Sources │ │ │ ├── Client │ │ │ │ ├── main.swift │ │ │ │ └── slice-plugin.json │ │ │ ├── Server │ │ │ │ ├── Chatbot.swift │ │ │ │ ├── main.swift │ │ │ │ └── slice-plugin.json │ │ │ └── ServerAMD │ │ │ │ ├── Chatbot.swift │ │ │ │ ├── main.swift │ │ │ │ └── slice-plugin.json │ │ └── slice │ │ │ └── Greeter.ice │ ├── helloUI │ │ ├── Client.swift │ │ ├── Hello.ice │ │ ├── HelloApp.swift │ │ ├── Images.xcassets │ │ │ ├── AccentColor.colorset │ │ │ │ └── Contents.json │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ ├── Icon.png │ │ │ │ ├── icon_20pt@2x.png │ │ │ │ ├── icon_20pt@3x.png │ │ │ │ ├── icon_29pt-1.png │ │ │ │ ├── icon_29pt.png │ │ │ │ ├── icon_29pt@2x-1.png │ │ │ │ ├── icon_29pt@2x.png │ │ │ │ ├── icon_29pt@3x.png │ │ │ │ ├── icon_40pt.png │ │ │ │ ├── icon_40pt@2x-1.png │ │ │ │ ├── icon_40pt@2x.png │ │ │ │ ├── icon_40pt@3x.png │ │ │ │ ├── icon_60pt@2x.png │ │ │ │ ├── icon_60pt@3x.png │ │ │ │ ├── icon_76pt.png │ │ │ │ ├── icon_76pt@2x.png │ │ │ │ └── icon_83.5@2x.png │ │ │ ├── Contents.json │ │ │ └── LaunchScreenBackground.colorset │ │ │ │ └── Contents.json │ │ ├── Info.plist │ │ ├── ProxySettings.swift │ │ ├── README.md │ │ └── views │ │ │ ├── ButtonView.swift │ │ │ ├── FormView.swift │ │ │ ├── ProxySettingsView.swift │ │ │ └── StatusView.swift │ ├── invocationTimeout │ │ ├── Package.swift │ │ ├── README.md │ │ ├── Sources │ │ │ ├── Client │ │ │ │ ├── main.swift │ │ │ │ └── slice-plugin.json │ │ │ └── Server │ │ │ │ ├── Chatbot.swift │ │ │ │ ├── main.swift │ │ │ │ └── slice-plugin.json │ │ └── slice │ │ │ └── Greeter.ice │ ├── middleware │ │ ├── Package.swift │ │ ├── README.md │ │ ├── Sources │ │ │ ├── Client │ │ │ │ ├── main.swift │ │ │ │ └── slice-plugin.json │ │ │ └── Server │ │ │ │ ├── AuthorizationMiddleware.swift │ │ │ │ ├── Chatbot.swift │ │ │ │ ├── main.swift │ │ │ │ └── slice-plugin.json │ │ └── slice │ │ │ └── Greeter.ice │ └── optional │ │ ├── Package.swift │ │ ├── README.md │ │ ├── Sources │ │ ├── Client1 │ │ │ ├── main.swift │ │ │ └── slice-plugin.json │ │ ├── Client2 │ │ │ ├── main.swift │ │ │ └── slice-plugin.json │ │ ├── Server1 │ │ │ ├── AtmosphericConditions.swift │ │ │ ├── ConsolePrinter.swift │ │ │ ├── main.swift │ │ │ └── slice-plugin.json │ │ └── Server2 │ │ │ ├── AtmosphericConditions.swift │ │ │ ├── ConsolePrinter.swift │ │ │ ├── main.swift │ │ │ └── slice-plugin.json │ │ └── slice │ │ ├── WeatherStation1.ice │ │ └── WeatherStation2.ice ├── IceDiscovery │ ├── greeter │ │ ├── Package.swift │ │ ├── README.md │ │ ├── Sources │ │ │ ├── Client │ │ │ │ ├── main.swift │ │ │ │ └── slice-plugin.json │ │ │ └── Server │ │ │ │ ├── Chatbot.swift │ │ │ │ ├── main.swift │ │ │ │ └── slice-plugin.json │ │ └── slice │ │ │ └── Greeter.ice │ └── replication │ │ ├── Package.swift │ │ ├── README.md │ │ ├── Sources │ │ ├── Client │ │ │ ├── main.swift │ │ │ └── slice-plugin.json │ │ └── Server │ │ │ ├── Chatbot.swift │ │ │ ├── main.swift │ │ │ └── slice-plugin.json │ │ └── slice │ │ └── Greeter.ice ├── IceGrid │ ├── greeter │ │ ├── Package.swift │ │ ├── README.md │ │ ├── Sources │ │ │ ├── Client │ │ │ │ ├── main.swift │ │ │ │ └── slice-plugin.json │ │ │ └── Server │ │ │ │ ├── Chatbot.swift │ │ │ │ ├── main.swift │ │ │ │ └── slice-plugin.json │ │ ├── config.admin │ │ ├── config.node │ │ ├── config.registry │ │ ├── greeter-hall-with-replication.xml │ │ ├── greeter-hall.xml │ │ └── slice │ │ │ └── Greeter.ice │ ├── locatorDiscovery │ │ ├── Package.swift │ │ ├── README.md │ │ ├── Sources │ │ │ └── Client │ │ │ │ ├── main.swift │ │ │ │ └── slice-plugin.json │ │ └── slice │ │ │ └── Greeter.ice │ └── query │ │ ├── Package.swift │ │ ├── README.md │ │ ├── Sources │ │ ├── Client │ │ │ ├── main.swift │ │ │ └── slice-plugin.json │ │ └── Server │ │ │ ├── Chatbot.swift │ │ │ ├── main.swift │ │ │ └── slice-plugin.json │ │ ├── config.admin │ │ ├── config.node │ │ ├── config.registry │ │ ├── greeter-hall.xml │ │ └── slice │ │ └── Greeter.ice ├── IceStorm │ └── weather │ │ ├── Package.swift │ │ ├── README.md │ │ ├── Sources │ │ ├── Sensor │ │ │ ├── main.swift │ │ │ └── slice-plugin.json │ │ └── Station │ │ │ ├── AtmosphericConditions.swift │ │ │ ├── ConsolePrinter.swift │ │ │ ├── main.swift │ │ │ └── slice-plugin.json │ │ ├── config.icestorm │ │ └── slice │ │ └── WeatherStation.ice └── common │ ├── Package.swift │ └── Sources │ └── DateExtension │ └── DateExtension.swift └── tox.ini /.clang-tidy: -------------------------------------------------------------------------------- 1 | Checks: 2 | '-*, 3 | clang-analyzer-*, 4 | cert-*, 5 | modernize-*, 6 | -modernize-avoid-c-arrays, 7 | -modernize-use-trailing-return-type, 8 | performance-*, 9 | -performance-avoid-endl 10 | ' 11 | WarningsAsErrors: '*' 12 | HeaderFilterRegex: '.*' 13 | ExcludeHeaderFilterRegex: 'include/.*' 14 | UseColor: true 15 | FormatStyle: 'file' 16 | CheckOptions: 17 | modernize-use-nullptr.NullMacros: 'NULL' 18 | # std::exception_ptr is a cheap to copy, pointer-like type; we pass it by value all the time. 19 | performance-unnecessary-value-param.AllowedTypes: 'exception_ptr$;' 20 | -------------------------------------------------------------------------------- /.github/actions/setup-xcode/action.yml: -------------------------------------------------------------------------------- 1 | name: Setup Xcode 2 | runs: 3 | using: "composite" 4 | steps: 5 | # https://github.com/actions/runner-images/blob/main/images/macos/macos-15-arm64-Readme.md 6 | - name: Use Xcode 16.4 7 | if: runner.os == 'macOS' 8 | shell: bash 9 | run: sudo xcode-select --switch /Applications/Xcode_16.4.app/Contents/Developer 10 | -------------------------------------------------------------------------------- /.github/workflows/dotnet.yml: -------------------------------------------------------------------------------- 1 | name: .NET 2 | 3 | on: 4 | workflow_dispatch: 5 | push: 6 | branches: ["main"] 7 | pull_request: 8 | # The branches below must be a subset of the branches above 9 | branches: ["main"] 10 | 11 | jobs: 12 | dotnet-format: 13 | runs-on: ubuntu-24.04 14 | steps: 15 | - name: Checkout repository 16 | uses: actions/checkout@v4 17 | 18 | - name: Run .NET format 19 | working-directory: csharp 20 | run: | 21 | find . -name '*.sln' -type f | while IFS= read -r file; do 22 | dotnet format --verify-no-changes "$file" 23 | done 24 | -------------------------------------------------------------------------------- /.github/workflows/python.yml: -------------------------------------------------------------------------------- 1 | name: Python 2 | 3 | on: 4 | workflow_dispatch: 5 | push: 6 | branches: ["main"] 7 | pull_request: 8 | # The branches below must be a subset of the branches above 9 | branches: ["main"] 10 | 11 | jobs: 12 | ruff: 13 | name: Ruff check 14 | runs-on: ubuntu-24.04 15 | steps: 16 | - name: Checkout repository 17 | uses: actions/checkout@v4 18 | 19 | - name: Install Ruff 20 | run: pip install ruff 21 | 22 | - name: Run Ruff 23 | run: ruff check python --ignore E402 24 | -------------------------------------------------------------------------------- /.markdownlint.json: -------------------------------------------------------------------------------- 1 | { 2 | "no-duplicate-heading": { 3 | "siblings_only": true 4 | }, 5 | "line-length": { 6 | "line_length": 120 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /.vscode/cspell.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2", 3 | "language": "en", 4 | "words": [ 5 | "Blobject", 6 | "icegrid", 7 | "visitorcenter", 8 | "zeroc" 9 | ], 10 | "dictionaries": [ 11 | "csharp", 12 | "softwareTerms", 13 | "en_US" 14 | ], 15 | "enableFiletypes": [ 16 | "ice" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "ZeroCInc.slice" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /certs/ca.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zeroc-ice/ice-demos/c823eb7c2a534347b61c85c3a3f9a72bcf60fe04/certs/ca.jks -------------------------------------------------------------------------------- /certs/ca.p12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zeroc-ice/ice-demos/c823eb7c2a534347b61c85c3a3f9a72bcf60fe04/certs/ca.p12 -------------------------------------------------------------------------------- /certs/ca_cert.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zeroc-ice/ice-demos/c823eb7c2a534347b61c85c3a3f9a72bcf60fe04/certs/ca_cert.der -------------------------------------------------------------------------------- /certs/client.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zeroc-ice/ice-demos/c823eb7c2a534347b61c85c3a3f9a72bcf60fe04/certs/client.jks -------------------------------------------------------------------------------- /certs/client.p12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zeroc-ice/ice-demos/c823eb7c2a534347b61c85c3a3f9a72bcf60fe04/certs/client.p12 -------------------------------------------------------------------------------- /certs/server.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zeroc-ice/ice-demos/c823eb7c2a534347b61c85c3a3f9a72bcf60fe04/certs/server.jks -------------------------------------------------------------------------------- /certs/server.p12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zeroc-ice/ice-demos/c823eb7c2a534347b61c85c3a3f9a72bcf60fe04/certs/server.p12 -------------------------------------------------------------------------------- /cpp/DataStorm/clock/config.reader: -------------------------------------------------------------------------------- 1 | # 2 | # Use the localhost interface by default for DataStorm endpoints 3 | # 4 | Ice.Default.Host=localhost 5 | 6 | # 7 | # DataStorm server endpoint 8 | # 9 | #DataStorm.Node.Server.Endpoints=tcp 10 | 11 | # 12 | # DataStorm multicast endpoint 13 | # 14 | #DataStorm.Node.Multicast.Endpoints=udp -h 239.255.0.1 -p 10000 15 | 16 | # 17 | # DataStorm Tracing 18 | # 19 | #DataStorm.Trace.Topic=1 20 | #DataStorm.Trace.Data=1 21 | #DataStorm.Trace.Session=1 22 | 23 | # 24 | # Ice tracing 25 | # 26 | #Ice.Trace.Network=1 27 | -------------------------------------------------------------------------------- /cpp/DataStorm/clock/config.writer: -------------------------------------------------------------------------------- 1 | # 2 | # Use the localhost interface by default for DataStorm endpoints 3 | # 4 | Ice.Default.Host=localhost 5 | 6 | # 7 | # DataStorm server endpoint 8 | # 9 | #DataStorm.Node.Server.Endpoints=tcp 10 | 11 | # 12 | # DataStorm multicast endpoint 13 | # 14 | #DataStorm.Node.Multicast.Endpoints=udp -h 239.255.0.1 -p 10000 15 | 16 | # 17 | # DataStorm Tracing 18 | # 19 | #DataStorm.Trace.Topic=1 20 | #DataStorm.Trace.Data=1 21 | #DataStorm.Trace.Session=1 22 | 23 | # 24 | # Ice tracing 25 | # 26 | #Ice.Trace.Network=1 27 | -------------------------------------------------------------------------------- /cpp/DataStorm/keyFilter/config.reader: -------------------------------------------------------------------------------- 1 | # 2 | # Use the localhost interface by default for DataStorm endpoints 3 | # 4 | Ice.Default.Host=localhost 5 | 6 | # 7 | # DataStorm server endpoint 8 | # 9 | #DataStorm.Node.Server.Endpoints=tcp 10 | 11 | # 12 | # DataStorm multicast endpoint 13 | # 14 | #DataStorm.Node.Multicast.Endpoints=udp -h 239.255.0.1 -p 10000 15 | 16 | # 17 | # DataStorm Tracing 18 | # 19 | #DataStorm.Trace.Topic=1 20 | #DataStorm.Trace.Data=1 21 | #DataStorm.Trace.Session=1 22 | 23 | # 24 | # Ice tracing 25 | # 26 | #Ice.Trace.Network=1 27 | -------------------------------------------------------------------------------- /cpp/DataStorm/keyFilter/config.writer: -------------------------------------------------------------------------------- 1 | # 2 | # Use the localhost interface by default for DataStorm endpoints 3 | # 4 | Ice.Default.Host=localhost 5 | 6 | # 7 | # DataStorm server endpoint 8 | # 9 | #DataStorm.Node.Server.Endpoints=tcp 10 | 11 | # 12 | # DataStorm multicast endpoint 13 | # 14 | #DataStorm.Node.Multicast.Endpoints=udp -h 239.255.0.1 -p 10000 15 | 16 | # 17 | # DataStorm Tracing 18 | # 19 | #DataStorm.Trace.Topic=1 20 | #DataStorm.Trace.Data=1 21 | #DataStorm.Trace.Session=1 22 | 23 | # 24 | # Ice tracing 25 | # 26 | #Ice.Trace.Network=1 27 | -------------------------------------------------------------------------------- /cpp/DataStorm/minimal/README.md: -------------------------------------------------------------------------------- 1 | # DataStorm Minimal 2 | 3 | This demo is the minimal DataStorm "hello world" application. 4 | 5 | To build the demo run: 6 | 7 | ```shell 8 | cmake -B build -S . 9 | cmake --build build --config Release 10 | ``` 11 | 12 | To run the demo, start the writer: 13 | 14 | **Linux/macOS:** 15 | 16 | ```shell 17 | ./build/writer 18 | ``` 19 | 20 | **Windows:** 21 | 22 | ```shell 23 | build\Release\writer 24 | ``` 25 | 26 | In a separate window, start the reader: 27 | 28 | **Linux/macOS:** 29 | 30 | ```shell 31 | ./build/reader 32 | ``` 33 | 34 | **Windows:** 35 | 36 | ```shell 37 | build\Release\reader 38 | ``` 39 | -------------------------------------------------------------------------------- /cpp/DataStorm/node/config.node: -------------------------------------------------------------------------------- 1 | # 2 | # Use the localhost interface by default for DataStorm endpoints 3 | # 4 | Ice.Default.Host=localhost 5 | 6 | # 7 | # Disable the multicast endpoint 8 | # 9 | #DataStorm.Node.Multicast.Enabled=0 10 | 11 | # 12 | # Listen on the TCP endpoint with port 10000 13 | # 14 | DataStorm.Node.Server.Endpoints=tcp -p 10000 15 | 16 | # 17 | # DataStorm Tracing 18 | # 19 | #DataStorm.Trace.Topic=1 20 | #DataStorm.Trace.Data=1 21 | #DataStorm.Trace.Session=1 22 | 23 | # 24 | # Ice tracing 25 | # 26 | #Ice.Trace.Network=1 27 | -------------------------------------------------------------------------------- /cpp/DataStorm/sampleFilter/config.reader: -------------------------------------------------------------------------------- 1 | # 2 | # Use the localhost interface by default for DataStorm endpoints 3 | # 4 | Ice.Default.Host=localhost 5 | 6 | # 7 | # DataStorm server endpoint 8 | # 9 | #DataStorm.Node.Server.Endpoints=tcp 10 | 11 | # 12 | # DataStorm multicast endpoint 13 | # 14 | #DataStorm.Node.Multicast.Endpoints=udp -h 239.255.0.1 -p 10000 15 | 16 | # 17 | # DataStorm Tracing 18 | # 19 | #DataStorm.Trace.Topic=1 20 | #DataStorm.Trace.Data=1 21 | #DataStorm.Trace.Session=1 22 | 23 | # 24 | # Ice tracing 25 | # 26 | #Ice.Trace.Network=1 27 | -------------------------------------------------------------------------------- /cpp/DataStorm/sampleFilter/config.writer: -------------------------------------------------------------------------------- 1 | # 2 | # Use the localhost interface by default for DataStorm endpoints 3 | # 4 | Ice.Default.Host=localhost 5 | 6 | # 7 | # DataStorm server endpoint 8 | # 9 | #DataStorm.Node.Server.Endpoints=tcp 10 | 11 | # 12 | # DataStorm multicast endpoint 13 | # 14 | #DataStorm.Node.Multicast.Endpoints=udp -h 239.255.0.1 -p 10000 15 | 16 | # 17 | # DataStorm Tracing 18 | # 19 | #DataStorm.Trace.Topic=1 20 | #DataStorm.Trace.Data=1 21 | #DataStorm.Trace.Session=1 22 | 23 | # 24 | # Ice tracing 25 | # 26 | #Ice.Trace.Network=1 27 | -------------------------------------------------------------------------------- /cpp/DataStorm/stock/Stock.ice: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | module Demo 4 | { 5 | struct Stock 6 | { 7 | string name; 8 | float price; 9 | float bestBid; 10 | float bestAsk; 11 | long marketCap; 12 | float previousClose; 13 | int volume; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /cpp/DataStorm/stock/config.reader: -------------------------------------------------------------------------------- 1 | # 2 | # Use the localhost interface by default for DataStorm endpoints 3 | # 4 | Ice.Default.Host=localhost 5 | 6 | # 7 | # DataStorm server endpoint 8 | # 9 | #DataStorm.Node.Server.Endpoints=tcp 10 | 11 | # 12 | # DataStorm multicast endpoint 13 | # 14 | #DataStorm.Node.Multicast.Endpoints=udp -h 239.255.0.1 -p 10000 15 | 16 | # 17 | # DataStorm Tracing 18 | # 19 | #DataStorm.Trace.Topic=1 20 | #DataStorm.Trace.Data=1 21 | #DataStorm.Trace.Session=1 22 | 23 | # 24 | # Ice tracing 25 | # 26 | #Ice.Trace.Network=1 27 | -------------------------------------------------------------------------------- /cpp/DataStorm/stock/config.writer: -------------------------------------------------------------------------------- 1 | # 2 | # Use the localhost interface by default for DataStorm endpoints 3 | # 4 | Ice.Default.Host=localhost 5 | 6 | # 7 | # DataStorm server endpoint 8 | # 9 | #DataStorm.Node.Server.Endpoints=tcp 10 | 11 | # 12 | # DataStorm multicast endpoint 13 | # 14 | #DataStorm.Node.Multicast.Endpoints=udp -h 239.255.0.1 -p 10000 15 | 16 | # 17 | # DataStorm Tracing 18 | # 19 | #DataStorm.Trace.Topic=1 20 | #DataStorm.Trace.Data=1 21 | #DataStorm.Trace.Session=1 22 | 23 | # 24 | # Ice tracing 25 | # 26 | #Ice.Trace.Network=1 27 | -------------------------------------------------------------------------------- /cpp/Glacier2/greeter/Chatbot.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #include "Chatbot.h" 4 | 5 | #include 6 | #include 7 | 8 | using namespace std; 9 | 10 | string 11 | Server::Chatbot::greet(string name, const Ice::Current&) 12 | { 13 | cout << "Dispatching greet request { name = '" << name << "' }" << endl; 14 | 15 | ostringstream os; 16 | os << "Hello, " << name << "!"; 17 | return os.str(); 18 | } 19 | -------------------------------------------------------------------------------- /cpp/Glacier2/greeter/Chatbot.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #ifndef CHATBOT_H 4 | #define CHATBOT_H 5 | 6 | #include "Greeter.h" 7 | 8 | namespace Server 9 | { 10 | /// Chatbot is an Ice servant that implements Slice interface Greeter. 11 | class Chatbot : public VisitorCenter::Greeter 12 | { 13 | public: 14 | // Implements the pure virtual function in the base class (VisitorCenter::Greeter) generated by the Slice 15 | // compiler. 16 | std::string greet(std::string name, const Ice::Current&) override; 17 | }; 18 | } 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /cpp/Glacier2/greeter/Greeter.ice: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #pragma once 4 | 5 | module VisitorCenter 6 | { 7 | /// Represents a simple greeter. 8 | interface Greeter 9 | { 10 | /// Creates a personalized greeting. 11 | /// @param name The name of the person to greet. 12 | /// @return The greeting. 13 | string greet(string name); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /cpp/Glacier2/greeter/config.glacier2: -------------------------------------------------------------------------------- 1 | # Config file for glacier2router 2 | 3 | # The client-visible endpoint of the Glacier2 router. 4 | Glacier2.Client.Endpoints=tcp -p 4063 5 | 6 | # This Glacier router accepts any username/password combination. 7 | Glacier2.PermissionsVerifier=Glacier2/NullPermissionsVerifier 8 | 9 | # Turn on tracing. 10 | Glacier2.Client.Trace.Request=1 11 | Glacier2.Trace.Session=1 12 | Glacier2.Trace.RoutingTable=1 13 | -------------------------------------------------------------------------------- /cpp/Ice/cancellation/Greeter.ice: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #pragma once 4 | 5 | module VisitorCenter 6 | { 7 | /// Represents a simple greeter. 8 | interface Greeter 9 | { 10 | /// Creates a personalized greeting. 11 | /// @param name The name of the person to greet. 12 | /// @return The greeting. 13 | string greet(string name); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /cpp/Ice/config/Chatbot.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #include "Chatbot.h" 4 | 5 | #include 6 | #include 7 | 8 | using namespace std; 9 | 10 | string 11 | Server::Chatbot::greet(string name, const Ice::Current&) 12 | { 13 | cout << "Dispatching greet request { name = '" << name << "' }" << endl; 14 | 15 | ostringstream os; 16 | os << "Hello, " << name << "!"; 17 | return os.str(); 18 | } 19 | -------------------------------------------------------------------------------- /cpp/Ice/config/Chatbot.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #ifndef CHATBOT_H 4 | #define CHATBOT_H 5 | 6 | #include "Greeter.h" 7 | 8 | namespace Server 9 | { 10 | /// Chatbot is an Ice servant that implements Slice interface Greeter. 11 | class Chatbot : public VisitorCenter::Greeter 12 | { 13 | public: 14 | // Implements the pure virtual function in the base class (VisitorCenter::Greeter) generated by the Slice 15 | // compiler. 16 | std::string greet(std::string name, const Ice::Current&) override; 17 | }; 18 | } 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /cpp/Ice/config/Greeter.ice: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #pragma once 4 | 5 | module VisitorCenter 6 | { 7 | /// Represents a simple greeter. 8 | interface Greeter 9 | { 10 | /// Creates a personalized greeting. 11 | /// @param name: The name of the person to greet. 12 | /// @returns: The greeting. 13 | string greet(string name); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /cpp/Ice/context/Chatbot.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #ifndef CHATBOT_H 4 | #define CHATBOT_H 5 | 6 | #include "Greeter.h" 7 | 8 | namespace Server 9 | { 10 | /// Chatbot is an Ice servant that implements Slice interface Greeter. 11 | class Chatbot : public VisitorCenter::Greeter 12 | { 13 | public: 14 | // Implements the pure virtual function in the base class (VisitorCenter::Greeter) generated by the Slice 15 | // compiler. 16 | std::string greet(std::string name, const Ice::Current&) override; 17 | }; 18 | } 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /cpp/Ice/context/Greeter.ice: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #pragma once 4 | 5 | module VisitorCenter 6 | { 7 | /// Represents a simple greeter. 8 | interface Greeter 9 | { 10 | /// Creates a personalized greeting. 11 | /// @param name The name of the person to greet. 12 | /// @return The greeting. 13 | string greet(string name); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /cpp/Ice/customError/Chatbot.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #ifndef CHATBOT_H 4 | #define CHATBOT_H 5 | 6 | #include "Greeter.h" 7 | 8 | namespace Server 9 | { 10 | /// Chatbot is an Ice servant that implements Slice interface Greeter. 11 | class Chatbot : public VisitorCenter::Greeter 12 | { 13 | public: 14 | // Implements the pure virtual function in the base class (VisitorCenter::Greeter) generated by the Slice 15 | // compiler. 16 | std::string greet(std::string name, const Ice::Current&) override; 17 | 18 | private: 19 | // The maximum length of a name. 20 | static constexpr int _maxLength = 7; 21 | }; 22 | } 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /cpp/Ice/filesystem/README.md: -------------------------------------------------------------------------------- 1 | # Filesystem 2 | 3 | This demo implements the filesystem application shown at the end of C++ mapping chapter in the Ice manual. 4 | 5 | To build the demo run: 6 | 7 | ```shell 8 | cmake -B build 9 | cmake --build build --config Release 10 | ``` 11 | 12 | To run the demo, first start the server: 13 | 14 | **Linux/macOS:** 15 | 16 | ```shell 17 | ./build/server 18 | ``` 19 | 20 | **Windows:** 21 | 22 | ```shell 23 | build\Release\server 24 | ``` 25 | 26 | In a separate window, start the client: 27 | 28 | **Linux/macOS:** 29 | 30 | ```shell 31 | ./build/client 32 | ``` 33 | 34 | **Windows:** 35 | 36 | ```shell 37 | build\Release\client 38 | ``` 39 | -------------------------------------------------------------------------------- /cpp/Ice/forwarder/Chatbot.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #include "Chatbot.h" 4 | 5 | #include 6 | #include 7 | 8 | using namespace std; 9 | 10 | string 11 | Server::Chatbot::greet(string name, const Ice::Current&) 12 | { 13 | cout << "Dispatching greet request { name = '" << name << "' }" << endl; 14 | 15 | ostringstream os; 16 | os << "Hello, " << name << "!"; 17 | return os.str(); 18 | } 19 | -------------------------------------------------------------------------------- /cpp/Ice/forwarder/Chatbot.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #ifndef CHATBOT_H 4 | #define CHATBOT_H 5 | 6 | #include "Greeter.h" 7 | 8 | namespace Server 9 | { 10 | /// Chatbot is an Ice servant that implements Slice interface Greeter. 11 | class Chatbot : public VisitorCenter::Greeter 12 | { 13 | public: 14 | // Implements the pure virtual function in the base class (VisitorCenter::Greeter) generated by the Slice 15 | // compiler. 16 | std::string greet(std::string name, const Ice::Current&) override; 17 | }; 18 | } 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /cpp/Ice/forwarder/Greeter.ice: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #pragma once 4 | 5 | module VisitorCenter 6 | { 7 | /// Represents a simple greeter. 8 | interface Greeter 9 | { 10 | /// Creates a personalized greeting. 11 | /// @param name The name of the person to greet. 12 | /// @return The greeting. 13 | string greet(string name); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /cpp/Ice/greeter/Chatbot.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #include "Chatbot.h" 4 | 5 | #include 6 | #include 7 | 8 | using namespace std; 9 | 10 | string 11 | Server::Chatbot::greet(string name, const Ice::Current&) 12 | { 13 | cout << "Dispatching greet request { name = '" << name << "' }" << endl; 14 | 15 | ostringstream os; 16 | os << "Hello, " << name << "!"; 17 | return os.str(); 18 | } 19 | -------------------------------------------------------------------------------- /cpp/Ice/greeter/Chatbot.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #ifndef CHATBOT_H 4 | #define CHATBOT_H 5 | 6 | #include "Greeter.h" 7 | 8 | namespace Server 9 | { 10 | /// Chatbot is an Ice servant that implements Slice interface Greeter. 11 | class Chatbot : public VisitorCenter::Greeter 12 | { 13 | public: 14 | // Implements the pure virtual function in the base class (VisitorCenter::Greeter) generated by the Slice 15 | // compiler. 16 | std::string greet(std::string name, const Ice::Current&) override; 17 | }; 18 | } 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /cpp/Ice/greeter/Greeter.ice: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #pragma once 4 | 5 | module VisitorCenter 6 | { 7 | /// Represents a simple greeter. 8 | interface Greeter 9 | { 10 | /// Creates a personalized greeting. 11 | /// @param name The name of the person to greet. 12 | /// @return The greeting. 13 | string greet(string name); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /cpp/Ice/greeter/GreeterAMD.ice: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #pragma once 4 | 5 | module VisitorCenter 6 | { 7 | /// Represents a simple greeter. 8 | interface Greeter 9 | { 10 | /// Creates a personalized greeting. 11 | /// @param name The name of the person to greet. 12 | /// @return The greeting. 13 | ["amd"] // Instructs the Slice compiler to generate "asynchronous method dispatch" support code. 14 | string greet(string name); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /cpp/Ice/middleware/Chatbot.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #include "Chatbot.h" 4 | 5 | #include 6 | #include 7 | 8 | using namespace std; 9 | 10 | string 11 | Server::Chatbot::greet(string name, const Ice::Current&) 12 | { 13 | cout << "Dispatching greet request { name = '" << name << "' }" << endl; 14 | 15 | ostringstream os; 16 | os << "Hello, " << name << "!"; 17 | return os.str(); 18 | } 19 | -------------------------------------------------------------------------------- /cpp/Ice/middleware/Chatbot.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #ifndef CHATBOT_H 4 | #define CHATBOT_H 5 | 6 | #include "Greeter.h" 7 | 8 | namespace Server 9 | { 10 | /// Chatbot is an Ice servant that implements Slice interface Greeter. 11 | class Chatbot : public VisitorCenter::Greeter 12 | { 13 | public: 14 | // Implements the pure virtual function in the base class (VisitorCenter::Greeter) generated by the Slice 15 | // compiler. 16 | std::string greet(std::string name, const Ice::Current&) override; 17 | }; 18 | } 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /cpp/Ice/middleware/Greeter.ice: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #pragma once 4 | 5 | module VisitorCenter 6 | { 7 | /// Represents a simple greeter. 8 | interface Greeter 9 | { 10 | /// Creates a personalized greeting. 11 | /// @param name The name of the person to greet. 12 | /// @return The greeting. 13 | string greet(string name); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /cpp/Ice/multicast/Discovery.ice: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #pragma once 4 | 5 | module Demo 6 | { 7 | interface DiscoverReply 8 | { 9 | void reply(Object* obj); 10 | } 11 | 12 | interface Discover 13 | { 14 | void lookup(DiscoverReply* replyHere); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /cpp/Ice/multicast/Hello.ice: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #pragma once 4 | 5 | module Demo 6 | { 7 | interface Hello 8 | { 9 | idempotent void sayHello(); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /cpp/Ice/optional/ConsolePrinter1.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #include "ConsolePrinter1.h" 4 | 5 | #include 6 | 7 | using namespace std; 8 | 9 | void 10 | Server::ConsolePrinter::report(string sensorId, ClearSky::AtmosphericConditionsPtr reading, const Ice::Current&) 11 | { 12 | cout << sensorId << " reported " << reading << " to station v1" << endl; 13 | } 14 | -------------------------------------------------------------------------------- /cpp/Ice/optional/ConsolePrinter2.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #include "ConsolePrinter2.h" 4 | 5 | #include 6 | 7 | using namespace std; 8 | 9 | void 10 | Server::ConsolePrinter::report(string sensorId, ClearSky::AtmosphericConditionsPtr reading, const Ice::Current&) 11 | { 12 | cout << sensorId << " reported " << reading << " to station v2" << endl; 13 | } 14 | -------------------------------------------------------------------------------- /cpp/Ice/secure/Chatbot.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #include "Chatbot.h" 4 | 5 | #include 6 | #include 7 | 8 | using namespace std; 9 | 10 | string 11 | Server::Chatbot::greet(string name, const Ice::Current&) 12 | { 13 | cout << "Dispatching greet request { name = '" << name << "' }" << endl; 14 | 15 | ostringstream os; 16 | os << "Hello, " << name << "!"; 17 | return os.str(); 18 | } 19 | -------------------------------------------------------------------------------- /cpp/Ice/secure/Chatbot.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #ifndef CHATBOT_H 4 | #define CHATBOT_H 5 | 6 | #include "Greeter.h" 7 | 8 | namespace Server 9 | { 10 | /// Chatbot is an Ice servant that implements Slice interface Greeter. 11 | class Chatbot : public VisitorCenter::Greeter 12 | { 13 | public: 14 | // Implements the pure virtual function in the base class (VisitorCenter::Greeter) generated by the Slice 15 | // compiler. 16 | std::string greet(std::string name, const Ice::Current&) override; 17 | }; 18 | } 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /cpp/Ice/secure/ClientRun.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #include 4 | 5 | namespace Client 6 | { 7 | /// Starts a secure greeter client using the provided command-line arguments and client authentication options. 8 | /// @param argc The number of command-line arguments. 9 | /// @param argv The array of command-line arguments. 10 | /// @param clientAuthenticationOptions The client authentication options used to initialize the Ice communicator 11 | /// for secure connections. 12 | void run(int argc, char* argv[], Ice::SSL::ClientAuthenticationOptions clientAuthenticationOptions); 13 | } 14 | -------------------------------------------------------------------------------- /cpp/Ice/secure/Greeter.ice: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #pragma once 4 | 5 | module VisitorCenter 6 | { 7 | /// Represents a simple greeter. 8 | interface Greeter 9 | { 10 | /// Creates a personalized greeting. 11 | /// @param name The name of the person to greet. 12 | /// @return The greeting. 13 | string greet(string name); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /cpp/Ice/secure/ServerRun.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #include 4 | 5 | namespace Server 6 | { 7 | /// Starts a secure greeter server using the specified command-line arguments and server authentication options. 8 | /// @param argc The number of command-line arguments. 9 | /// @param argv The array of command-line arguments. 10 | /// @param serverAuthenticationOptions The server authentication options used to initialize the Ice object adapter 11 | /// for secure connections. 12 | void run(int argc, char* argv[], Ice::SSL::ServerAuthenticationOptions serverAuthenticationOptions); 13 | } 14 | -------------------------------------------------------------------------------- /cpp/Ice/secure/keychain-access.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zeroc-ice/ice-demos/c823eb7c2a534347b61c85c3a3f9a72bcf60fe04/cpp/Ice/secure/keychain-access.png -------------------------------------------------------------------------------- /cpp/IceBox/greeter/Chatbot.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #include "Chatbot.h" 4 | 5 | #include 6 | #include 7 | 8 | using namespace std; 9 | 10 | GreeterServer::Chatbot::Chatbot(string chatbotName) : _chatbotName(std::move(chatbotName)) {} 11 | 12 | string 13 | GreeterServer::Chatbot::greet(string name, const Ice::Current&) 14 | { 15 | cout << "Dispatching greet request { name = '" << name << "' }" << endl; 16 | 17 | ostringstream os; 18 | os << "Hello, " << name << "! My name is " << _chatbotName << ". How can I help you today?"; 19 | return os.str(); 20 | } 21 | -------------------------------------------------------------------------------- /cpp/IceBox/greeter/Greeter.ice: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #pragma once 4 | 5 | module VisitorCenter 6 | { 7 | /// Represents a simple greeter. 8 | interface Greeter 9 | { 10 | /// Creates a personalized greeting. 11 | /// @param name The name of the person to greet. 12 | /// @return The greeting. 13 | string greet(string name); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /cpp/IceDiscovery/greeter/Chatbot.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #include "Chatbot.h" 4 | 5 | #include 6 | #include 7 | 8 | using namespace std; 9 | 10 | string 11 | Server::Chatbot::greet(string name, const Ice::Current&) 12 | { 13 | cout << "Dispatching greet request { name = '" << name << "' }" << endl; 14 | 15 | ostringstream os; 16 | os << "Hello, " << name << "!"; 17 | return os.str(); 18 | } 19 | -------------------------------------------------------------------------------- /cpp/IceDiscovery/greeter/Chatbot.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #ifndef CHATBOT_H 4 | #define CHATBOT_H 5 | 6 | #include "Greeter.h" 7 | 8 | namespace Server 9 | { 10 | /// Chatbot is an Ice servant that implements Slice interface Greeter. 11 | class Chatbot : public VisitorCenter::Greeter 12 | { 13 | public: 14 | // Implements the pure virtual function in the base class (VisitorCenter::Greeter) generated by the Slice 15 | // compiler. 16 | std::string greet(std::string name, const Ice::Current&) override; 17 | }; 18 | } 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /cpp/IceDiscovery/greeter/Greeter.ice: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #pragma once 4 | 5 | module VisitorCenter 6 | { 7 | /// Represents a simple greeter. 8 | interface Greeter 9 | { 10 | /// Creates a personalized greeting. 11 | /// @param name The name of the person to greet. 12 | /// @return The greeting. 13 | string greet(string name); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /cpp/IceDiscovery/replication/Chatbot.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #include "Chatbot.h" 4 | 5 | #include 6 | #include 7 | 8 | using namespace std; 9 | 10 | Server::Chatbot::Chatbot(string chatbotName) : _chatbotName(std::move(chatbotName)) {} 11 | 12 | string 13 | Server::Chatbot::greet(string name, const Ice::Current&) 14 | { 15 | cout << "Dispatching greet request { name = '" << name << "' }" << endl; 16 | 17 | ostringstream os; 18 | os << "Hello, " << name << "! My name is " << _chatbotName << ". How can I help you today?"; 19 | return os.str(); 20 | } 21 | -------------------------------------------------------------------------------- /cpp/IceDiscovery/replication/Greeter.ice: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #pragma once 4 | 5 | module VisitorCenter 6 | { 7 | /// Represents a simple greeter. 8 | interface Greeter 9 | { 10 | /// Creates a personalized greeting. 11 | /// @param name The name of the person to greet. 12 | /// @return The greeting. 13 | string greet(string name); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /cpp/IceGrid/allocate/Hello.ice: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #pragma once 4 | 5 | module Demo 6 | { 7 | interface Hello 8 | { 9 | idempotent void sayHello(); 10 | void shutdown(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /cpp/IceGrid/allocate/HelloI.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #include "HelloI.h" 4 | #include 5 | #include 6 | 7 | using namespace std; 8 | 9 | HelloI::HelloI(string name) : _name(std::move(name)) {} 10 | 11 | void 12 | HelloI::sayHello(const Ice::Current&) 13 | { 14 | cout << _name << " says Hello World!" << endl; 15 | } 16 | 17 | void 18 | HelloI::shutdown(const Ice::Current& current) 19 | { 20 | cout << _name << " shutting down..." << endl; 21 | current.adapter->getCommunicator()->shutdown(); 22 | } 23 | -------------------------------------------------------------------------------- /cpp/IceGrid/allocate/HelloI.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #ifndef HELLO_I_H 4 | #define HELLO_I_H 5 | 6 | #include 7 | 8 | class HelloI : public Demo::Hello 9 | { 10 | public: 11 | HelloI(std::string); 12 | 13 | void sayHello(const Ice::Current&) override; 14 | void shutdown(const Ice::Current&) override; 15 | 16 | private: 17 | const std::string _name; 18 | }; 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /cpp/IceGrid/allocate/config.admin: -------------------------------------------------------------------------------- 1 | # Username and password. They can be anything since we're using IceGrid's NullPermissionsVerifier. 2 | IceGridAdmin.Username=foo 3 | IceGridAdmin.Password=bar 4 | -------------------------------------------------------------------------------- /cpp/IceGrid/allocate/config.client: -------------------------------------------------------------------------------- 1 | # 2 | # The IceGrid locator proxy. 3 | # 4 | Ice.Default.Locator=DemoIceGrid/Locator:default -h localhost -p 4061 5 | 6 | # 7 | # To use the IceGrid discovery plugin comment out the default locator 8 | # property above and un-comment the two properties below. The discovery 9 | # plugin uses multicast to discover IceGrid. 10 | # 11 | #Ice.Plugin.IceLocatorDiscovery=IceLocatorDiscovery:createIceLocatorDiscovery 12 | #IceLocatorDiscovery.InstanceName=DemoIceGrid 13 | -------------------------------------------------------------------------------- /cpp/IceGrid/customLocator/Hello.ice: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #pragma once 4 | 5 | module Demo 6 | { 7 | interface Hello 8 | { 9 | void sayHello(); 10 | void shutdown(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /cpp/IceGrid/customLocator/HelloI.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #include "HelloI.h" 4 | #include 5 | #include 6 | 7 | using namespace std; 8 | 9 | HelloI::HelloI(string name) : _name(std::move(name)) {} 10 | 11 | void 12 | HelloI::sayHello(const Ice::Current&) 13 | { 14 | cout << _name << " says Hello World!" << endl; 15 | } 16 | 17 | void 18 | HelloI::shutdown(const Ice::Current& current) 19 | { 20 | cout << _name << " shutting down..." << endl; 21 | current.adapter->getCommunicator()->shutdown(); 22 | } 23 | -------------------------------------------------------------------------------- /cpp/IceGrid/customLocator/HelloI.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #ifndef HELLO_I_H 4 | #define HELLO_I_H 5 | 6 | #include 7 | 8 | class HelloI : public Demo::Hello 9 | { 10 | public: 11 | HelloI(std::string); 12 | 13 | void sayHello(const Ice::Current&) override; 14 | void shutdown(const Ice::Current&) override; 15 | 16 | private: 17 | const std::string _name; 18 | }; 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /cpp/IceGrid/customLocator/config.admin: -------------------------------------------------------------------------------- 1 | # 2 | # Dummy username and password for icegridadmin. 3 | # 4 | IceGridAdmin.Username=foo 5 | IceGridAdmin.Password=bar 6 | -------------------------------------------------------------------------------- /cpp/IceGrid/customLocator/config.client: -------------------------------------------------------------------------------- 1 | # 2 | # The custom locator proxy. 3 | # 4 | Ice.Default.Locator=locator:default -h localhost -p 10000 5 | -------------------------------------------------------------------------------- /cpp/IceGrid/greeter/Chatbot.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #include "Chatbot.h" 4 | 5 | #include 6 | #include 7 | 8 | using namespace std; 9 | 10 | Server::Chatbot::Chatbot(string greeterName) : _greeterName{std::move(greeterName)} {} 11 | 12 | string 13 | Server::Chatbot::greet(string name, const Ice::Current&) 14 | { 15 | cout << "Dispatching greet request { name = '" << name << "' }" << endl; 16 | 17 | ostringstream os; 18 | os << "Hello, " << name << "! My name is " << _greeterName << ". How are you today?"; 19 | 20 | return os.str(); 21 | } 22 | -------------------------------------------------------------------------------- /cpp/IceGrid/greeter/Greeter.ice: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #pragma once 4 | 5 | module VisitorCenter 6 | { 7 | /// Represents a simple greeter. 8 | interface Greeter 9 | { 10 | /// Creates a personalized greeting. 11 | /// @param name The name of the person to greet. 12 | /// @return The greeting. 13 | string greet(string name); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /cpp/IceGrid/greeter/config.admin: -------------------------------------------------------------------------------- 1 | # Config file for icegridadmin 2 | 3 | # A proxy to the Locator object hosted by the IceGrid registry. 4 | Ice.Default.Locator=IceGrid/Locator:tcp -h localhost -p 4061 5 | 6 | # Dummy username and password. They work because IceGrid is configured with the NullPermissionsVerifier. 7 | IceGridAdmin.Username=foo 8 | IceGridAdmin.Password=bar 9 | -------------------------------------------------------------------------------- /cpp/IceGrid/icebox/Chatbot.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #include "Chatbot.h" 4 | 5 | #include 6 | #include 7 | 8 | using namespace std; 9 | 10 | Server::Chatbot::Chatbot(string chatbotName) : _chatbotName(std::move(chatbotName)) {} 11 | 12 | string 13 | Server::Chatbot::greet(string name, const Ice::Current&) 14 | { 15 | cout << "Dispatching greet request { name = '" << name << "' }" << endl; 16 | 17 | ostringstream os; 18 | os << "Hello, " << name << "! My name is " << _chatbotName << ". How are you today?"; 19 | 20 | return os.str(); 21 | } 22 | -------------------------------------------------------------------------------- /cpp/IceGrid/icebox/Greeter.ice: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #pragma once 4 | 5 | module VisitorCenter 6 | { 7 | /// Represents a simple greeter. 8 | interface Greeter 9 | { 10 | /// Creates a personalized greeting. 11 | /// @param name The name of the person to greet. 12 | /// @return The greeting. 13 | string greet(string name); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /cpp/IceGrid/icebox/config.admin: -------------------------------------------------------------------------------- 1 | # Config file for icegridadmin 2 | 3 | # A proxy to the Locator object hosted by the IceGrid registry. 4 | Ice.Default.Locator=IceGrid/Locator:tcp -h localhost -p 4061 5 | 6 | # Dummy username and password. They work because IceGrid is configured with the NullPermissionsVerifier. 7 | IceGridAdmin.Username=foo 8 | IceGridAdmin.Password=bar 9 | -------------------------------------------------------------------------------- /cpp/IceGrid/locatorDiscovery/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.21) 2 | 3 | project(icegrid_locatorDiscovery CXX) 4 | 5 | include(../../cmake/common.cmake) 6 | 7 | add_executable(client Client.cpp Greeter.ice) 8 | slice2cpp_generate(client) 9 | target_link_libraries(client PRIVATE Ice::Ice Ice::IceLocatorDiscovery) 10 | add_custom_command(TARGET client POST_BUILD 11 | COMMAND ${CMAKE_COMMAND} -E copy -t $ 12 | $ 13 | $> 14 | COMMAND_EXPAND_LISTS 15 | ) 16 | -------------------------------------------------------------------------------- /cpp/IceGrid/locatorDiscovery/Greeter.ice: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #pragma once 4 | 5 | module VisitorCenter 6 | { 7 | /// Represents a simple greeter. 8 | interface Greeter 9 | { 10 | /// Creates a personalized greeting. 11 | /// @param name The name of the person to greet. 12 | /// @return The greeting. 13 | string greet(string name); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /cpp/IceGrid/query/Chatbot.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #include "Chatbot.h" 4 | 5 | #include 6 | #include 7 | 8 | using namespace std; 9 | 10 | Server::Chatbot::Chatbot(string greeterName) : _greeterName{std::move(greeterName)} {} 11 | 12 | string 13 | Server::Chatbot::greet(string name, const Ice::Current&) 14 | { 15 | cout << "Dispatching greet request { name = '" << name << "' }" << endl; 16 | 17 | ostringstream os; 18 | os << "Hello, " << name << "! My name is " << _greeterName << ". How are you today?"; 19 | 20 | return os.str(); 21 | } 22 | -------------------------------------------------------------------------------- /cpp/IceGrid/query/Greeter.ice: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #pragma once 4 | 5 | module VisitorCenter 6 | { 7 | /// Represents a simple greeter. 8 | interface Greeter 9 | { 10 | /// Creates a personalized greeting. 11 | /// @param name The name of the person to greet. 12 | /// @return The greeting. 13 | string greet(string name); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /cpp/IceGrid/query/config.admin: -------------------------------------------------------------------------------- 1 | # Config file for icegridadmin 2 | 3 | # A proxy to the Locator object hosted by the IceGrid registry. 4 | Ice.Default.Locator=IceGrid/Locator:tcp -h localhost -p 4061 5 | 6 | # Dummy username and password. They work because IceGrid is configured with the NullPermissionsVerifier. 7 | IceGridAdmin.Username=foo 8 | IceGridAdmin.Password=bar 9 | -------------------------------------------------------------------------------- /cpp/IceGrid/replication/Hello.ice: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #pragma once 4 | 5 | module Demo 6 | { 7 | interface Hello 8 | { 9 | idempotent string getGreeting(); 10 | void shutdown(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /cpp/IceGrid/replication/HelloI.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #include "HelloI.h" 4 | #include 5 | #include 6 | 7 | using namespace std; 8 | 9 | HelloI::HelloI(string_view name) : _name(name) {} 10 | 11 | string 12 | HelloI::getGreeting(const Ice::Current&) 13 | { 14 | return _name + " says Hello World!"; 15 | } 16 | 17 | void 18 | HelloI::shutdown(const Ice::Current& current) 19 | { 20 | cout << _name << " shutting down..." << endl; 21 | current.adapter->getCommunicator()->shutdown(); 22 | } 23 | -------------------------------------------------------------------------------- /cpp/IceGrid/replication/HelloI.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #ifndef HELLO_I_H 4 | #define HELLO_I_H 5 | 6 | #include 7 | 8 | class HelloI final : public Demo::Hello 9 | { 10 | public: 11 | HelloI(std::string_view); 12 | 13 | std::string getGreeting(const Ice::Current&) final; 14 | void shutdown(const Ice::Current&) final; 15 | 16 | private: 17 | const std::string _name; 18 | }; 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /cpp/IceGrid/secure/Hello.ice: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #pragma once 4 | 5 | module Demo 6 | { 7 | interface Hello 8 | { 9 | idempotent void sayHello(); 10 | void shutdown(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /cpp/IceGrid/secure/HelloI.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #include "HelloI.h" 4 | #include 5 | #include 6 | 7 | using namespace std; 8 | 9 | HelloI::HelloI(string name) : _name(std::move(name)) {} 10 | 11 | void 12 | HelloI::sayHello(const Ice::Current&) 13 | { 14 | cout << _name << " says Hello World!" << endl; 15 | } 16 | 17 | void 18 | HelloI::shutdown(const Ice::Current& current) 19 | { 20 | cout << _name << " shutting down..." << endl; 21 | current.adapter->getCommunicator()->shutdown(); 22 | } 23 | -------------------------------------------------------------------------------- /cpp/IceGrid/secure/HelloI.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #ifndef HELLO_I_H 4 | #define HELLO_I_H 5 | 6 | #include 7 | 8 | class HelloI : public Demo::Hello 9 | { 10 | public: 11 | HelloI(std::string); 12 | 13 | void sayHello(const Ice::Current&) override; 14 | void shutdown(const Ice::Current&) override; 15 | 16 | private: 17 | const std::string _name; 18 | }; 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /cpp/IceGrid/secure/config.admin: -------------------------------------------------------------------------------- 1 | Ice.Default.Locator=DemoIceGrid/Locator:ssl -h localhost -p 4062 2 | #Ice.Default.Router=DemoGlacier2/router:ssl -h localhost -p 4064 3 | 4 | IceGridAdmin.Username=demo 5 | IceGridAdmin.Password=dummy 6 | 7 | # 8 | # Trace properties. 9 | # 10 | #Ice.Trace.Network=1 11 | #Ice.Trace.Locator=1 12 | 13 | # 14 | # SSL Configuration 15 | # 16 | IceSSL.TrustOnly.Client=CN="Master";CN="Slave";CN="Glacier2" 17 | 18 | # C++ configuration 19 | Ice.Plugin.IceSSL.cpp=IceSSL:createIceSSL 20 | IceSSL.DefaultDir=certs 21 | IceSSL.CAs=ca.pem 22 | -------------------------------------------------------------------------------- /cpp/IceGrid/secure/config.client: -------------------------------------------------------------------------------- 1 | # 2 | # The IceGrid locator proxy. 3 | # 4 | Ice.Default.Locator=DemoIceGrid/Locator:tcp -h localhost -p 4061:tcp -h localhost -p 14061 5 | 6 | # 7 | # To use the IceGrid discovery plugin comment out the default locator 8 | # property above and un-comment the two properties below. The discovery 9 | # plugin uses multicast to discover IceGrid. 10 | # 11 | #Ice.Plugin.IceLocatorDiscovery=IceLocatorDiscovery:createIceLocatorDiscovery 12 | #IceLocatorDiscovery.InstanceName=DemoIceGrid 13 | 14 | # 15 | # Trace properties. 16 | # 17 | #Ice.Trace.Network=1 18 | #Ice.Trace.Locator=1 19 | -------------------------------------------------------------------------------- /cpp/IceGrid/sessionActivation/Hello.ice: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #pragma once 4 | 5 | module Demo 6 | { 7 | interface Hello 8 | { 9 | idempotent void sayHello(); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /cpp/IceGrid/sessionActivation/HelloI.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #include "HelloI.h" 4 | #include 5 | #include 6 | 7 | using namespace std; 8 | 9 | HelloI::HelloI(string_view name) : _name(name) {} 10 | 11 | void 12 | HelloI::sayHello(const Ice::Current&) 13 | { 14 | cout << _name << " says Hello World!" << endl; 15 | } 16 | -------------------------------------------------------------------------------- /cpp/IceGrid/sessionActivation/HelloI.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #ifndef HELLO_I_H 4 | #define HELLO_I_H 5 | 6 | #include "Hello.h" 7 | 8 | class HelloI final : public Demo::Hello 9 | { 10 | public: 11 | HelloI(std::string_view); 12 | 13 | void sayHello(const Ice::Current&) final; 14 | 15 | private: 16 | const std::string _name; 17 | }; 18 | 19 | #endif 20 | -------------------------------------------------------------------------------- /cpp/IceGrid/sessionActivation/config.admin: -------------------------------------------------------------------------------- 1 | # 2 | # Dummy username and password for icegridadmin. 3 | # 4 | IceGridAdmin.Username=foo 5 | IceGridAdmin.Password=bar 6 | -------------------------------------------------------------------------------- /cpp/IceGrid/sessionActivation/config.client: -------------------------------------------------------------------------------- 1 | # 2 | # The IceGrid locator proxy. 3 | # 4 | Ice.Default.Locator=DemoIceGrid/Locator:default -h localhost -p 4061 5 | 6 | # 7 | # To use the IceGrid discovery plugin comment out the default locator 8 | # property above and un-comment the two properties below. The discovery 9 | # plugin uses multicast to discover IceGrid. 10 | # 11 | #Ice.Plugin.IceLocatorDiscovery=IceLocatorDiscovery:createIceLocatorDiscovery 12 | #IceLocatorDiscovery.InstanceName=DemoIceGrid 13 | -------------------------------------------------------------------------------- /cpp/IceStorm/counter/Counter.ice: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #pragma once 4 | 5 | module Demo 6 | { 7 | interface CounterObserver 8 | { 9 | void init(int value); 10 | void inc(int value); 11 | } 12 | 13 | interface Counter 14 | { 15 | void subscribe(CounterObserver* observer); 16 | void unsubscribe(CounterObserver* observer); 17 | void inc(int value); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /cpp/IceStorm/counter/CounterObserverI.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #ifndef COUNTER_OBSERVER_I 4 | #define COUNTER_OBSERVER_I 5 | 6 | #include 7 | #include 8 | 9 | void print(const std::string&); 10 | 11 | class CounterObserverI : public Demo::CounterObserver 12 | { 13 | public: 14 | void init(int, const Ice::Current&) override; 15 | void inc(int, const Ice::Current&) override; 16 | 17 | private: 18 | int _value = 0; 19 | std::mutex _mutex; 20 | }; 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /cpp/IceStorm/counter/config.admin: -------------------------------------------------------------------------------- 1 | # 2 | # This property is used by the icestormadmin to connect to IceStorm. 3 | # 4 | IceStormAdmin.TopicManager.Default=DemoIceStorm/TopicManager:default -h localhost -p 10000 5 | 6 | # 7 | # Network Tracing 8 | # 9 | # 0 = no network tracing 10 | # 1 = trace connection establishment and closure 11 | # 2 = like 1, but more detailed 12 | # 3 = like 2, but also trace data transfer 13 | # 14 | #Ice.Trace.Network=1 15 | -------------------------------------------------------------------------------- /cpp/IceStorm/counter/config.client: -------------------------------------------------------------------------------- 1 | # 2 | # This property is used by the clients to connect to IceStorm. 3 | # 4 | Counter.Proxy=counter:tcp -p 12000 5 | 6 | # 7 | # Only use the localhost interface by default. 8 | # 9 | Ice.Default.Host=localhost 10 | 11 | # 12 | # Network Tracing 13 | # 14 | # 0 = no network tracing 15 | # 1 = trace connection establishment and closure 16 | # 2 = like 1, but more detailed 17 | # 3 = like 2, but also trace data transfer 18 | # 19 | #Ice.Trace.Network=1 20 | -------------------------------------------------------------------------------- /cpp/IceStorm/counter/config.server: -------------------------------------------------------------------------------- 1 | # 2 | # The endpoints for the counter object. 3 | # 4 | Counter.Endpoints=tcp -h localhost -p 12000 5 | 6 | # 7 | # This property is used by the counter server to connect with IceStorm. 8 | # 9 | TopicManager.Proxy=DemoIceStorm/TopicManager:default -p 10000 10 | 11 | # 12 | # Network Tracing 13 | # 14 | # 0 = no network tracing 15 | # 1 = trace connection establishment and closure 16 | # 2 = like 1, but more detailed 17 | # 3 = like 2, but also trace data transfer 18 | # 19 | #Ice.Trace.Network=1 20 | -------------------------------------------------------------------------------- /cpp/IceStorm/replicated/Clock.ice: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #pragma once 4 | 5 | module Demo 6 | { 7 | interface Clock 8 | { 9 | void tick(string time); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /cpp/IceStorm/replicated/config.admin: -------------------------------------------------------------------------------- 1 | # 2 | # The Default Locator 3 | # 4 | Ice.Default.Locator=DemoIceGrid/Locator:default -p 4061 5 | 6 | # 7 | # This property is used by the icestormadmin to connect to IceStorm. 8 | # 9 | IceStormAdmin.TopicManager.Default=DemoIceStorm/TopicManager 10 | 11 | # 12 | # Network Tracing 13 | # 14 | # 0 = no network tracing 15 | # 1 = trace connection establishment and closure 16 | # 2 = like 1, but more detailed 17 | # 3 = like 2, but also trace data transfer 18 | # 19 | #Ice.Trace.Network=1 20 | -------------------------------------------------------------------------------- /cpp/IceStorm/replicated/config.pub: -------------------------------------------------------------------------------- 1 | # 2 | # The Default Locator 3 | # 4 | Ice.Default.Locator=DemoIceGrid/Locator:default -p 4061 5 | 6 | # 7 | # This property is used by the clients to connect to IceStorm. 8 | # 9 | TopicManager.Proxy=DemoIceStorm/TopicManager 10 | 11 | # 12 | # Locator Tracing 13 | # 14 | #Ice.Trace.Locator=1 15 | 16 | # 17 | # Network Tracing 18 | # 19 | # 0 = no network tracing 20 | # 1 = trace connection establishment and closure 21 | # 2 = like 1, but more detailed 22 | # 3 = like 2, but also trace data transfer 23 | # 24 | #Ice.Trace.Network=1 25 | -------------------------------------------------------------------------------- /cpp/IceStorm/replicated2/Clock.ice: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #pragma once 4 | 5 | module Demo 6 | { 7 | interface Clock 8 | { 9 | void tick(string time); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /cpp/IceStorm/replicated2/config.admin: -------------------------------------------------------------------------------- 1 | # 2 | # This property is used by the icestormadmin to connect to IceStorm. 3 | # 4 | IceStormAdmin.TopicManager.Default=DemoIceStorm/TopicManager:default -p 10000 5 | 6 | # 7 | # Network Tracing 8 | # 9 | # 0 = no network tracing 10 | # 1 = trace connection establishment and closure 11 | # 2 = like 1, but more detailed 12 | # 3 = like 2, but also trace data transfer 13 | # 14 | #Ice.Trace.Network=1 15 | -------------------------------------------------------------------------------- /cpp/IceStorm/replicated2/config.pub: -------------------------------------------------------------------------------- 1 | # 2 | # This property is used by the clients to connect to IceStorm. 3 | # 4 | TopicManager.Proxy=DemoIceStorm/TopicManager:default -p 10000 5 | 6 | # 7 | # Network Tracing 8 | # 9 | # 0 = no network tracing 10 | # 1 = trace connection establishment and closure 11 | # 2 = like 1, but more detailed 12 | # 3 = like 2, but also trace data transfer 13 | # 14 | #Ice.Trace.Network=1 15 | -------------------------------------------------------------------------------- /cpp/IceStorm/replicated2/config.sub: -------------------------------------------------------------------------------- 1 | # 2 | # This property is used to configure the endpoints of the clock 3 | # subscriber adapter. 4 | # 5 | Clock.Subscriber.Endpoints=tcp:udp 6 | 7 | # 8 | # Only listen on the localhost interface by default. 9 | # 10 | Ice.Default.Host=localhost 11 | 12 | # 13 | # This property is used by the clients to connect to IceStorm. 14 | # 15 | TopicManager.Proxy=DemoIceStorm/TopicManager:default -p 10000:default -p 10010:default -p 10020 16 | 17 | # 18 | # Network Tracing 19 | # 20 | # 0 = no network tracing 21 | # 1 = trace connection establishment and closure 22 | # 2 = like 1, but more detailed 23 | # 3 = like 2, but also trace data transfer 24 | # 25 | #Ice.Trace.Network=1 26 | -------------------------------------------------------------------------------- /cpp/IceStorm/weather/AtmosphericConditions.cpp: -------------------------------------------------------------------------------- 1 | #include "WeatherStation.h" 2 | 3 | #include 4 | 5 | using namespace std; 6 | 7 | // Implementation of the ice_print method for the AtmosphericConditions class. 8 | void 9 | ClearSky::AtmosphericConditions::ice_print(ostream& os) const 10 | { 11 | os << "{ Temperature = " << temperature << "°C, Humidity = " << humidity << "% }"; 12 | } 13 | -------------------------------------------------------------------------------- /cpp/IceStorm/weather/ConsolePrinter.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #include "ConsolePrinter.h" 4 | 5 | #include 6 | 7 | using namespace std; 8 | 9 | void 10 | Server::ConsolePrinter::report( 11 | string sensorId, 12 | string timeStamp, 13 | ClearSky::AtmosphericConditionsPtr reading, 14 | const Ice::Current&) 15 | { 16 | cout << sensorId << " measured " << reading << " at " << timeStamp << endl; 17 | } 18 | -------------------------------------------------------------------------------- /csharp/Directory.Build.props: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 3.8.0-nightly.* 6 | true 7 | All 8 | 9 | 10 | -------------------------------------------------------------------------------- /csharp/Glacier2/Greeter/Server/Chatbot.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | using VisitorCenter; 4 | 5 | namespace Server; 6 | 7 | /// Chatbot is an Ice servant that implements Slice interface Greeter. 8 | internal class Chatbot : GreeterDisp_ 9 | { 10 | /// 11 | // Implements the abstract method Greet from the GreeterDisp_ class generated by the Slice compiler. 12 | public override string Greet(string name, Ice.Current current) 13 | { 14 | Console.WriteLine($"Dispatching greet request {{ name = '{name}' }}"); 15 | return $"Hello, {name}!"; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /csharp/Glacier2/Greeter/config.glacier2: -------------------------------------------------------------------------------- 1 | # Config file for glacier2router 2 | 3 | # The client-visible endpoint of the Glacier2 router. 4 | Glacier2.Client.Endpoints=tcp -p 4063 5 | 6 | # This Glacier router accepts any username/password combination. 7 | Glacier2.PermissionsVerifier=Glacier2/NullPermissionsVerifier 8 | 9 | # Turn on tracing. 10 | Glacier2.Client.Trace.Request=1 11 | Glacier2.Trace.Session=1 12 | Glacier2.Trace.RoutingTable=1 13 | -------------------------------------------------------------------------------- /csharp/Glacier2/Greeter/slice/Greeter.ice: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #pragma once 4 | 5 | module VisitorCenter 6 | { 7 | /// Represents a simple greeter. 8 | interface Greeter 9 | { 10 | /// Creates a personalized greeting. 11 | /// @param name The name of the person to greet. 12 | /// @return The greeting. 13 | ["cs:identifier:Greet"] // We prefer PascalCase for C# methods. 14 | string greet(string name); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /csharp/Ice/Cancellation/slice/Greeter.ice: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #pragma once 4 | 5 | module VisitorCenter 6 | { 7 | /// Represents a simple greeter. 8 | interface Greeter 9 | { 10 | /// Creates a personalized greeting. 11 | /// @param name The name of the person to greet. 12 | /// @return The greeting. 13 | ["amd"] // Asynchronous Method Dispatch. 14 | ["cs:identifier:Greet"] // We prefer PascalCase for C# methods. 15 | string greet(string name); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /csharp/Ice/Config/Server/Chatbot.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | using VisitorCenter; 4 | 5 | namespace Server; 6 | 7 | /// Chatbot is an Ice servant that implements Slice interface Greeter. 8 | internal class Chatbot : GreeterDisp_ 9 | { 10 | /// 11 | // Implements the abstract method Greet from the GreeterDisp_ class generated by the Slice compiler. 12 | // This variant is the synchronous implementation. 13 | public override string Greet(string name, Ice.Current current) 14 | { 15 | Console.WriteLine($"Dispatching greet request {{ name = '{name}' }}"); 16 | return $"Hello, {name}!"; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /csharp/Ice/Config/slice/Greeter.ice: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #pragma once 4 | 5 | module VisitorCenter 6 | { 7 | /// Represents a simple greeter. 8 | interface Greeter 9 | { 10 | /// Creates a personalized greeting. 11 | /// @param name The name of the person to greet. 12 | /// @return The greeting. 13 | ["cs:identifier:Greet"] // We prefer PascalCase for C# methods. 14 | string greet(string name); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /csharp/Ice/Context/slice/Greeter.ice: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #pragma once 4 | 5 | module VisitorCenter 6 | { 7 | /// Represents a simple greeter. 8 | interface Greeter 9 | { 10 | /// Creates a personalized greeting. 11 | /// @param name The name of the person to greet. 12 | /// @return The greeting. 13 | ["cs:identifier:Greet"] // We prefer PascalCase for C# methods. 14 | string greet(string name); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /csharp/Ice/CustomError/README.md: -------------------------------------------------------------------------------- 1 | # Ice Custom Error 2 | 3 | The Custom error demo shows how to define an exception in Slice, and how to throw and catch this exception. 4 | 5 | A Slice-defined exception should be seen as a custom error carried by the response instead of the expected return 6 | value--there is naturally no throwing across the network. 7 | 8 | You can build the client and server applications with: 9 | 10 | ```shell 11 | dotnet build 12 | ``` 13 | 14 | First start the Server program: 15 | 16 | ```shell 17 | cd Server 18 | dotnet run 19 | ``` 20 | 21 | In a separate terminal, start the Client program: 22 | 23 | ```shell 24 | cd Client 25 | dotnet run 26 | ``` 27 | -------------------------------------------------------------------------------- /csharp/Ice/Filesystem/README.md: -------------------------------------------------------------------------------- 1 | # Ice Filesystem 2 | 3 | This demo implements the filesystem application shown at the end of C# mapping chapter in the Ice manual. 4 | 5 | You can build the client and server applications with: 6 | 7 | ```shell 8 | dotnet build 9 | ``` 10 | 11 | First start the Server program: 12 | 13 | ```shell 14 | cd Server 15 | dotnet run 16 | ``` 17 | 18 | In a separate terminal, start the Client program: 19 | 20 | ```shell 21 | cd Client 22 | dotnet run 23 | ``` 24 | -------------------------------------------------------------------------------- /csharp/Ice/Forwarder/Server/Chatbot.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | using VisitorCenter; 4 | 5 | namespace Server; 6 | 7 | /// Chatbot is an Ice servant that implements Slice interface Greeter. 8 | internal class Chatbot : GreeterDisp_ 9 | { 10 | /// 11 | // Implements the abstract method Greet from the GreeterDisp_ class generated by the Slice compiler. 12 | // This variant is the synchronous implementation. 13 | public override string Greet(string name, Ice.Current current) 14 | { 15 | Console.WriteLine($"Dispatching greet request {{ name = '{name}' }}"); 16 | return $"Hello, {name}!"; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /csharp/Ice/Forwarder/slice/Greeter.ice: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #pragma once 4 | 5 | module VisitorCenter 6 | { 7 | /// Represents a simple greeter. 8 | interface Greeter 9 | { 10 | /// Creates a personalized greeting. 11 | /// @param name The name of the person to greet. 12 | /// @return The greeting. 13 | ["cs:identifier:Greet"] // We prefer PascalCase for C# methods. 14 | string greet(string name); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /csharp/Ice/Greeter/Server/Chatbot.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | using VisitorCenter; 4 | 5 | namespace Server; 6 | 7 | /// Chatbot is an Ice servant that implements Slice interface Greeter. 8 | internal class Chatbot : GreeterDisp_ 9 | { 10 | /// 11 | // Implements the abstract method Greet from the GreeterDisp_ class generated by the Slice compiler. 12 | // This variant is the synchronous implementation. 13 | public override string Greet(string name, Ice.Current current) 14 | { 15 | Console.WriteLine($"Dispatching greet request {{ name = '{name}' }}"); 16 | return $"Hello, {name}!"; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /csharp/Ice/Greeter/slice/Greeter.ice: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #pragma once 4 | 5 | module VisitorCenter 6 | { 7 | /// Represents a simple greeter. 8 | interface Greeter 9 | { 10 | /// Creates a personalized greeting. 11 | /// @param name The name of the person to greet. 12 | /// @return The greeting. 13 | ["cs:identifier:Greet"] // We prefer PascalCase for C# methods. 14 | string greet(string name); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /csharp/Ice/Greeter/slice/GreeterAMD.ice: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #pragma once 4 | 5 | module VisitorCenter 6 | { 7 | /// Represents a simple greeter. 8 | interface Greeter 9 | { 10 | /// Creates a personalized greeting. 11 | /// @param name The name of the person to greet. 12 | /// @return The greeting. 13 | ["amd"] // Asynchronous Method Dispatch. 14 | ["cs:identifier:Greet"] // We prefer PascalCase for C# methods. 15 | string greet(string name); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /csharp/Ice/Middleware/Server/Chatbot.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | using VisitorCenter; 4 | 5 | namespace Server; 6 | 7 | /// Chatbot is an Ice servant that implements Slice interface Greeter. 8 | internal class Chatbot : GreeterDisp_ 9 | { 10 | /// 11 | /// // Implements the abstract method Greet from the GreeterDisp_ class generated by the Slice compiler. 12 | public override string Greet(string name, Ice.Current current) 13 | { 14 | Console.WriteLine($"Dispatching greet request {{ name = '{name}' }}"); 15 | return $"Hello, {name}!"; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /csharp/Ice/Middleware/slice/Greeter.ice: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #pragma once 4 | 5 | module VisitorCenter 6 | { 7 | /// Represents a simple greeter. 8 | interface Greeter 9 | { 10 | /// Creates a personalized greeting. 11 | /// @param name The name of the person to greet. 12 | /// @return The greeting. 13 | ["cs:identifier:Greet"] // We prefer PascalCase for C# methods. 14 | string greet(string name); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /csharp/Ice/Optional/Server1/AtmosphericConditions.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | namespace ClearSky; 4 | 5 | /// Provides a custom ToString method for the AtmosphericConditions class generated by the Slice compiler. 6 | /// 7 | public partial class AtmosphericConditions 8 | { 9 | /// 10 | public override string ToString() => $"{{ Temperature = {Temperature}°C, Humidity = {Humidity}% }}"; 11 | } 12 | -------------------------------------------------------------------------------- /csharp/Ice/Optional/Server2/AtmosphericConditions.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | namespace ClearSky; 4 | 5 | /// Provides a custom ToString method for the AtmosphericConditions class generated by the Slice compiler. 6 | /// 7 | public partial class AtmosphericConditions 8 | { 9 | /// 10 | public override string ToString() 11 | { 12 | // If Pressure is null/not set, we display unknown with no unit. 13 | string pressureMb = Pressure is null ? "unknown" : $"{Pressure} mb"; 14 | return $"{{ Temperature = {Temperature}°C, Humidity = {Humidity}%, Pressure = {pressureMb} }}"; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /csharp/Ice/Secure/Server/Chatbot.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | using VisitorCenter; 4 | 5 | namespace Server; 6 | 7 | /// Chatbot is an Ice servant that implements Slice interface Greeter. 8 | internal class Chatbot : GreeterDisp_ 9 | { 10 | /// 11 | // Implements the abstract method Greet from the GreeterDisp_ class generated by the Slice compiler. 12 | // This variant is the synchronous implementation. 13 | public override string Greet(string name, Ice.Current current) 14 | { 15 | Console.WriteLine($"Dispatching greet request {{ name = '{name}' }}"); 16 | return $"Hello, {name}!"; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /csharp/Ice/Secure/slice/Greeter.ice: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #pragma once 4 | 5 | module VisitorCenter 6 | { 7 | /// Represents a simple greeter. 8 | interface Greeter 9 | { 10 | /// Creates a personalized greeting. 11 | /// @param name The name of the person to greet. 12 | /// @return The greeting. 13 | ["cs:identifier:Greet"] // We prefer PascalCase for C# methods. 14 | string greet(string name); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /csharp/IceBox/Greeter/slice/Greeter.ice: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #pragma once 4 | 5 | module VisitorCenter 6 | { 7 | /// Represents a simple greeter. 8 | interface Greeter 9 | { 10 | /// Creates a personalized greeting. 11 | /// @param name The name of the person to greet. 12 | /// @return The greeting. 13 | ["cs:identifier:Greet"] // We prefer PascalCase for C# methods. 14 | string greet(string name); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /csharp/IceDiscovery/Greeter/Server/Chatbot.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | using VisitorCenter; 4 | 5 | namespace Server; 6 | 7 | /// Chatbot is an Ice servant that implements Slice interface Greeter. 8 | internal class Chatbot : GreeterDisp_ 9 | { 10 | /// 11 | // Implements the abstract method Greet from the GreeterDisp_ class generated by the Slice compiler. 12 | // This variant is the synchronous implementation. 13 | public override string Greet(string name, Ice.Current current) 14 | { 15 | Console.WriteLine($"Dispatching greet request {{ name = '{name}' }}"); 16 | return $"Hello, {name}!"; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /csharp/IceDiscovery/Greeter/slice/Greeter.ice: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #pragma once 4 | 5 | module VisitorCenter 6 | { 7 | /// Represents a simple greeter. 8 | interface Greeter 9 | { 10 | /// Creates a personalized greeting. 11 | /// @param name The name of the person to greet. 12 | /// @return The greeting. 13 | ["cs:identifier:Greet"] // We prefer PascalCase for C# methods. 14 | string greet(string name); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /csharp/IceDiscovery/Replication/slice/Greeter.ice: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #pragma once 4 | 5 | module VisitorCenter 6 | { 7 | /// Represents a simple greeter. 8 | interface Greeter 9 | { 10 | /// Creates a personalized greeting. 11 | /// @param name The name of the person to greet. 12 | /// @return The greeting. 13 | ["cs:identifier:Greet"] // We prefer PascalCase for C# methods. 14 | string greet(string name); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /csharp/IceGrid/Greeter/config.admin: -------------------------------------------------------------------------------- 1 | # Config file for icegridadmin 2 | 3 | # A proxy to the Locator object hosted by the IceGrid registry. 4 | Ice.Default.Locator=IceGrid/Locator:tcp -h localhost -p 4061 5 | 6 | # Dummy username and password. They work because IceGrid is configured with the NullPermissionsVerifier. 7 | IceGridAdmin.Username=foo 8 | IceGridAdmin.Password=bar 9 | -------------------------------------------------------------------------------- /csharp/IceGrid/Greeter/slice/Greeter.ice: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #pragma once 4 | 5 | module VisitorCenter 6 | { 7 | /// Represents a simple greeter. 8 | interface Greeter 9 | { 10 | /// Creates a personalized greeting. 11 | /// @param name The name of the person to greet. 12 | /// @return The greeting. 13 | ["cs:identifier:Greet"] // We prefer PascalCase for C# methods. 14 | string greet(string name); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /csharp/IceGrid/IceBox/config.admin: -------------------------------------------------------------------------------- 1 | # Config file for icegridadmin 2 | 3 | # A proxy to the Locator object hosted by the IceGrid registry. 4 | Ice.Default.Locator=IceGrid/Locator:tcp -h localhost -p 4061 5 | 6 | # Dummy username and password. They work because IceGrid is configured with the NullPermissionsVerifier. 7 | IceGridAdmin.Username=foo 8 | IceGridAdmin.Password=bar 9 | -------------------------------------------------------------------------------- /csharp/IceGrid/IceBox/slice/Greeter.ice: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #pragma once 4 | 5 | module VisitorCenter 6 | { 7 | /// Represents a simple greeter. 8 | interface Greeter 9 | { 10 | /// Creates a personalized greeting. 11 | /// @param name The name of the person to greet. 12 | /// @return The greeting. 13 | ["cs:identifier:Greet"] // We prefer PascalCase for C# methods. 14 | string greet(string name); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /csharp/IceGrid/Query/config.admin: -------------------------------------------------------------------------------- 1 | # Config file for icegridadmin 2 | 3 | # A proxy to the Locator object hosted by the IceGrid registry. 4 | Ice.Default.Locator=IceGrid/Locator:tcp -h localhost -p 4061 5 | 6 | # Dummy username and password. They work because IceGrid is configured with the NullPermissionsVerifier. 7 | IceGridAdmin.Username=foo 8 | IceGridAdmin.Password=bar 9 | -------------------------------------------------------------------------------- /csharp/IceGrid/Query/slice/Greeter.ice: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #pragma once 4 | 5 | module VisitorCenter 6 | { 7 | /// Represents a simple greeter. 8 | interface Greeter 9 | { 10 | /// Creates a personalized greeting. 11 | /// @param name The name of the person to greet. 12 | /// @return The greeting. 13 | ["cs:identifier:Greet"] // We prefer PascalCase for C# methods. 14 | string greet(string name); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /csharp/IceStorm/Weather/Station/AtmosphericConditions.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | namespace ClearSky; 4 | 5 | /// Provides a custom ToString method for the AtmosphericConditions class generated by the Slice compiler. 6 | /// 7 | public partial class AtmosphericConditions 8 | { 9 | /// 10 | public override string ToString() => $"{{ Temperature = {Temperature}°C, Humidity = {Humidity}% }}"; 11 | } 12 | -------------------------------------------------------------------------------- /java/Glacier2/greeter/config.glacier2: -------------------------------------------------------------------------------- 1 | # Config file for glacier2router 2 | 3 | # The client-visible endpoint of the Glacier2 router. 4 | Glacier2.Client.Endpoints=tcp -p 4063 5 | 6 | # This Glacier router accepts any username/password combination. 7 | Glacier2.PermissionsVerifier=Glacier2/NullPermissionsVerifier 8 | 9 | # Turn on tracing. 10 | Glacier2.Client.Trace.Request=1 11 | Glacier2.Trace.Session=1 12 | Glacier2.Trace.RoutingTable=1 13 | -------------------------------------------------------------------------------- /java/Glacier2/greeter/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zeroc-ice/ice-demos/c823eb7c2a534347b61c85c3a3f9a72bcf60fe04/java/Glacier2/greeter/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /java/Glacier2/greeter/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.12.1-all.zip 4 | networkTimeout=10000 5 | validateDistributionUrl=true 6 | zipStoreBase=GRADLE_USER_HOME 7 | zipStorePath=wrapper/dists 8 | -------------------------------------------------------------------------------- /java/Glacier2/greeter/server/src/main/java/com/example/glacier2/greeter/server/Chatbot.java: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | package com.example.glacier2.greeter.server; 4 | 5 | import com.example.visitorcenter.Greeter; 6 | import com.zeroc.Ice.Current; 7 | 8 | /** 9 | * Chatbot is an Ice servant that implements Slice interface Greeter. 10 | */ 11 | class Chatbot implements Greeter 12 | { 13 | // Implements the abstract method 'greet' from the Greeter interface generated by the Slice compiler. 14 | public String greet(String name, Current current) { 15 | System.out.println("Dispatching greet request { name = '" + name + "' }"); 16 | return "Hello, " + name + "!"; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /java/Glacier2/greeter/slice/Greeter.ice: -------------------------------------------------------------------------------- 1 | // Copyright (c) ZeroC, Inc. 2 | 3 | #pragma once 4 | 5 | ["java:identifier:com.example.visitorcenter"] 6 | module VisitorCenter 7 | { 8 | /// Represents a simple greeter. 9 | interface Greeter 10 | { 11 | /// Creates a personalized greeting. 12 | /// @param name The name of the person to greet. 13 | /// @return The greeting. 14 | string greet(string name); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /java/Ice/android-greeter/app/src/main/res/mipmap-anydpi/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /java/Ice/android-greeter/app/src/main/res/mipmap-anydpi/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /java/Ice/android-greeter/app/src/main/res/mipmap-hdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zeroc-ice/ice-demos/c823eb7c2a534347b61c85c3a3f9a72bcf60fe04/java/Ice/android-greeter/app/src/main/res/mipmap-hdpi/ic_launcher.webp -------------------------------------------------------------------------------- /java/Ice/android-greeter/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zeroc-ice/ice-demos/c823eb7c2a534347b61c85c3a3f9a72bcf60fe04/java/Ice/android-greeter/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /java/Ice/android-greeter/app/src/main/res/mipmap-mdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zeroc-ice/ice-demos/c823eb7c2a534347b61c85c3a3f9a72bcf60fe04/java/Ice/android-greeter/app/src/main/res/mipmap-mdpi/ic_launcher.webp -------------------------------------------------------------------------------- /java/Ice/android-greeter/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zeroc-ice/ice-demos/c823eb7c2a534347b61c85c3a3f9a72bcf60fe04/java/Ice/android-greeter/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /java/Ice/android-greeter/app/src/main/res/mipmap-xhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zeroc-ice/ice-demos/c823eb7c2a534347b61c85c3a3f9a72bcf60fe04/java/Ice/android-greeter/app/src/main/res/mipmap-xhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /java/Ice/android-greeter/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zeroc-ice/ice-demos/c823eb7c2a534347b61c85c3a3f9a72bcf60fe04/java/Ice/android-greeter/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /java/Ice/android-greeter/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zeroc-ice/ice-demos/c823eb7c2a534347b61c85c3a3f9a72bcf60fe04/java/Ice/android-greeter/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /java/Ice/android-greeter/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zeroc-ice/ice-demos/c823eb7c2a534347b61c85c3a3f9a72bcf60fe04/java/Ice/android-greeter/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /java/Ice/android-greeter/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zeroc-ice/ice-demos/c823eb7c2a534347b61c85c3a3f9a72bcf60fe04/java/Ice/android-greeter/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /java/Ice/android-greeter/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zeroc-ice/ice-demos/c823eb7c2a534347b61c85c3a3f9a72bcf60fe04/java/Ice/android-greeter/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /java/Ice/android-greeter/app/src/main/res/values-night/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | -------------------------------------------------------------------------------- /java/Ice/android-greeter/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FF000000 4 | #FFFFFFFF 5 | 6 | -------------------------------------------------------------------------------- /java/Ice/android-greeter/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Ice Android Greeter 3 | -------------------------------------------------------------------------------- /java/Ice/android-greeter/app/src/main/res/values/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 |