blob: 7f892a69826327a42242ff6a5d8760a43eff035f (
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
|
// **********************************************************************
//
// Copyright (c) 2001
// Mutable Realms, Inc.
// Huntsville, AL, USA
//
// All Rights Reserved
//
// **********************************************************************
#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();
}
bool
Glacier::ServerBlobject::ice_invoke(const vector<Byte>& inParams, vector<Byte>& outParams, const Current& current)
{
assert(_clientAdapter); // Destroyed?
ObjectPrx proxy = _clientAdapter->createReverseProxy(current.id);
assert(proxy);
return invoke(proxy, inParams, outParams, current);
}
|