Server.cpp 1.02 KB
//
// Copyright (c) ZeroC, Inc. All rights reserved.
//

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

using namespace std;
using namespace Demo;

class PrinterI : public Printer
{
public:
    virtual void printString(string s, const Ice::Current&) override;
    void shutdown(const Ice::Current& c) override
    {
      cout << "Shutting down..." << endl;
      c.adapter->getCommunicator()->shutdown();
    }
};

void
PrinterI::printString(string s, const Ice::Current& c)
{
    cout << c.id.name << ":" << s << endl;
}


int
main(int argc, char* argv[])
{
    try
    {
        Ice::CommunicatorHolder ich(argc, argv);
        auto adapter = ich->createObjectAdapterWithEndpoints("SimplePrinterAdapter", "default -p 10000");
        auto defaultServant = make_shared<PrinterI>();
        adapter->addDefaultServant(defaultServant,"");
        adapter->activate();

        ich->waitForShutdown();
    }
    catch(const std::exception& e)
    {
        cerr << e.what() << endl;
        return 1;
    }
    return 0;
}