/usr/include/omniORB4/internal/deferredRequest.h is in libomniorb4-dev 4.1.6-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | // -*- Mode: C++; -*-
// Package : omniORB
// deferredRequest.h Created on: 10/1998
// Author : David Riddoch (djr)
//
// Copyright (C) 1996-1999 AT&T Laboratories Cambridge
//
// This file is part of the omniORB library
//
// The omniORB library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free
// Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
// 02111-1307, USA
//
//
// Description:
// An invoker task used to implement deferred requests for the
// Dynamic Invocation Interface.
//
#ifndef __DEFERREDREQUEST_H__
#define __DEFERREDREQUEST_H__
#include <omniORB4/CORBA.h>
#include <request.h>
OMNI_NAMESPACE_BEGIN(omni)
class DeferredRequest : public omniTask {
public:
DeferredRequest(RequestImpl* request);
// Inserts task in the ORB invoker as an AnyTime task.
inline CORBA::Boolean poll_response() {
omni_tracedmutex_lock lock(pd_readyMutex);
return pd_ready;
}
// Returns true if the operation has completed, false otherwise.
inline void get_response() {
omni_tracedmutex_lock lock(pd_readyMutex);
while( !pd_ready ) pd_readyCondition.wait();
}
// Blocks until the operation has completed.
inline CORBA::Exception* get_exception() {
CORBA::Exception* e = pd_exception;
pd_exception = 0;
return e;
}
// If there is one, transfer ownership of a stored
// exception to the caller.
inline void die() { OMNIORB_ASSERT(pd_ready); delete this; }
virtual void execute();
protected:
virtual ~DeferredRequest();
RequestImpl* pd_request;
CORBA::Boolean pd_ready;
omni_tracedmutex pd_readyMutex;
omni_tracedcondition pd_readyCondition;
CORBA::Exception* pd_exception;
};
OMNI_NAMESPACE_END(omni)
#endif // __DEFERREDREQUEST_H__
|