FARGOS/VISTA Object Management Environment Core  ..
FARGOS/VISTA Object Management Environment Core Table of Contents
OMEoid.h
Go to the documentation of this file.
1 #ifndef _OME_OID_H
2 #define _OME_OID_H "$Id: OMEoid.h 406 2020-07-12 05:07:33Z geoff $"
4 
14 #include <iostream> /* for debugging */
15 # include <memory.h>
16 
17 
18 # include <OMErefCount.h>
19 # include <OMEassoc.h>
20 # include <OMEprocInfo.h>
21 
22 typedef class OMEbaseType *OMEbaseTypeP;
23 
24 
27 struct OMEoidID {
28  uint32_t instanceIndex;
29  uint32_t classVersionID;
30  uint32_t classHashIndex;
32 };
33 
34 template <typename STREAMTYPE> inline STREAMTYPE &operator<<(STREAMTYPE &o, const OMEoidID &data)
35 {
36  o << "[" << data.instanceIndex << ":";
37  o << data.classVersionID << ":";
38  o << data.classHashIndex << ":";
39  o << data.birthplace;
40  o << "]";
41  return (o);
42 }
43 
44 // defines abstract interface for OMEoid storage, hiding internal/external
49 protected:
51 
52  explicit OMEoidStorageBase(const OMEassoc &aclData) : acl(aclData)
53  {
54  }
55 public:
56 
57  virtual ~OMEoidStorageBase() {}
58 
59  virtual OMEstring *encodeOID(const class OMEencodeBuffer *bfr) const = 0;
60 
61  virtual void setProxyObject(const class OMEoid &proxy, const OMEstring &method) = 0;;
62 
63  virtual const class OMEoid *getProxyObject(const OMEstring **method) const = 0;
64 
65  virtual void getObjectOID(OMEoidID *result) const = 0;
66 
67  virtual const class OMEobject *getInstanceInMemory() const = 0;
68 
69  // NOTE: this was virtual, but never exploited
70  const OMEassoc &getObjectACL() const
71  {
72  return (acl);
73  }
74 
75 }; // end class OMEoidStorageBase
76 
79 class OMEoidStorage final : public OMEreferenceCount
80 {
81  friend class OMEoid;
82  friend class OMEoidStorageInternal;
83  friend class OMEoidStorageExternal;
85 
86 public:
87  enum OMErefType {
88  _NOT_SET = 0,
89  internal = 1,
91  };
92  template <typename STREAMTYPE> static STREAMTYPE &OMEdumpOIDchain(STREAMTYPE &outputStream);
93 
94  static OMEstring *OMEencodeOID(const OMEoidID &, const OMEassoc &,
95  int encodingVersion);
96 
97  static int OMEdecodeOID(uint_fast32_t version,
98  const OMEstring *encodedData, size_t *offset,
99  OMEoidID *resultOID, OMEassoc **resultACL);
100 
101  // findReference implemented OMEoidInt.cpp/OMEoidIntStub.cpp
102  static OMEoidStorage *findReference(const OMEoidID *id,
103  const OMEassoc *acl = nullptr, OMEoidStorage **sameEntity = nullptr,
104  bool externalOnly = false);
105 
106  static int convertExternalReferences(const OMEoidID *id, class OMEobject *o);
107 
108 private:
112 
113  void addLink();
114 
115  void removeLink();
116 
117  // A null initializer is an illegal call, but is needed to complete
118  // template for OMErefCount as enforced by Visual C++.
120  {
121  // bogus call needed for VC++
122  std::cerr << "OMEoidStorage default init\n";
123  nextInChain = nullptr;
124  prevInChain = nullptr;
125  }
126 
127 protected:
129 
130  void convertInternalToExternalRef(const OMEoidID *entity,
131  const class OMEoidStorageInternal *checkPtr);
132 
133 public:
135 
136  // default initializer
137  explicit OMEoidStorage(class OMEoidStorageInternal *ptr);
138 
139  explicit OMEoidStorage(class OMEoidStorageExternal *ptr);
140 
141  // destructor
142  ~OMEoidStorage();
143 
144  OMEstring *encodeOID(const class OMEencodeBuffer *bfr) const
145  {
146  return (storageRef->encodeOID(bfr));
147  }
148 
149  void getObjectOID(OMEoidID *arg) const
150  {
151  storageRef->getObjectOID(arg);
152  }
153 
154  const OMEassoc &getObjectACL() const
155  {
156  return (storageRef->getObjectACL());
157  }
158 
159  const class OMEoid *getProxyObject(const OMEstring **method) const
160  {
161  return (storageRef->getProxyObject(method));
162  }
163 
164  void setProxyObject(const class OMEoid &proxy, const OMEstring &method)
165  {
166  storageRef->setProxyObject(proxy, method);
167  }
168 
169  const class OMEobject *getInstanceInMemory() const
170  {
171  return (storageRef->getInstanceInMemory());
172  }
173 
174  // SHOULD NEVER BE CALLED: OID's are immutable...
175  virtual OMEreferenceCount *deepCopy() const override
176  {
177  std::cerr << "OIDstorage::deepCopy called!\n";
178  return (const_cast<OMEoidStorage *>(this));
179  }
180 
181  bool operator==(const OMEoidStorage &arg) const;
182 
183  bool operator!=(const OMEoidStorage &arg) const;
184 
185  template <typename STREAMTYPE> STREAMTYPE &outputOnStream(STREAMTYPE &outputStream, int_fast16_t indent = 0,
186  bool fullInfo = false) const;
187 
188  bool objectIsLocal() const; // not implemented
189 
191 }; // end class OMEoidStorage
192 
193 
196 class OME_DLL_EXPORT OMEoid final : public OMEreferenceToData<OMEoidStorage>
197 {
198  friend class OMEapi;
199 
200 public:
201  static OMEoid *decodeOID(uint32_t ver, const OMEstring *encodedData,
202  size_t *offset);
203 
204 private:
205  explicit OMEoid(OMEoidStorage *s);
206 
207 public:
208  // NO DEFAULT INITIALIZER
209  // copy initializer
210  explicit OMEoid(const OMEoid &org) : OMEreferenceToData<OMEoidStorage>(org.data)
211  {
212 // data = org.data;
213 // addReadOnlyReference();
214  }
215 
216  // implemented in OMEoidInt.cpp
217  OMEoid(class OMEobject *o, const OMEassoc &acl);
218 
219  ~OMEoid();
220 
221  OMEstring *encodeOID(const class OMEencodeBuffer *bfr) const
222  {
223  return (data->encodeOID(bfr));
224  }
225 
226  // ASSIGNMENT
227  OMEoid &operator=(const OMEoid &arg)
228  {
229  if (this->data == arg.data) {
230  return (*this); // asignment to self...
231  }
232  arg.data->addReadOnlyReference();
233  dropReference();
234  data = arg.data;
235  return (*this);
236  }
237 
238  OMEoid &operator=(const OMEoid *arg)
239  {
240  (*this) = (*arg);
241  return (*this);
242  }
243 
244  // COMPARISON
245  bool operator==(const OMEoid &arg) const
246  {
247  // if pointing at the same entity, must be equal...
248  if (data == arg.data) {
249  return (true);
250  }
251  return (*data == *arg.data);
252  }
253 
254  bool operator!=(const OMEoid &arg) const
255  {
256  // if pointing at the same entity, must be equal...
257  if (data == arg.data) {
258  return (false);
259  }
260  return (*data != *arg.data);
261  }
262 
263  OMEoid *deepCopy() const
264  {
265  // OIDs are immutable, so copy ourselves...
266  OMEoid *copy = new OMEoid(*this);
267  return (copy);
268  }
269 
270  const class OMEoid *getProxyObject(const OMEstring **method) const
271  {
272  return (data->getProxyObject(method));
273  }
274 
275  void setProxyObject(const OMEoid &proxy, const OMEstring &method)
276  {
277  data->setProxyObject(proxy, method);
278  }
279 
280  const class OMEobject *getInstanceInMemory() const
281  {
282  return (data->getInstanceInMemory());
283  }
284 
285  const OMEassoc &getObjectACL() const
286  {
287  return (data->getObjectACL());
288  }
289 
290  void getObjectOID(OMEoidID *result) const
291  {
292  data->getObjectOID(result);
293  }
294 
295  bool refersTo(const class OMEobject *obj) const OME_ALWAYS_INLINE
296  {
297  return (getInstanceInMemory() == obj);
298  }
299 
301  {
302  if (data->referenceType != OMEoidStorage::internal) {
303  return (true);
304  }
305  return (false);
306  }
307 
308  template <typename STREAMTYPE> STREAMTYPE &outputOnStream(STREAMTYPE &outputStream, int_fast16_t indent = 0,
309  bool fullInfo = false) const
310  {
311  data->outputOnStream(outputStream, indent, fullInfo);
312  return (outputStream);
313  }
314 }; // end class OMEoid
315 
316 template <typename STREAMTYPE> inline STREAMTYPE &operator<<(STREAMTYPE &outputStream, const OMEoid &data)
317 {
318  data.outputOnStream(outputStream, 0);
319  return (outputStream);
320 }
321 
325  public OMEoidStorageBase
326 {
327  friend class OMEobject;
328  friend class OMEoidStorage;
329 
330 private:
331  const class OMEobject *objectRecord;
332  // all internal references are linked in a chain originating from
333  // the object they reference...
336 
338  {
339  ownedBy = rec;
340  }
341 
342  void noteReferencedObjectDeleted(OMEoidID *entity);
343 
344 public:
345  void doDestructorImplementation() OME_USED;
346 
348 
350  {
351  doDestructorImplementation();
352  }
353 
354  virtual OMEstring *encodeOID(const class OMEencodeBuffer *bfr) const override;
355 
356  // paged out records will have objectProxy != InstanceInMemory
357  virtual const OMEoid *getProxyObject(const OMEstring **method) const override;
358 
359  virtual void setProxyObject(const OMEoid &proxy, const OMEstring &method) override;
360  virtual void getObjectOID(OMEoidID *) const override;
361 
362  bool operator==(const OMEoidStorageInternal &arg) const
363  {
364  if (objectRecord != arg.objectRecord) {
365  return (false);
366  }
367  if (acl != arg.acl) {
368  return (false);
369  }
370  return (true);
371  }
372 
373  bool operator!=(const OMEoidStorageInternal &arg) const
374  {
375  if (objectRecord != arg.objectRecord) {
376  return (true);
377  }
378  if (acl != arg.acl) {
379  return (true);
380  }
381  return (false);
382  }
383 
384  bool operator==(const OMEoidStorage &arg) const
385  {
387  return (false);
388  }
389  const OMEoidStorageInternal *p = dynamic_cast<const OMEoidStorageInternal *>(arg.storageRef);
390  return (*this == *p);
391  }
392 
393  bool operator!=(const OMEoidStorage &arg) const
394  {
396  return (true);
397  }
398  const OMEoidStorageInternal *p = dynamic_cast<const OMEoidStorageInternal *>(arg.storageRef);
399  return (*this != *p);
400  }
401 
402  virtual const class OMEobject *getInstanceInMemory() const override
403  {
404  return (objectRecord);
405  }
406 
407 
408  template <typename STREAMTYPE> STREAMTYPE &outputOnStream(STREAMTYPE &outputStream, int_fast16_t indent = 0,
409  bool fullInfo = false) const;
410 }; // end class OMEoidStorageInternal
411 
412 
416  public OMEoidStorageBase
417 {
418  friend class OMEoidStorage;
419 
420 private:
424 
425 public:
426  OMEoidStorageExternal(const OMEoidID *data, const OMEassoc &acl);
427 
428  OMEoidStorageExternal(const OMEoidStorageExternal *existing, const OMEassoc &acl);
429 
431 
432  template <typename STREAMTYPE> STREAMTYPE &outputOnStream(STREAMTYPE &outputStream, int_fast16_t indent = 0,
433  bool fullInfo = false) const;
434 
435  virtual OMEstring *encodeOID(const class OMEencodeBuffer *bfr) const override;
436 
437  virtual void setProxyObject(const OMEoid &pager, const OMEstring &method) override
438  {
439  OME_DELETE_OBJECT(pagerObject);
440  pagerObject = new OMEoid(pager);
441  encapsulationMethodName = method;
442  }
443 
444  virtual const OMEoid *getProxyObject(const OMEstring **method) const override
445  {
446  *method = &encapsulationMethodName;
447  return (pagerObject);
448  }
449 
450  virtual void getObjectOID(OMEoidID *result) const override
451  {
452  *result = oidData;
453  }
454 
455  virtual const class OMEobject *getInstanceInMemory() const override
456  {
457  return (nullptr);
458  }
459 
460  bool operator==(const OMEoidStorage &arg) const
461  {
463  return (false);
464  }
465  const OMEoidStorageExternal *p = dynamic_cast<OMEoidStorageExternal *>(arg.storageRef);
466  int rc = memcmp(&oidData, &(p->oidData), sizeof(oidData));
467  return (rc == 0);
468  }
469 
470  bool operator!=(const OMEoidStorage &arg) const
471  {
473  return (true);
474  }
475  const OMEoidStorageExternal *p = dynamic_cast<OMEoidStorageExternal *>(arg.storageRef);
476  int rc = memcmp(&oidData, &(p->oidData), sizeof(oidData));
477  return (rc != 0);
478  }
479 
480 
481 }; // end class OMEoidStorageExternal
482 
484 {
486  storageRef = ptr;
487  addLink();
488 }
489 
492 #endif
493 /* vim: set expandtab shiftwidth=4 tabstop=4: */
OMEoidStorageBase
Abstract interface for storage of OMEoid objects that hides the internal vs. external implementation.
Definition: OMEoid.h:48
OMEoid::operator=
OMEoid & operator=(const OMEoid *arg)
Assignment of OMEoid pointer.
Definition: OMEoid.h:238
OMEoidStorageInternal::ownedBy
OMEoidStorage * ownedBy
Definition: OMEoid.h:335
OMErefCount.h
OME reference count implementation.
OMEencodeBuffer::condenseIntoString
OMEstring * condenseIntoString(bool includeVersionID)
Serialize all OMEencodeBufferElement items into a single string.
Definition: OMEencode.cpp:75
OMEprocInfo.h
OME process information implementation.
OME_NLM
@ OME_NLM
Definition: OMEmanifests.h:90
OMEoidStorageExternal::setProxyObject
virtual void setProxyObject(const OMEoid &pager, const OMEstring &method) override
Definition: OMEoid.h:437
OME_FLOAT
@ OME_FLOAT
Definition: OMEmanifests.h:82
OME_DELETE_OBJECT
#define OME_DELETE_OBJECT(ptr)
Definition: OMEmanifests.h:159
OMEoidStorageBase::getObjectACL
const OMEassoc & getObjectACL() const
Definition: OMEoid.h:70
OMEoid::getObjectACL
const OMEassoc & getObjectACL() const
Definition: OMEoid.h:285
OMEoid::operator=
OMEoid & operator=(const OMEoid &arg)
Assignment of OMEoid reference.
Definition: OMEoid.h:227
OMEprofileCounter< uint32_t >
s
const char s[]
Definition: t.cpp:4
OMEoidStorageBase::getInstanceInMemory
virtual const class OMEobject * getInstanceInMemory() const =0
OMEoidStorage::storageRef
class OMEoidStorageBase * storageRef
Definition: OMEoid.h:128
OME_CRITICAL_SECTION_OID_REFERENCE
@ OME_CRITICAL_SECTION_OID_REFERENCE
Definition: OMEmutex.h:42
OMEoidStorageExternal::encapsulationMethodName
OMEstring encapsulationMethodName
Definition: OMEoid.h:422
OMEoid::setProxyObject
void setProxyObject(const OMEoid &proxy, const OMEstring &method)
Set object Id of meta/proxy object.
Definition: OMEoid.h:275
OMEoidStorage::deepCopy
virtual OMEreferenceCount * deepCopy() const override
Definition: OMEoid.h:175
OMEentityID::hostNameHash
uint32_t hostNameHash
Definition: OMEprocInfo.h:24
OMEstartCriticalSection
void OMEstartCriticalSection(eOMEcriticalSectionLabel regionID)
Definition: OMEmutex.cpp:217
OMEentityID::bootTime
uint32_t bootTime
Definition: OMEprocInfo.h:22
OMEoidStorage::~OMEoidStorage
~OMEoidStorage()
Definition: OMEoid.cpp:150
OMEoidStorage::operator!=
bool operator!=(const OMEoidStorage &arg) const
Definition: OMEoid.cpp:184
OMEoid::getProxyObject
const class OMEoid * getProxyObject(const OMEstring **method) const
Get object Id of meta/proxy object.
Definition: OMEoid.h:270
OMEoid.h
OME object identifier implementation.
OMEentityID::processID
uint32_t processID
Definition: OMEprocInfo.h:23
OMEoid::~OMEoid
~OMEoid()
Definition: OMEoid.cpp:343
OMEoidStorageExternal::operator!=
bool operator!=(const OMEoidStorage &arg) const
Definition: OMEoid.h:470
OMEruntime.h
OMEassoc
Implements associative array of OMEtype elements.
Definition: OMEassoc.h:112
OMEoid::OMEoid
OMEoid(OMEoidStorage *s)
Definition: OMEoid.cpp:337
OMEoidStorage::removeLink
void removeLink()
Definition: OMEoid.cpp:132
_OME_OID_H
#define _OME_OID_H
Definition: tmp.o.cpp:971
OMEoidStorage::getInstanceInMemory
const class OMEobject * getInstanceInMemory() const
Definition: OMEoid.h:169
OMEstring
Implements text and binary string storage.
Definition: OMEstring.h:305
OMEoidStorageBase::encodeOID
virtual OMEstring * encodeOID(const class OMEencodeBuffer *bfr) const =0
OMEencode.h
OME type encoding routines.
OMEencodeBuffer
Buffer into which OMEtype data is encoded.
Definition: OMEencode.h:54
OMEoidStorageExternal::oidData
OMEoidID oidData
Definition: OMEoid.h:421
OME_CHARSET_UNICODE
@ OME_CHARSET_UNICODE
Definition: OMEstring.h:31
OMEreferenceToData< OMEoidStorage >::data
OMEoidStorage * data
Definition: OMErefCount.h:82
OMEoid::operator!=
bool operator!=(const OMEoid &arg) const
Definition: OMEoid.h:254
OMEtype::value
union OMEtype::@26 value
OME_CHARSET_ASCII
@ OME_CHARSET_ASCII
Definition: OMEstring.h:28
OMEtype
Fundamental ANY type for FARGOS/VISTA Object Management Environment.
Definition: OMEbaseType.h:250
OMEassoc::indexExists
bool indexExists(const ASSOC_HASH_KEY_t i) const
Definition: OMEassoc.h:226
OMEobject
Base class and abstract interface for an object within a FARGOS/VISTA Object Management Environment.
Definition: OMEobject.h:22
OME_DOUBLE
@ OME_DOUBLE
Definition: OMEmanifests.h:83
OMEoidStorage::external
@ external
Definition: OMEoid.h:90
OMEoidStorage::OMEdecodeOID
static int OMEdecodeOID(uint_fast32_t version, const OMEstring *encodedData, size_t *offset, OMEoidID *resultOID, OMEassoc **resultACL)
Definition: OMEoid.cpp:282
OMEoidStorage::encodeOID
OMEstring * encodeOID(const class OMEencodeBuffer *bfr) const
Definition: OMEoid.h:144
OMEoidStorageExternal::getObjectOID
virtual void getObjectOID(OMEoidID *result) const override
Definition: OMEoid.h:450
connectToDatabase
int connectToDatabase(OMEthread *thread, OMEtype &result, const OMEtype &id, const OMEtype &dsn, const OMEtype &name, const OMEtype &passwd)
Definition: OMEodbcInt.cpp:823
OMEtype::s
class OMEstring * s
Definition: OMEbaseType.h:299
OMEoidStorageExternal::OMEoidStorageExternal
OMEoidStorageExternal(const OMEoidID *data, const OMEassoc &acl)
Definition: OMEoid.cpp:208
allocateDatabaseConnection
int allocateDatabaseConnection(OMEthread *thread, OMEtype &result)
Definition: OMEodbcInt.cpp:793
OMEoidID::classVersionID
uint32_t classVersionID
Definition: OMEoid.h:29
OMEoidStorage::objectIsLocal
bool objectIsLocal() const
OMEoidStorageInternal::operator!=
bool operator!=(const OMEoidStorageInternal &arg) const
Definition: OMEoid.h:373
OMEoidStorage::OMEoid
friend class OMEoid
Definition: OMEoid.h:81
OMEtype::i
int32_t i
Definition: OMEbaseType.h:285
OMEtype::array
class OMEarray * array
Definition: OMEbaseType.h:294
OMEoid::OMEoid
OMEoid(const OMEoid &org)
Definition: OMEoid.h:210
OMEreferenceToData
Templated type-specific reference to a reference-counted object.
Definition: OMErefCount.h:79
getResultTable
int getResultTable(OMEthread *thread, OMEtype &result, const OMEtype &id)
Definition: OMEodbcInt.cpp:896
OMEoidStorageBase::getObjectOID
virtual void getObjectOID(OMEoidID *result) const =0
OMEoidStorage::addLink
void addLink()
Definition: OMEoid.cpp:117
OMEreferenceCount
Base class for reference-counted data.
Definition: OMErefCount.h:31
OMEentityID
Identifies an instance of an OME process.
Definition: OMEprocInfo.h:19
OMEoidStorage::convertInternalToExternalRef
void convertInternalToExternalRef(const OMEoidID *entity, const class OMEoidStorageInternal *checkPtr)
Definition: OMEoidInt.cpp:175
OMEoidStorage::operator==
bool operator==(const OMEoidStorage &arg) const
Definition: OMEoid.cpp:164
srcID
const char srcID[]
Definition: catSym.c:17
OME_STRING
@ OME_STRING
Definition: OMEmanifests.h:85
OMEoidStorage::OMErefType
OMErefType
Definition: OMEoid.h:87
OMEstring::noteCharacterSet
void noteCharacterSet(uint_fast8_t c)
Definition: OMEstring.h:386
executeStatement
int executeStatement(OMEthread *thread, OMEtype &result, const OMEtype &id)
Definition: OMEodbcInt.cpp:882
OMEoidStorageInternal::operator!=
bool operator!=(const OMEoidStorage &arg) const
Definition: OMEoid.h:393
OMEoid::deepCopy
OMEoid * deepCopy() const
Definition: OMEoid.h:263
OMEoidStorage
Reference-counted link to OMEoidStorageBase object.
Definition: OMEoid.h:79
OMEoidStorageBase::acl
OMEassoc acl
Definition: OMEoid.h:50
OMEtype::encode
int encode(class OMEencodeBuffer *) const
Add the encoding of an OMEtype into an OMEencodeBuffer.
Definition: OMEencode.cpp:189
OMEoidStorage::convertExternalReferences
static int convertExternalReferences(const OMEoidID *id, class OMEobject *o)
Definition: OMEoidIntStub.cpp:108
OMEoidStorage::nextInChain
OMEoidStorage * nextInChain
Definition: OMEoid.h:110
OMEapi
The standard mechanism for attaching external processes to a FARGOS/VISTA Object Management Environme...
Definition: OMEapi.h:83
OME_NIL
@ OME_NIL
Definition: OMEmanifests.h:78
OME_DEFAULT_CHARSET
@ OME_DEFAULT_CHARSET
Definition: OMEstring.h:35
OME_EXPECT_TRUE
#define OME_EXPECT_TRUE(expr)
Annotation macro for conditional expression expected to be true.
Definition: compiler_hints.h:541
OME_OID
@ OME_OID
Definition: OMEmanifests.h:84
operator<<
STREAMTYPE & operator<<(STREAMTYPE &o, const OMEoidID &data)
Definition: OMEoid.h:34
OMEstring::getCharacterSet
uint_fast8_t getCharacterSet() const
Definition: OMEstring.h:396
OMEoidStorageInternal::setOwningRecord
void setOwningRecord(OMEoidStorage *rec) OME_ALWAYS_INLINE
Definition: OMEoid.h:337
OMEassoc.h
OME associative array implementation.
OMEoidStorageExternal::getInstanceInMemory
virtual const class OMEobject * getInstanceInMemory() const override
Definition: OMEoid.h:455
OMEoidStorageInternal
Interface to an internal OME object.
Definition: OMEoid.h:324
OMEtype.h
OME fundamental type implementation.
OMEoidStorage::startOfChain
static OMEoidStorage * startOfChain
Definition: OMEoid.h:109
OMEoid::getObjectOID
void getObjectOID(OMEoidID *result) const
Definition: OMEoid.h:290
OMEoidStorage::outputOnStream
STREAMTYPE & outputOnStream(STREAMTYPE &outputStream, int_fast16_t indent=0, bool fullInfo=false) const
Definition: OMEoutputOnStream.h:253
OMEstring::length
size_t length() const
Definition: OMEstring.h:401
OMEcurrentProcessInfo
OMEthisProcessInfo OMEcurrentProcessInfo
Automatic instantiation of OMEthisProcessInfo. When properly linked, the C++ static constructor mecha...
Definition: OMEprocInfo.cpp:217
OMEoidStorage::getObjectACL
const OMEassoc & getObjectACL() const
Definition: OMEoid.h:154
OME_USED
const char srcID[] OME_USED
Definition: tick_time.cpp:24
OMEoidID::classHashIndex
uint32_t classHashIndex
Definition: OMEoid.h:30
OMEoidStorageExternal::pagerObject
OMEoid * pagerObject
Definition: OMEoid.h:423
OMEoidStorageExternal::getProxyObject
virtual const OMEoid * getProxyObject(const OMEstring **method) const override
Definition: OMEoid.h:444
OMEreferenceCount::addReadOnlyReference
void addReadOnlyReference()
Definition: OMErefCount.cpp:139
OMEoidStorageExternal::encodeOID
virtual OMEstring * encodeOID(const class OMEencodeBuffer *bfr) const override
Definition: OMEoid.cpp:330
OMEoidID::birthplace
OMEentityID birthplace
Definition: OMEoid.h:31
OME_SET
@ OME_SET
Definition: OMEmanifests.h:89
ntohl
#define ntohl(x)
Definition: tmp.o.cpp:3101
OMEoidStorageInternal::objectRecord
const class OMEobject * objectRecord
Definition: OMEoid.h:331
OMEdefOIL2func
Record to define the implementation of an OIL2 function.
Definition: OMEthread.h:287
OMEoid::outputOnStream
STREAMTYPE & outputOnStream(STREAMTYPE &outputStream, int_fast16_t indent=0, bool fullInfo=false) const
Definition: OMEoid.h:308
OMEoidStorage::findReference
static OMEoidStorage * findReference(const OMEoidID *id, const OMEassoc *acl=nullptr, OMEoidStorage **sameEntity=nullptr, bool externalOnly=false)
Definition: OMEoidIntStub.cpp:76
OMEoidStorage::internal
@ internal
Definition: OMEoid.h:89
OMEthisProcessInfo::id
OMEentityID id
Definition: OMEprocInfo.h:68
OMEoidStorageExternal::~OMEoidStorageExternal
~OMEoidStorageExternal()
Definition: OMEoid.cpp:236
OMEendCriticalSection
void OMEendCriticalSection(eOMEcriticalSectionLabel regionID)
Definition: OMEmutex.cpp:236
OMEoid::operator==
bool operator==(const OMEoid &arg) const
Definition: OMEoid.h:245
OMEoidStorage::getObjectOID
void getObjectOID(OMEoidID *arg) const
Definition: OMEoid.h:149
OME_ALWAYS_INLINE
#define OME_ALWAYS_INLINE
Tell the compiler to alway inline a function, regardless of optimization level.
Definition: compiler_hints.h:364
prepareStatement
int prepareStatement(OMEthread *thread, OMEtype &result, const OMEtype &id, const OMEtype &statement, const OMEtype &params)
Definition: OMEodbcInt.cpp:864
OMEbaseTypeP
class OMEtype * OMEbaseTypeP
Definition: OMEoid.h:22
OMEreferenceToData::dropReference
void dropReference(C *newData=nullptr) OME_ALWAYS_INLINE
Definition: OMErefCount.h:91
OME_CHARSET_BINARY
@ OME_CHARSET_BINARY
Definition: OMEstring.h:30
OMEoidStorage::OMEencodeOID
static OMEstring * OMEencodeOID(const OMEoidID &, const OMEassoc &, int encodingVersion)
Definition: OMEoid.cpp:242
OMEencodeBuffer::getEncodeVersion
uint32_t getEncodeVersion() const
Get version Id of encoding version.
Definition: OMEencode.h:96
OMEoidStorage::setProxyObject
void setProxyObject(const class OMEoid &proxy, const OMEstring &method)
Definition: OMEoid.h:164
OME_FIXED
@ OME_FIXED
Definition: OMEmanifests.h:91
OMEoidStorageInternal::operator==
bool operator==(const OMEoidStorage &arg) const
Definition: OMEoid.h:384
OMEoidStorage::getProxyObject
const class OMEoid * getProxyObject(const OMEstring **method) const
Definition: OMEoid.h:159
OMEdebugInfo.h
OME debug and profiling interfaces.
OMEoid::isExternal
bool isExternal() const OME_ALWAYS_INLINE
Definition: OMEoid.h:300
OME_DLL_EXPORT
#define OME_DLL_EXPORT
Definition: compiler_hints.h:464
OMEarray
Implements sparse array of OMEtype elements.
Definition: OMEarray.h:75
OMEthread
Public interface to an OME thread.
Definition: OMEthread.h:60
ARG_IGNORED
const int ARG_IGNORED
Definition: OMEodbcInt.cpp:14
OMEoid
Public interface to an OME Object Identifier.
Definition: OMEoid.h:196
OMEoidStorageBase::~OMEoidStorageBase
virtual ~OMEoidStorageBase()
Definition: OMEoid.h:57
OMEoid::encodeOID
OMEstring * encodeOID(const class OMEencodeBuffer *bfr) const
Definition: OMEoid.h:221
OMEtype::type
uint32_t type
Definition: OMEbaseType.h:304
OMEoidStorageInternal::getInstanceInMemory
virtual const class OMEobject * getInstanceInMemory() const override
Definition: OMEoid.h:402
OMEoidStorage::_NOT_SET
@ _NOT_SET
Definition: OMEoid.h:88
OMEoidStorage::prevInChain
OMEoidStorage * prevInChain
Definition: OMEoid.h:111
listDatabases
int listDatabases(OMEthread *thread, OMEtype &result, const OMEtype &id)
Definition: OMEodbcInt.cpp:811
OMEoidStorageExternal::operator==
bool operator==(const OMEoidStorage &arg) const
Definition: OMEoid.h:460
OMEoidStorageExternal
Interface to an external OME object.
Definition: OMEoid.h:415
OMEoidID::instanceIndex
uint32_t instanceIndex
Definition: OMEoid.h:28
OMEoidStorageBase::OMEoidStorageBase
OMEoidStorageBase(const OMEassoc &aclData)
Definition: OMEoid.h:52
OME_ARRAY
@ OME_ARRAY
Definition: OMEmanifests.h:86
OMEoidStorage::convertExternalToInternalRef
void convertExternalToInternalRef(OMEobject *b)
Definition: OMEoidInt.cpp:205
OMEoidStorageBase::setProxyObject
virtual void setProxyObject(const class OMEoid &proxy, const OMEstring &method)=0
OME_CHARSET_EBCDIC
@ OME_CHARSET_EBCDIC
Definition: OMEstring.h:29
OMEtype::assoc
class OMEassoc * assoc
Definition: OMEbaseType.h:296
OMEtype
#define OMEtype
Definition: tmp.o.cpp:396
OMEoidStorage::OMEoidStorage
OMEoidStorage()
Definition: OMEoid.h:119
OMEoidStorageBase::getProxyObject
virtual const class OMEoid * getProxyObject(const OMEstring **method) const =0
OMEoid::refersTo
bool refersTo(const class OMEobject *obj) const OME_ALWAYS_INLINE
Definition: OMEoid.h:295
htonl
#define htonl(x)
Definition: tmp.o.cpp:3098
OMEoidStorage::OMEoidStorageExternal
friend class OMEoidStorageExternal
Definition: OMEoid.h:83
OMEoidID
Fundamental elements of an OME object identifier.
Definition: OMEoid.h:27
OMEoid::getInstanceInMemory
const class OMEobject * getInstanceInMemory() const
Return object information record.
Definition: OMEoid.h:280
OME_ASSOC
@ OME_ASSOC
Definition: OMEmanifests.h:87
OMEoidStorageInternal::nextRefToSameObject
OMEoidStorageInternal * nextRefToSameObject
Definition: OMEoid.h:334
OMEoidStorage::referenceType
OMErefType referenceType
Definition: OMEoid.h:134
INIT_DECLARE_OMEodbcInt
OME_DLL_EXPORT void INIT_DECLARE_OMEodbcInt()
Definition: OMEodbcInt.cpp:908
OMEoidStorage::OMEdumpOIDchain
static STREAMTYPE & OMEdumpOIDchain(STREAMTYPE &outputStream)
Internal dereferencing element used by OMEoid.
Definition: OMEoid.cpp:97
OMEoidStorageInternal::operator==
bool operator==(const OMEoidStorageInternal &arg) const
Definition: OMEoid.h:362
OME_INT32
@ OME_INT32
Definition: OMEmanifests.h:79
OME_INT64
@ OME_INT64
Definition: OMEmanifests.h:81
closeDatabaseConnection
int closeDatabaseConnection(OMEthread *thread, OMEtype &result, OMEtype &id)
Definition: OMEodbcInt.cpp:803
Generated: Tue Jul 28 2020 16:03:25
Support Information