/usr/include/omniORB4/internal/context.h is in libomniorb4-dev 4.1.6-2.
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 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 | // -*- Mode: C++; -*-
// Package : omniORB
// context.h Created on: 9/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:
//
/*
$Log$
Revision 1.1.2.3 2001/11/27 14:35:08 dpg1
Context, DII fixes.
Revision 1.1.2.2 2001/11/06 15:41:36 dpg1
Reimplement Context. Remove CORBA::Status. Tidying up.
Revision 1.1.2.1 2001/04/18 17:18:18 sll
Big checkin with the brand new internal APIs.
These files were relocated and scoped with the omni namespace.
Revision 1.5.2.2 2000/09/27 17:25:40 sll
Changed include/omniORB3 to include/omniORB4.
Revision 1.5.2.1 2000/07/17 10:35:40 sll
Merged from omni3_develop the diff between omni3_0_0_pre3 and omni3_0_0.
Revision 1.6 2000/07/13 15:26:02 dpg1
Merge from omni3_develop for 3.0 release.
Revision 1.4.6.1 1999/09/22 14:26:29 djr
Major rewrite of orbcore to support POA.
Revision 1.4 1999/05/25 17:48:50 sll
Now use _CORBA_PseudoValue_Sequence.
Revision 1.3 1999/04/21 11:22:14 djr
CORBA::Context is a friend of ContextImpl
*/
#ifndef __CONTEXT_H__
#define __CONTEXT_H__
OMNI_NAMESPACE_BEGIN(omni)
class ContextImpl : public CORBA::Context {
public:
ContextImpl(const char* name, CORBA::Context_ptr parent);
virtual ~ContextImpl();
virtual const char* context_name() const;
virtual CORBA::Context_ptr parent() const;
virtual void create_child(const char*, CORBA::Context_out);
virtual void set_one_value(const char*, const CORBA::Any&);
virtual void set_values(CORBA::NVList_ptr);
virtual void delete_values(const char*);
virtual void get_values(const char* start_scope,
CORBA::Flags op_flags,
const char* pattern,
CORBA::NVList_out values);
virtual CORBA::Boolean NP_is_nil() const;
virtual CORBA::Context_ptr NP_duplicate();
///////////////////
// omni internal //
///////////////////
void insert_single_consume(char* name, char* value);
// Inserts a single entry, consuming the given name/value pair.
void decrRefCount();
// Decrease the reference count, and delete this context
// if there are no more references or children.
// Must not hold <pd_lock>.
static void releaseDefault();
// Release the default context, if there is one. Called on ORB destruction.
private:
friend class CORBA::Context;
ContextImpl(const ContextImpl&); // not implemented
ContextImpl& operator=(const ContextImpl&); // not implemented
int matchPattern(const char* pat, CORBA::ULong& bottom,
CORBA::ULong& top) const;
// Returns 1 if finds a match, or 0 if no match.
// The index of the first match is in <bottom>, and the last
// match + 1 in <top>.
// Must hold <pd_lock>.
static void add_values(ContextImpl* c, CORBA::Flags op_flags,
const char* pattern, int wildcard,
CORBA::NVList_ptr val_list);
// If( wildcard ), then pattern has terminating '*', and all matching
// name-value pairs are added to val_list. Recurses on parent of context
// if allowed by op_flags.
// If( !wildcard ), looks for a single match starting at the given
// context, looking in parent if it is not found and op_flags allows.
void check_context_name(const char* n);
void check_property_name(const char* n);
// These check that the given (non-null) identifier is a valid context
// name or property name respectively.
void addChild(ContextImpl* c) {
omni_tracedmutex_lock lock(pd_lock);
c->pd_nextSibling = pd_children;
pd_children = c;
}
// Add the given ContextImpl into the list of children.
void loseChild(ContextImpl* child);
// The given child is dying - remove from the list of dependents. This
// must only be called by a child of this context from its d'tor.
struct Entry {
char* name;
char* value;
};
typedef _CORBA_PseudoValue_Sequence<Entry> EntrySeq;
CORBA::String_var pd_name; // set once - never changes
CORBA::Context_ptr pd_parent; // set once - never changes
EntrySeq pd_entries; // sorted list of entries
ContextImpl* pd_children; // list of Ctxts which depend on this
ContextImpl* pd_nextSibling; // linked list of siblings
unsigned pd_refCount;
omni_tracedmutex pd_lock;
// Manages access to <pd_entries>, <pd_children>, <pd_refCount> and the
// <pd_nextSibling> pointers in its children.
};
OMNI_NAMESPACE_END(omni)
#endif // __CONTEXT_H__
|