zeroc.ice.v120 3.7.10

Prefix Reserved
dotnet add package zeroc.ice.v120 --version 3.7.10                
NuGet\Install-Package zeroc.ice.v120 -Version 3.7.10                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="zeroc.ice.v120" Version="3.7.10" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add zeroc.ice.v120 --version 3.7.10                
#r "nuget: zeroc.ice.v120, 3.7.10"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install zeroc.ice.v120 as a Cake Addin
#addin nuget:?package=zeroc.ice.v120&version=3.7.10

// Install zeroc.ice.v120 as a Cake Tool
#tool nuget:?package=zeroc.ice.v120&version=3.7.10                

Ice for C++

Getting started C++11 | Examples C++11 | Getting started C++98 | Examples C++98 | NuGet packages | Documentation | Building from source

The Ice framework provides everything you need to build networked applications, including RPC, pub/sub, server deployment, and more.

Ice for C++ is the C++ implementation of Ice.

Sample Code with the Ice C++11 Mapping

// Slice definitions (Hello.ice)

#pragma once

module Demo
{
    interface Hello
    {
        void sayHello();
    }
}
// Client application (Client.cpp)

#include <Ice/Ice.h>
#include <Hello.h>

using namespace std;
using namespace Demo;

int
main(int argc, char* argv[])
{
    try
    {
        const Ice::CommunicatorHolder ich(argc, argv);
        auto hello = Ice::checkedCast<HelloPrx>(ich->stringToProxy("hello:default -h localhost -p 10000"));
        hello->sayHello();
    }
    catch(const std::exception& ex)
    {
        cerr << ex.what() << endl;
        return 1;
    }
    return 0;
}
// Server application (Server.cpp)

#include <Ice/Ice.h>
#include <Printer.h>

using namespace std;

int main(int argc, char* argv[])
{
    try
    {
        // CtrlCHandler must be created before the communicator or any other threads
        // are started
        Ice::CtrlCHandler ctrlCHandler;

        const Ice::CommunicatorHolder ich(argc, argv);
        const auto& communicator = ich.communicator();

        ctrlCHandler.setCallback(
            [communicator](int)
            {
                communicator->shutdown();
            });

        auto adapter = communicator->createObjectAdapterWithEndpoints(
            "Hello",
            "default -h localhost -p 10000");
        adapter->add(make_shared<HelloI>(), Ice::stringToIdentity("hello"));
        adapter->activate();
        communicator->waitForShutdown();
    }
    catch(const std::exception& ex)
    {
        cerr << ex.what() << endl;
        return 1;
    }
    return 0;
}
// Printer implementation (Printer.h)

#include <Ice/Ice.h>
#include <Hello.h>

class Printer : public Demo::Hello
{
public:
    /**
     * Prints a message to the standard output.
     **/
    virtual void sayHello(const Ice::Current&) override
    {
        std::cout << "Hello World!" << std::endl;
    }
}

Sample Code with the Ice C++98 Mapping

// Slice definitions (Hello.ice)

#pragma once

module Demo
{
    interface Hello
    {
        void sayHello();
    }
}
// Client application (Client.cpp)

#include <Ice/Ice.h>
#include <Hello.h>

using namespace std;
using namespace Demo;

int main(int argc, char* argv[])
{
    try
    {
        Ice::CommunicatorHolder ich(argc, argv);
        HelloPrx hello = HelloPrx::checkedCast(
            ich->stringToProxy("hello:default -h localhost -p 10000"));
        hello->sayHello();
    }
    catch(const std::exception& ex)
    {
        cerr << ex.what() << endl;
        return 1;
    }
    return 0;
}
// Server application (Server.cpp)

#include <Ice/Ice.h>
#include <HelloI.h>

using namespace std;

int main(int argc, char* argv[])
{
    try
    {
        Ice::CommunicatorHolder ich(argc, argv);
        Ice::ObjectAdapterPtr adapter = ich->createObjectAdapterWithEndpoints(
            "Hello",
            "default -h localhost -p 10000");
        adapter->add(new HelloI, Ice::stringToIdentity("hello"));
        adapter->activate();
        ich->waitForShutdown();
    }
    catch(const std::exception& ex)
    {
        cerr << ex.what() << endl;
        return 1;
    }
    return 0;
}
// Printer implementation (Printer.h)

#include <Ice/Ice.h>
#include <Hello.h>

class Printer : public Demo::Hello
{
public:
    /**
     * Prints a message to the standard output.
     **/
    virtual void sayHello(const Ice::Current&)
    {
        std::cout << "Hello World!" << std::endl;
    }
}
Product Compatible and additional computed target framework versions.
native native is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on zeroc.ice.v120:

Package Downloads
zeroc.freeze.v120

Freeze C++ SDK for Visual Studio 2013 (v120). Freeze stores Ice objects in Berkeley DB databases.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
3.7.10 725 11/6/2023
3.7.9 870 3/24/2023
3.7.8 784 8/4/2022
3.7.7 1,336 1/26/2022
3.7.6 1,184 6/21/2021
3.7.5 2,755 1/26/2021
3.7.4 1,332 5/27/2020
3.7.3 1,857 10/15/2019
3.7.2 1,560 2/6/2019
3.7.1 1,788 4/23/2018
3.7.0 3,308 7/21/2017