#include "Repository.h"
#include "Contained.h"
#include "TypedefDef.h"
#include "PrimitiveDef.h"
#include "StringDef.h"
#include "WstringDef.h"
#include "SequenceDef.h"
#include "ArrayDef.h"
#include "FixedDef.h"
#include "Persist.h"
#include "PersistNode.h"
#include "Creche.h"
#include <string.h>
Include dependency graph for Repository.cc:
Go to the source code of this file.
Namespaces | |
namespace | Omniifr |
Functions | |
template<class T> | |
T::_ptr_type | lookupTc (Repository_impl &repository, TypeCode_ptr tc, const char *&id, const char *&name) |
Helper method used by get_canonical_typecode(). |
|
Helper method used by get_canonical_typecode(). Extracts a narrowed IRObject from the repository, or returns a nil reference. Side effect: sets id & name from the tc. Definition at line 47 of file Repository.cc. References DB. 00053 { 00054 // Note the non-standard memory management of these functions. 00055 // id() & name() both return "const char*". The TC retains ownership of the 00056 // strings. 00057 id =tc->id(); 00058 name =tc->name(); 00059 00060 // Attempt to find 'id' in the repository. 00061 Contained_var contained =repository.lookup_id(id); 00062 typename T::_var_type result =T::_nil(); 00063 if(!CORBA::is_nil(contained)) 00064 { 00065 result=T::_narrow(contained.in()); 00066 if(CORBA::is_nil(result)) 00067 { 00068 DB(1,id<<" is in the repository, but TCKind does not match.") //?? 00069 } 00070 } 00071 return result._retn(); 00072 }
|