blob: 1993cc01e911824f0d5837009b899318bc0fcc31 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
// **********************************************************************
//
// Copyright (c) 2002
// ZeroC, Inc.
// Billerica, MA, USA
//
// All Rights Reserved.
//
// Ice is free software; you can redistribute it and/or modify it under
// the terms of the GNU General Public License version 2 as published by
// the Free Software Foundation.
//
// **********************************************************************
#include <Ice/RoutingTable.h>
#include <Glacier/ServerBlobject.h>
using namespace std;
using namespace Ice;
using namespace Glacier;
Glacier::ServerBlobject::ServerBlobject(const ObjectAdapterPtr& clientAdapter) :
Glacier::Blobject(clientAdapter->getCommunicator()),
_clientAdapter(clientAdapter)
{
PropertiesPtr properties = _communicator->getProperties();
_traceLevel = properties->getPropertyAsInt("Glacier.Router.Trace.Server");
_forwardContext = properties->getPropertyAsInt("Glacier.Router.Server.ForwardContext") > 0;
_batchSleepTime = IceUtil::Time::milliSeconds(
properties->getPropertyAsIntWithDefault("Glacier.Router.Server.BatchSleepTime", 250));
}
bool
Glacier::ServerBlobject::reverse()
{
return true;
}
void
Glacier::ServerBlobject::destroy()
{
//
// No mutex protection necessary, destroy is only called after all
// object adapters have shut down.
//
_clientAdapter = 0;
Blobject::destroy();
}
void
Glacier::ServerBlobject::ice_invoke_async(const Ice::AMD_Object_ice_invokePtr& amdCB, const vector<Byte>& inParams,
const Current& current)
{
assert(_clientAdapter); // Destroyed?
ObjectPrx proxy = _clientAdapter->createReverseProxy(current.id);
assert(proxy);
invoke(proxy, amdCB, inParams, current);
}
|