本文整理汇总了C++中ObjId::path方法的典型用法代码示例。如果您正苦于以下问题:C++ ObjId::path方法的具体用法?C++ ObjId::path怎么用?C++ ObjId::path使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ObjId
的用法示例。
在下文中一共展示了ObjId::path方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
void HDF5DataWriter::recvData(const Eref&e,
ObjId src, const double* start, unsigned int num )
{
string path = src.path();
if (nodemap_.find(path) == nodemap_.end()){
// first time call, initialize entries in map
hid_t dataid = get_dataset(path);
if (dataid < 0){
cerr << "Warning: could not create data set for " << path << endl;
}
nodemap_[path] = dataid;
datamap_[path] = vector<double>();
}
const double * end = start + num;
// append only the new data. old_size is guaranteed to be 0 on
// write and the table vecs will also be cleared.
datamap_[path].insert(datamap_[path].end(), start, end);
SetGet0::set(src, "clearVec"); //Unsure what this is for.
// #ifndef NDEBUG
// // debug leftover entries coming from table
// cout << "HDF5DataWriter::recvData: vec_size=" << vec_size << endl;
// cout << "HDF5DataWriter::recvData: dataSize=" << pb.dataSize() << endl;
// cout << "HDF5DataWriter::recvData: numEntries=" << pb.numEntries() << endl;
// cout << "HDF5DataWriter::recvData: size=" << pb.size() << endl;
// cout << "HDF5DataWriter::recvData: data()" << endl;
// for (int ii = 0; ii <= vec_size; ++ii){
// cout << ii << "\t" << pb.data()[ii] << endl;
// }
// #endif
}
示例2: doMove
void Shell::doMove( Id orig, ObjId newParent )
{
if ( orig == Id() ) {
cout << "Error: Shell::doMove: Cannot move root Element\n";
return;
}
if ( newParent.element() == 0 ) {
cout << "Error: Shell::doMove: Cannot move object to null parent \n";
return;
}
if ( Neutral::isDescendant( newParent, orig ) ) {
cout << "Error: Shell::doMove: Cannot move object to descendant in tree\n";
return;
}
const string& name = orig.element()->getName();
if ( Neutral::child( newParent.eref(), name ) != Id() ) {
stringstream ss;
ss << "Shell::doMove: Object with same name already present: '"
<< newParent.path() << "/" << name << "'. Move failed.";
warning( ss.str() );
return;
}
SetGet2< Id, ObjId >::set( ObjId(), "move", orig, newParent );
// innerMove( orig, newParent );
}
示例3: setSurround
void EndoMesh::setSurround( const Eref& e, ObjId v )
{
if ( !v.element()->cinfo()->isA( "ChemCompt" ) ) {
cout << "Warning: 'surround' may only be set to an object of class 'ChemCompt'\n";
cout << v.path() << " is of class " << v.element()->cinfo()->name() << endl;
return;
}
surround_ = v;
parent_ = reinterpret_cast< const MeshCompt* >( v.data() );
}
示例4: doCreate
/**
* This is the version used by the parser. Acts as a blocking,
* serial-like interface to a potentially multithread, multinode call.
* Returns the new Id index upon success, otherwise returns Id().
* The data of the new Element is not necessarily allocated at this point,
* that can be deferred till the global Instantiate or Reset calls.
* Idea is that the model should be fully defined before load balancing.
*
*/
Id Shell::doCreate( string type, ObjId parent, string name,
unsigned int numData,
NodePolicy nodePolicy,
unsigned int preferredNode )
{
#ifdef ENABLE_LOGGER
clock_t t = clock();
#endif
const Cinfo* c = Cinfo::find( type );
if ( !isNameValid( name ) ) {
stringstream ss;
ss << "Shell::doCreate: bad character in name'" << name <<
"'. No Element created";
warning( ss.str() );
return Id();
}
if ( c ) {
if ( c->banCreation() ) {
stringstream ss;
ss << "Shell::doCreate: Cannot create an object of class '" <<
type << "' because it is an abstract base class or a FieldElement.\n";
warning( ss.str() );
return Id();
}
Element* pa = parent.element();
if ( !pa ) {
stringstream ss;
ss << "Shell::doCreate: Parent Element'" << parent << "' not found. No Element created";
warning( ss.str() );
return Id();
}
if ( Neutral::child( parent.eref(), name ) != Id() ) {
stringstream ss;
ss << "Shell::doCreate: Object with same name already present: '"
<< parent.path() << "/" << name << "'. No Element created";
warning( ss.str() );
return Id();
}
// Get the new Id ahead of time and pass to all nodes.
Id ret = Id::nextId();
NodeBalance nb( numData, nodePolicy, preferredNode );
// Get the parent MsgIndex ahead of time and pass to all nodes.
unsigned int parentMsgIndex = OneToAllMsg::numMsg();
SetGet6< string, ObjId, Id, string, NodeBalance, unsigned int >::set(
ObjId(), // Apply command to Shell
"create", // Function to call.
type, // class of new object
parent, // Parent
ret, // id of new object
name, // name of new object
nb, // Node balance configuration
parentMsgIndex // Message index of child-parent msg.
);
// innerCreate( type, parent, ret, name, numData, isGlobal );
#ifdef ENABLE_LOGGER
logger.creationTime.push_back((float(clock() - t)/CLOCKS_PER_SEC));
#endif
return ret;
} else {
stringstream ss;
ss << "Shell::doCreate: Class '" << type << "' not known. No Element created";
warning( ss.str() );
}
#ifdef ENABLE_LOGGER
logger.creationTime.push_back((float(clock() - t)/CLOCKS_PER_SEC));
#endif
return Id();
}