zeroc.ice.v140
3.7.10
Prefix Reserved
dotnet add package zeroc.ice.v140 --version 3.7.10
NuGet\Install-Package zeroc.ice.v140 -Version 3.7.10
<PackageReference Include="zeroc.ice.v140" Version="3.7.10" />
paket add zeroc.ice.v140 --version 3.7.10
#r "nuget: zeroc.ice.v140, 3.7.10"
// Install zeroc.ice.v140 as a Cake Addin #addin nuget:?package=zeroc.ice.v140&version=3.7.10 // Install zeroc.ice.v140 as a Cake Tool #tool nuget:?package=zeroc.ice.v140&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 | Versions Compatible and additional computed target framework versions. |
---|---|
native | native is compatible. |
This package has no dependencies.
NuGet packages (2)
Showing the top 2 NuGet packages that depend on zeroc.ice.v140:
Package | Downloads |
---|---|
zeroc.freeze.v140
Freeze C++ SDK for Visual Studio 2015 (v140). Freeze stores Ice objects in Berkeley DB databases. |
|
zeroc.datastorm.v140
DataStorm C++ SDK for Visual Studio 2015 (v140). |
GitHub repositories
This package is not used by any popular GitHub repositories.