本文整理汇总了C++中atom类的典型用法代码示例。如果您正苦于以下问题:C++ atom类的具体用法?C++ atom怎么用?C++ atom使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了atom类的19个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: location_of
string location_of(atom atom)
{
int path_id=literal_id(atom.path());
int line_id=literal_id(atom.line().trim());
return concat("location",pack(path_id,line_id,atom.number()).join(",").parens());
}
开发者ID:vmorgulys,项目名称:sandbox,代码行数:7,代码来源:class.compiler.cpp
示例2: literal_id
int literal_id(atom value)
{
//string
if(value.is_string())
return _literals.index(value.get());
//literal
return literal_id(value.get());
}
开发者ID:vmorgulys,项目名称:sandbox,代码行数:11,代码来源:class.compiler.cpp
示例3: bGeomSetTransform
wrl::atom::atom(const atom& that)
{
param_map::const_iterator i;
// Copy that atom.
*this = that;
// Duplicate GL state.
if (that.fill) fill = new ogl::unit(*that.fill);
if (that.line) line = new ogl::unit(*that.line);
// Duplicate ODE state.
if ((edit_geom = that.new_edit_geom(0)))
{
dGeomSetData (edit_geom, this);
bGeomSetTransform(edit_geom, current_M);
}
// Flush and clone each parameter separately.
params.clear();
for (i = that.params.begin(); i != that.params.end(); ++i)
params[i->first] = new param(*i->second);
}
开发者ID:rlk,项目名称:thumb,代码行数:28,代码来源:wrl-atom.cpp
示例4: guard
typename basic_otp_mailbox_registry<Alloc, Mutex>::mailbox_ptr
basic_otp_mailbox_registry<Alloc, Mutex>::create_mailbox(
const atom& a_name, boost::asio::io_service* a_svc)
{
lock_guard<Mutex> guard(m_lock);
if (!a_name.empty()) {
typename std::map<atom, mailbox_ptr>::iterator it = m_by_name.find(a_name);
if (it != m_by_name.end())
return it->second; // Already registered!
}
epid<Alloc> l_pid = m_owner_node.create_pid();
mailbox_ptr mbox = new mailbox_type(m_owner_node, l_pid, a_name, a_svc);
if (!a_name.empty())
m_by_name.insert(std::pair<atom, mailbox_ptr>(a_name, mbox));
m_by_pid.insert(std::pair<epid<Alloc>, mailbox_ptr>(l_pid, mbox));
return mbox;
}
开发者ID:alepharchives,项目名称:eixx,代码行数:18,代码来源:basic_otp_mailbox_registry.hpp
示例5: value_of
string value_of(atom atom)
{
string type=atom.type();
string value=atom.get();
if(atom.is_number())
{
//number
if(value.is_integer())
type="integer";
else
{
check(value.is_real());
type="real";
}
}
else if(atom.is_string())
{
//string
type="literal";
value=stringify(literal_id(atom));
}
else if(atom.is_identifier())
{
//identifier
value=_identifiers.index(literal_id(atom)).string_();
}
else
{
//raw
type="literal";
value=stringify(literal_id(atom));
}
return concat(type,value.parens());
}
开发者ID:vmorgulys,项目名称:sandbox,代码行数:41,代码来源:class.compiler.cpp
示例6: err_bad_argument
bool basic_otp_mailbox_registry<Alloc, Mutex>::add(const atom& a_name, mailbox_ptr a_mbox)
{
if (a_name.empty())
throw err_bad_argument("Empty registering name!");
if (!a_mbox->name().empty())
throw err_bad_argument("Mailbox already registered as", a_mbox->name());
lock_guard<Mutex> guard(m_lock);
if (m_by_name.find(a_name) != m_by_name.end())
return false;
m_by_name.insert(std::pair<atom, mailbox_ptr>(a_name, a_mbox));
a_mbox->name(a_name);
return true;
}
开发者ID:alepharchives,项目名称:eixx,代码行数:13,代码来源:basic_otp_mailbox_registry.hpp
示例7: check
// Verify data encoding
void check(atom test, atom::type_t type, atom::enc_t enc, size_t size)
{
atom::type_t type_found;
atom::enc_t enc_found;
byte_vector test_bytes = test.encode_vector();
atom copy;
// Dump
printf("Atom: ");
test.print();
// What's in the atom?
type_found = test.get_type();
printf("\nData Type: %s\n", atom_type_to_string(type_found));
if (type != type_found)
{
printf("*** Failed (expected %s) ***\n", atom_type_to_string(type));
exit(1);
}
// How is it encoded?
enc_found = test.get_enc();
printf("Encoding: %s\n", atom_enc_to_string(enc_found));
if (enc != enc_found)
{
printf("*** Failed (expected %s) ***\n", atom_enc_to_string(enc));
exit(1);
}
// Debug
dump(test_bytes);
// Check total size
if (test.get_header_size() + size != test_bytes.size())
{
printf("*** Failed (expected %u bytes) ***\n",
(unsigned int)(test.get_header_size() + size));
exit(1);
}
// Reconstruct atom
printf("Testing reconstructed copy ...\n");
copy.decode_vector(test_bytes);
if (test != copy)
{
printf("*** Failed (decoded object differs) ***\n");
exit(1);
}
// Bump the counter
test_count++;
}
开发者ID:tparys,项目名称:topaz-alpha,代码行数:53,代码来源:test-atom.cpp
示例8: basic_otp_connection
basic_otp_connection(
connect_completion_handler h,
boost::asio::io_service& a_svc,
basic_otp_node<Alloc,Mutex>* a_node, const atom& a_remote_node,
const std::string& a_cookie, int a_reconnect_secs = 0,
const Alloc& a_alloc = Alloc())
: m_io_service(a_svc)
, m_node(a_node)
, m_remote_nodename(a_remote_node)
, m_cookie(a_cookie)
, m_alloc(a_alloc)
, m_connected(false)
, m_reconnect_timer(m_io_service)
, m_reconnect_secs(a_reconnect_secs)
, m_abort(false)
{
BOOST_ASSERT(a_node != NULL);
m_on_connect_status = h;
m_transport = connection_type::create(
m_io_service, this, a_node->nodename().to_string(),
a_remote_node.to_string(), a_cookie, a_alloc);
}
开发者ID:alepharchives,项目名称:eixx,代码行数:22,代码来源:basic_otp_connection.hpp
示例9: is_neighbor
//! Returns true if the current atom is covalently bonded to a given atom.
bool atom::is_neighbor(const atom& a) const
{
assert(this != &a);
const double r = 1.1 * (covalent_radius() + a.covalent_radius());
return distance_sqr(coord, a.coord) < r * r;
}
开发者ID:HongjianLi,项目名称:igrow,代码行数:7,代码来源:atom.cpp
示例10: has_covalent_bond
/// Returns true if the current atom is covalently bonded to a given atom.
bool has_covalent_bond(const atom& a) const
{
const float s = covalent_radius() + a.covalent_radius();
return distance_sqr(coord, a.coord) < s * s;
}
开发者ID:HongjianLi,项目名称:zinc,代码行数:6,代码来源:statligand.cpp
示例11: port
port(const atom& node, const int id, const int creation, const Alloc& a_alloc = Alloc())
throw (err_bad_argument)
{
detail::check_node_length(node.size());
init(node, id, creation, a_alloc);
}
开发者ID:fredrikelinder,项目名称:eixx,代码行数:6,代码来源:port.hpp
示例12: partitions
receptor::receptor(istream& is, const box& b) : partitions(b.num_partitions)
{
// Initialize necessary variables for constructing a receptor.
atoms.reserve(5000); // A receptor typically consists of <= 5,000 atoms.
// Initialize helper variables for parsing.
string residue = "XXXX"; // Current residue sequence, used to track residue change, initialized to a dummy value.
vector<size_t> residues;
residues.reserve(1000); // A receptor typically consists of <= 1,000 residues, including metal ions and water molecules if any.
size_t num_lines = 0; // Used to track line number for reporting parsing errors, if any.
string line;
line.reserve(79); // According to PDBQT specification, the last item AutoDock atom type locates at 1-based [78, 79].
// Parse ATOM/HETATM.
while (getline(is, line))
{
++num_lines;
if (starts_with(line, "ATOM") || starts_with(line, "HETATM"))
{
// Parse and validate AutoDock4 atom type.
const string ad_type_string = line.substr(77, isspace(line[78]) ? 1 : 2);
const size_t ad = parse_ad_type_string(ad_type_string);
if (ad == AD_TYPE_SIZE) continue;
// Skip non-polar hydrogens.
if (ad == AD_TYPE_H) continue;
// Parse the Cartesian coordinate.
string name = line.substr(12, 4);
boost::algorithm::trim(name);
const atom a(line.substr(21, 1) + ':' + line.substr(17, 3) + right_cast<string>(line, 23, 26) + ':' + name, vec3(right_cast<fl>(line, 31, 38), right_cast<fl>(line, 39, 46), right_cast<fl>(line, 47, 54)), ad);
// For a polar hydrogen, the bonded hetero atom must be a hydrogen bond donor.
if (ad == AD_TYPE_HD)
{
const size_t residue_start = residues.back();
for (size_t i = atoms.size(); i > residue_start;)
{
atom& b = atoms[--i];
if (!b.is_hetero()) continue; // Only a hetero atom can be a hydrogen bond donor.
if (a.is_neighbor(b))
{
b.donorize();
break;
}
}
}
else // It is a heavy atom.
{
// Parse the residue sequence located at 1-based [23, 26].
if ((line[25] != residue[3]) || (line[24] != residue[2]) || (line[23] != residue[1]) || (line[22] != residue[0])) // This line is the start of a new residue.
{
residue[3] = line[25];
residue[2] = line[24];
residue[1] = line[23];
residue[0] = line[22];
residues.push_back(atoms.size());
}
atoms.push_back(a);
}
}
else if (starts_with(line, "TER"))
{
residue = "XXXX";
}
}
// Dehydrophobicize carbons if necessary.
const size_t num_residues = residues.size();
residues.push_back(atoms.size());
for (size_t r = 0; r < num_residues; ++r)
{
const size_t begin = residues[r];
const size_t end = residues[r + 1];
for (size_t i = begin; i < end; ++i)
{
const atom& a = atoms[i];
if (!a.is_hetero()) continue; // a is a hetero atom.
for (size_t j = begin; j < end; ++j)
{
atom& b = atoms[j];
if (b.is_hetero()) continue; // b is a carbon atom.
// If carbon atom b is bonded to hetero atom a, b is no longer a hydrophobic atom.
if (a.is_neighbor(b))
{
b.dehydrophobicize();
}
}
}
}
// Find all the heavy receptor atoms that are within 8A of the box.
vector<size_t> receptor_atoms_within_cutoff;
receptor_atoms_within_cutoff.reserve(atoms.size());
const size_t num_rec_atoms = atoms.size();
for (size_t i = 0; i < num_rec_atoms; ++i)
{
const atom& a = atoms[i];
//.........这里部分代码省略.........
开发者ID:HongjianLi,项目名称:istar,代码行数:101,代码来源:receptor.cpp
示例13: test_single_cas
void test_single_cas(size_t id, size_t nrun) {
size_t dummy;
for (size_t i = 0; i < nrun; i++) {
lock_instr_test.compare_exchange_weak(dummy,
dummy+1,
std::memory_order_relaxed,
std::memory_order_relaxed);
}
}
开发者ID:schets,项目名称:contention_test,代码行数:9,代码来源:scale_test.cpp
示例14: test_many_cas
void test_many_cas(size_t id, size_t nrun) {
size_t dummy;
for (size_t i = 0; i < nrun; i++) {
while (!lock_instr_test.compare_exchange_weak(dummy,
dummy+1,
std::memory_order_relaxed,
std::memory_order_relaxed))
{}
}
}
开发者ID:schets,项目名称:contention_test,代码行数:10,代码来源:scale_test.cpp
示例15: timer_reconnect
void timer_reconnect(const boost::system::error_code& ec) {
if (ec == boost::asio::error::operation_aborted)
return; // timer reset
if (verbose() >= VERBOSE_TRACE)
std::cerr << "basic_otp_connection::timer_reconnect: " << ec.message() << std::endl;
m_transport = connection_type::create(
m_io_service, this, m_node->nodename().to_string(),
m_remote_nodename.to_string(), m_cookie, m_alloc);
}
开发者ID:alepharchives,项目名称:eixx,代码行数:11,代码来源:basic_otp_connection.hpp
示例16: test_single_add
void test_single_add(size_t id, size_t nrun) {
for (size_t i = 0; i < nrun; i++) {
lock_instr_test.fetch_add(1, std::memory_order_relaxed);
}
}
开发者ID:schets,项目名称:contention_test,代码行数:5,代码来源:scale_test.cpp
示例17: length
size_t length() const { return m_name.length(); }
开发者ID:fredrikelinder,项目名称:eixx,代码行数:1,代码来源:var.hpp
示例18: str
const string_t& str() const { return m_name.to_string(); }
开发者ID:fredrikelinder,项目名称:eixx,代码行数:1,代码来源:var.hpp
示例19:
const char* c_str() const { return m_name.c_str(); }
开发者ID:fredrikelinder,项目名称:eixx,代码行数:1,代码来源:var.hpp
注:本文中的atom类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论