本文整理汇总了C++中List类的典型用法代码示例。如果您正苦于以下问题:C++ List类的具体用法?C++ List怎么用?C++ List使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了List类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: arrange_impl
// [[Rcpp::export]]
List arrange_impl(DataFrame data, QuosureList quosures) {
if (data.size() == 0 || data.nrows() == 0)
return data;
int nargs = quosures.size();
if (nargs == 0)
return data;
check_valid_colnames(data);
assert_all_white_list(data);
List variables(nargs);
LogicalVector ascending(nargs);
for (int i = 0; i < nargs; i++) {
const NamedQuosure& quosure = quosures[i];
Shield<SEXP> call_(quosure.expr());
SEXP call = call_;
bool is_desc = TYPEOF(call) == LANGSXP && Rf_install("desc") == CAR(call);
CallProxy call_proxy(is_desc ? CADR(call) : call, data, quosure.env());
Shield<SEXP> v(call_proxy.eval());
if (!white_list(v)) {
stop("cannot arrange column of class '%s'", get_single_class(v));
}
if (Rf_inherits(v, "data.frame")) {
DataFrame df(v);
int nr = df.nrows();
if (nr != data.nrows()) {
stop("data frame column with incompatible number of rows (%d), expecting : %d", nr, data.nrows());
}
} else if (Rf_isMatrix(v)) {
stop("can't arrange by a matrix");
} else {
if (Rf_length(v) != data.nrows()) {
stop("incorrect size (%d), expecting : %d", Rf_length(v), data.nrows());
}
}
variables[i] = v;
ascending[i] = !is_desc;
}
OrderVisitors o(variables, ascending, nargs);
IntegerVector index = o.apply();
DataFrameSubsetVisitors visitors(data, data.names());
List res = visitors.subset(index, get_class(data));
if (is<GroupedDataFrame>(data)) {
// so that all attributes are recalculated (indices ... )
// see the lazyness feature in GroupedDataFrame
// if we don't do that, we get the values of the un-arranged data
// set for free from subset (#1064)
res.attr("labels") = R_NilValue;
copy_vars(res, data);
return GroupedDataFrame(res).data();
}
SET_ATTRIB(res, strip_group_attributes(res));
return res;
}
示例2: debug
bool FLAC::File::save()
{
if(readOnly()) {
debug("FLAC::File::save() - Cannot save to a read only file.");
return false;
}
if(!isValid()) {
debug("FLAC::File::save() -- Trying to save invalid file.");
return false;
}
// Create new vorbis comments
Tag::duplicate(&d->tag, xiphComment(true), false);
d->xiphCommentData = xiphComment()->render(false);
// Replace metadata blocks
bool foundVorbisCommentBlock = false;
List<MetadataBlock *> newBlocks;
for(uint i = 0; i < d->blocks.size(); i++) {
MetadataBlock *block = d->blocks[i];
if(block->code() == MetadataBlock::VorbisComment) {
// Set the new Vorbis Comment block
delete block;
block = new UnknownMetadataBlock(MetadataBlock::VorbisComment, d->xiphCommentData);
foundVorbisCommentBlock = true;
}
if(block->code() == MetadataBlock::Padding) {
delete block;
continue;
}
newBlocks.append(block);
}
if(!foundVorbisCommentBlock) {
newBlocks.append(new UnknownMetadataBlock(MetadataBlock::VorbisComment, d->xiphCommentData));
foundVorbisCommentBlock = true;
}
d->blocks = newBlocks;
// Render data for the metadata blocks
ByteVector data;
for(uint i = 0; i < newBlocks.size(); i++) {
FLAC::MetadataBlock *block = newBlocks[i];
ByteVector blockData = block->render();
ByteVector blockHeader = ByteVector::fromUInt(blockData.size());
blockHeader[0] = block->code();
data.append(blockHeader);
data.append(blockData);
}
// Adjust the padding block(s)
long originalLength = d->streamStart - d->flacStart;
int paddingLength = originalLength - data.size() - 4;
if (paddingLength < 0) {
paddingLength = MinPaddingLength;
}
ByteVector padding = ByteVector::fromUInt(paddingLength);
padding.resize(paddingLength + 4);
padding[0] = (char)(FLAC::MetadataBlock::Padding | LastBlockFlag);
data.append(padding);
// Write the data to the file
insert(data, d->flacStart, originalLength);
d->hasXiphComment = true;
// Update ID3 tags
if(ID3v2Tag()) {
if(d->hasID3v2) {
if(d->ID3v2Location < d->flacStart)
debug("FLAC::File::save() -- This can't be right -- an ID3v2 tag after the "
"start of the FLAC bytestream? Not writing the ID3v2 tag.");
else
insert(ID3v2Tag()->render(), d->ID3v2Location, d->ID3v2OriginalSize);
}
else
insert(ID3v2Tag()->render(), 0, 0);
}
if(ID3v1Tag()) {
seek(-128, End);
writeBlock(ID3v1Tag()->render());
}
return true;
}
示例3: main
int main ()
/*
** This main driver program interactively exercises a
** list package.
** It assumes a linked list implementation, and its real
** purpose is to exercise the underlying list manipulation
** procedures.
** It uses a menu to accept commands from the terminal,
** then performs the indicated command.
*/
{
int command;
string response;
List *list = NULL;
ListItr *itr = NULL;
// Initialize this run
cout << "--------------------------------------------------\n";
cout << "\tThis test harness operates with one List\n"
<< "\tobject and one ListItr object.\n\n"
<< "\tUse the menu options to manipulate these\n"
<< "\tobjects.\n";
while (1) {
command = menu(option, n_choice);
switch (command) {
case 1: // Quit
cout << "\tDo you really want to quit? (y/n) > ";
cin >> response;
if (response[0] == 'y' || response[0] == 'Y') { // Normal Exit
return 0;
}
break;
case 2: // New list
if (list != NULL) delete list;
list = new List;
cout << "\tYou have created an empty list\n";
cout << "\tDo you want to initialize it with elements? (y/n) > ";
cin >> response;
if (response[0] != 'y' && response[0] != 'Y')
break;
// accept elements
cout << "\t\tEnter elements one by one as integers.\n";
cout << "\t\tAny non-numeric character, e.g. #, ";
cout << "will terminate input\n";
cout << "\tEnter first element: ";
cin >> response;
while (isdigit(response[0])) {
int element = atoi(response.c_str());
list->insertAtTail(element);
cout << "\tEnter next element: ";
cin >> response;
}
cout << endl << "The elements in forward order: " << endl;
printList(*list, true);
break;
case 3: // show elements
if (list == NULL) {
cout << endl << "\tCreate a List first." << endl;
break;
}
cout << "\tPrint the list forwards or backwards? (f/b) > ";
cin >> response;
if (response[0] == 'b' || response[0] == 'B') {
cout << endl << "The elements in reverse order:" << endl;
printList(*list, false);
} else {
cout << endl << "The elements in forward order:" << endl;
printList(*list, true);
}
break;
case 4: // test first()
if (list == NULL) {
cout << endl << "\tCreate a List first." << endl;
break;
}
cout << "\tSetting the ListItr to the first element..." << endl;
itr = new ListItr((list->first()));
break;
case 5: // test find()
if (list == NULL) {
cout << endl << "\tCreate a List first." << endl;
break;
}
cout << "\tEnter element to find: ";
cin >> response;
//.........这里部分代码省略.........
示例4: rhierMnlRwMixture_rcpp_loop
//[[Rcpp::export]]
List rhierMnlRwMixture_rcpp_loop(List const& lgtdata, mat const& Z,
vec const& deltabar, mat const& Ad, mat const& mubar, mat const& Amu,
double nu, mat const& V, double s,
int R, int keep, int nprint, bool drawdelta,
mat olddelta, vec const& a, vec oldprob, mat oldbetas, vec ind, vec const& SignRes){
// Wayne Taylor 10/01/2014
int nlgt = lgtdata.size();
int nvar = V.n_cols;
int nz = Z.n_cols;
mat rootpi, betabar, ucholinv, incroot;
int mkeep;
mnlMetropOnceOut metropout_struct;
List lgtdatai, nmix;
// convert List to std::vector of struct
std::vector<moments> lgtdata_vector;
moments lgtdatai_struct;
for (int lgt = 0; lgt<nlgt; lgt++){
lgtdatai = lgtdata[lgt];
lgtdatai_struct.y = as<vec>(lgtdatai["y"]);
lgtdatai_struct.X = as<mat>(lgtdatai["X"]);
lgtdatai_struct.hess = as<mat>(lgtdatai["hess"]);
lgtdata_vector.push_back(lgtdatai_struct);
}
// allocate space for draws
vec oldll = zeros<vec>(nlgt);
cube betadraw(nlgt, nvar, R/keep);
mat probdraw(R/keep, oldprob.size());
vec loglike(R/keep);
mat Deltadraw(1,1); if(drawdelta) Deltadraw.zeros(R/keep, nz*nvar);//enlarge Deltadraw only if the space is required
List compdraw(R/keep);
if (nprint>0) startMcmcTimer();
for (int rep = 0; rep<R; rep++){
//first draw comps,ind,p | {beta_i}, delta
// ind,p need initialization comps is drawn first in sub-Gibbs
List mgout;
if(drawdelta) {
olddelta.reshape(nvar,nz);
mgout = rmixGibbs (oldbetas-Z*trans(olddelta),mubar,Amu,nu,V,a,oldprob,ind);
} else {
mgout = rmixGibbs(oldbetas,mubar,Amu,nu,V,a,oldprob,ind);
}
List oldcomp = mgout["comps"];
oldprob = as<vec>(mgout["p"]); //conversion from Rcpp to Armadillo requires explict declaration of variable type using as<>
ind = as<vec>(mgout["z"]);
//now draw delta | {beta_i}, ind, comps
if(drawdelta) olddelta = drawDelta(Z,oldbetas,ind,oldcomp,deltabar,Ad);
//loop over all LGT equations drawing beta_i | ind[i],z[i,],mu[ind[i]],rooti[ind[i]]
for(int lgt = 0; lgt<nlgt; lgt++){
List oldcomplgt = oldcomp[ind[lgt]-1];
rootpi = as<mat>(oldcomplgt[1]);
//note: beta_i = Delta*z_i + u_i Delta is nvar x nz
if(drawdelta){
olddelta.reshape(nvar,nz);
betabar = as<vec>(oldcomplgt[0])+olddelta*vectorise(Z(lgt,span::all));
} else {
betabar = as<vec>(oldcomplgt[0]);
}
if (rep == 0) oldll[lgt] = llmnl_con(vectorise(oldbetas(lgt,span::all)),lgtdata_vector[lgt].y,lgtdata_vector[lgt].X,SignRes);
//compute inc.root
ucholinv = solve(trimatu(chol(lgtdata_vector[lgt].hess+rootpi*trans(rootpi))), eye(nvar,nvar)); //trimatu interprets the matrix as upper triangular and makes solve more efficient
incroot = chol(ucholinv*trans(ucholinv));
metropout_struct = mnlMetropOnce_con(lgtdata_vector[lgt].y,lgtdata_vector[lgt].X,vectorise(oldbetas(lgt,span::all)),
oldll[lgt],s,incroot,betabar,rootpi,SignRes);
oldbetas(lgt,span::all) = trans(metropout_struct.betadraw);
oldll[lgt] = metropout_struct.oldll;
}
//print time to completion and draw # every nprint'th draw
if (nprint>0) if ((rep+1)%nprint==0) infoMcmcTimer(rep, R);
if((rep+1)%keep==0){
mkeep = (rep+1)/keep;
betadraw.slice(mkeep-1) = oldbetas;
probdraw(mkeep-1, span::all) = trans(oldprob);
loglike[mkeep-1] = sum(oldll);
if(drawdelta) Deltadraw(mkeep-1, span::all) = trans(vectorise(olddelta));
compdraw[mkeep-1] = oldcomp;
}
}
if (nprint>0) endMcmcTimer();
//.........这里部分代码省略.........
示例5: fc
void Foam::meshRefinement::findNearest
(
const labelList& meshFaces,
List<pointIndexHit>& nearestInfo,
labelList& nearestSurface,
labelList& nearestRegion,
vectorField& nearestNormal
) const
{
pointField fc(meshFaces.size());
forAll(meshFaces, i)
{
fc[i] = mesh_.faceCentres()[meshFaces[i]];
}
const labelList allSurfaces(identity(surfaces_.surfaces().size()));
surfaces_.findNearest
(
allSurfaces,
fc,
scalarField(fc.size(), sqr(GREAT)), // sqr of attraction
nearestSurface,
nearestInfo
);
// Do normal testing per surface.
nearestNormal.setSize(nearestInfo.size());
nearestRegion.setSize(nearestInfo.size());
forAll(allSurfaces, surfI)
{
DynamicList<pointIndexHit> localHits;
forAll(nearestSurface, i)
{
if (nearestSurface[i] == surfI)
{
localHits.append(nearestInfo[i]);
}
}
label geomI = surfaces_.surfaces()[surfI];
pointField localNormals;
surfaces_.geometry()[geomI].getNormal(localHits, localNormals);
labelList localRegion;
surfaces_.geometry()[geomI].getRegion(localHits, localRegion);
label localI = 0;
forAll(nearestSurface, i)
{
if (nearestSurface[i] == surfI)
{
nearestNormal[i] = localNormals[localI];
nearestRegion[i] = localRegion[localI];
localI++;
}
}
}
示例6: while
ARTPAssembler::AssemblyStatus AH263Assembler::addPacket(
const sp<ARTPSource> &source) {
List<sp<ABuffer> > *queue = source->queue();
if (queue->empty()) {
return NOT_ENOUGH_DATA;
}
if (mNextExpectedSeqNoValid) {
List<sp<ABuffer> >::iterator it = queue->begin();
while (it != queue->end()) {
if ((uint32_t)(*it)->int32Data() >= mNextExpectedSeqNo) {
break;
}
it = queue->erase(it);
}
if (queue->empty()) {
return NOT_ENOUGH_DATA;
}
}
sp<ABuffer> buffer = *queue->begin();
if (!mNextExpectedSeqNoValid) {
mNextExpectedSeqNoValid = true;
mNextExpectedSeqNo = (uint32_t)buffer->int32Data();
} else if ((uint32_t)buffer->int32Data() != mNextExpectedSeqNo) {
#if VERBOSE
LOG(VERBOSE) << "Not the sequence number I expected";
#endif
return WRONG_SEQUENCE_NUMBER;
}
uint32_t rtpTime;
CHECK(buffer->meta()->findInt32("rtp-time", (int32_t *)&rtpTime));
if (mPackets.size() > 0 && rtpTime != mAccessUnitRTPTime) {
submitAccessUnit();
}
mAccessUnitRTPTime = rtpTime;
// hexdump(buffer->data(), buffer->size());
if (buffer->size() < 2) {
queue->erase(queue->begin());
++mNextExpectedSeqNo;
return MALFORMED_PACKET;
}
unsigned payloadHeader = U16_AT(buffer->data());
unsigned P = (payloadHeader >> 10) & 1;
unsigned V = (payloadHeader >> 9) & 1;
unsigned PLEN = (payloadHeader >> 3) & 0x3f;
unsigned PEBIT = payloadHeader & 7;
// V=0
if (V != 0u) {
queue->erase(queue->begin());
++mNextExpectedSeqNo;
ALOGW("Packet discarded due to VRC (V != 0)");
return MALFORMED_PACKET;
}
// PLEN=0
if (PLEN != 0u) {
queue->erase(queue->begin());
++mNextExpectedSeqNo;
ALOGW("Packet discarded (PLEN != 0)");
return MALFORMED_PACKET;
}
// PEBIT=0
if (PEBIT != 0u) {
queue->erase(queue->begin());
++mNextExpectedSeqNo;
ALOGW("Packet discarded (PEBIT != 0)");
return MALFORMED_PACKET;
}
size_t skip = V + PLEN + (P ? 0 : 2);
buffer->setRange(buffer->offset() + skip, buffer->size() - skip);
if (P) {
buffer->data()[0] = 0x00;
buffer->data()[1] = 0x00;
}
mPackets.push_back(buffer);
queue->erase(queue->begin());
++mNextExpectedSeqNo;
return OK;
}
示例7: project
void ReferencesJob::execute()
{
shared_ptr<Project> proj = project();
Location startLocation;
Set<Location> references;
if (proj) {
if (!symbolName.isEmpty()) {
Scope<const SymbolNameMap&> scope = proj->lockSymbolNamesForRead();
if (scope.isNull())
return;
locations = scope.data().value(symbolName);
}
if (!locations.isEmpty()) {
Scope<const SymbolMap&> scope = proj->lockSymbolsForRead();
if (scope.isNull())
return;
const SymbolMap &map = scope.data();
for (Set<Location>::const_iterator it = locations.begin(); it != locations.end(); ++it) {
Location pos;
CursorInfo cursorInfo = RTags::findCursorInfo(map, *it, &pos);
if (startLocation.isNull())
startLocation = pos;
if (RTags::isReference(cursorInfo.kind)) {
cursorInfo = cursorInfo.bestTarget(map, &pos);
}
if (queryFlags() & QueryMessage::ReferencesForRenameSymbol) {
const SymbolMap all = cursorInfo.allReferences(pos, map);
bool classRename = false;
switch (cursorInfo.kind) {
case CXCursor_Constructor:
case CXCursor_Destructor:
classRename = true;
break;
default:
classRename = cursorInfo.isClass();
break;
}
for (SymbolMap::const_iterator a = all.begin(); a != all.end(); ++a) {
if (!classRename) {
references.insert(a->first);
} else {
enum State {
FoundConstructor = 0x1,
FoundClass = 0x2,
FoundReferences = 0x4
};
unsigned state = 0;
const SymbolMap targets = a->second.targetInfos(map);
for (SymbolMap::const_iterator t = targets.begin(); t != targets.end(); ++t) {
if (t->second.kind != a->second.kind)
state |= FoundReferences;
if (t->second.kind == CXCursor_Constructor) {
state |= FoundConstructor;
} else if (t->second.isClass()) {
state |= FoundClass;
}
}
if ((state & (FoundConstructor|FoundClass)) != FoundConstructor || !(state & FoundReferences)) {
references.insert(a->first);
}
}
}
} else if (queryFlags() & QueryMessage::FindVirtuals) {
const SymbolMap virtuals = cursorInfo.virtuals(pos, map);
for (SymbolMap::const_iterator v = virtuals.begin(); v != virtuals.end(); ++v) {
references.insert(v->first);
}
} else {
const SymbolMap callers = cursorInfo.callers(pos, map);
for (SymbolMap::const_iterator c = callers.begin(); c != callers.end(); ++c) {
references.insert(c->first);
}
}
}
}
}
List<Location> sorted = references.toList();
if (queryFlags() & QueryMessage::ReverseSort) {
std::sort(sorted.begin(), sorted.end(), std::greater<Location>());
} else {
std::sort(sorted.begin(), sorted.end());
}
// We don't want to do the startIndex stuff when renaming. The only way to
// tell the difference between rtags-find-all-references and
// rtags-rename-symbol is that the latter does a reverse sort. It kinda
// doesn't make sense to have this behavior in reverse sort anyway so I
// won't formalize the rename parameters to indicate that we're renaming
int startIndex = 0;
const int count = sorted.size();
if (!(queryFlags() & QueryMessage::ReverseSort) && sorted.size() != 1 && !startLocation.isNull()) {
startIndex = sorted.indexOf(startLocation) + 1;
}
const unsigned keyFlags = Job::keyFlags();
for (int i=0; i<count; ++i) {
const Location &loc = sorted.at((startIndex + i) % count);
write(loc.key(keyFlags));
//.........这里部分代码省略.........
示例8: while
void EditorExportPlatformBB10::_device_poll_thread(void *ud) {
EditorExportPlatformBB10 *ea=(EditorExportPlatformBB10 *)ud;
while(!ea->quit_request) {
String bb_deploy=EditorSettings::get_singleton()->get("export/blackberry/host_tools");
bb_deploy=bb_deploy.plus_file("blackberry-deploy");
bool windows = OS::get_singleton()->get_name()=="Windows";
if (windows)
bb_deploy+=".bat";
if (FileAccess::exists(bb_deploy)) {
Vector<Device> devices;
for (int i=0;i<MAX_DEVICES;i++) {
String host = EditorSettings::get_singleton()->get("export/blackberry/device_"+itos(i+1)+"/host");
if (host==String())
continue;
String pass = EditorSettings::get_singleton()->get("export/blackberry/device_"+itos(i+1)+"/password");
if (pass==String())
continue;
List<String> args;
args.push_back("-listDeviceInfo");
args.push_back(host);
args.push_back("-password");
args.push_back(pass);
int ec;
String dp;
Error err = OS::get_singleton()->execute(bb_deploy,args,true,NULL,&dp,&ec);
if (err==OK && ec==0) {
Device dev;
dev.index=i;
String descr;
Vector<String> ls=dp.split("\n");
for(int i=0;i<ls.size();i++) {
String l = ls[i].strip_edges();
if (l.begins_with("modelfullname::")) {
dev.name=l.get_slice("::",1);
descr+="Model: "+dev.name+"\n";
}
if (l.begins_with("modelnumber::")) {
String s = l.get_slice("::",1);
dev.name+=" ("+s+")";
descr+="Model Number: "+s+"\n";
}
if (l.begins_with("scmbundle::"))
descr+="OS Version: "+l.get_slice("::",1)+"\n";
if (l.begins_with("[n]debug_token_expiration::"))
descr+="Debug Token Expires:: "+l.get_slice("::",1)+"\n";
}
dev.description=descr;
devices.push_back(dev);
}
}
bool changed=false;
ea->device_lock->lock();
if (ea->devices.size()!=devices.size()) {
changed=true;
} else {
for(int i=0;i<ea->devices.size();i++) {
if (ea->devices[i].index!=devices[i].index) {
changed=true;
break;
}
}
}
if (changed) {
ea->devices=devices;
ea->devices_changed=true;
}
ea->device_lock->unlock();
}
uint64_t wait = 3000000;
uint64_t time = OS::get_singleton()->get_ticks_usec();
//.........这里部分代码省略.........
示例9: ERR_FAIL_INDEX_V
Error EditorExportPlatformBB10::run(int p_device, int p_flags) {
ERR_FAIL_INDEX_V(p_device,devices.size(),ERR_INVALID_PARAMETER);
String bb_deploy=EditorSettings::get_singleton()->get("export/blackberry/host_tools");
bb_deploy=bb_deploy.plus_file("blackberry-deploy");
if (OS::get_singleton()->get_name()=="Windows")
bb_deploy+=".bat";
if (!FileAccess::exists(bb_deploy)) {
EditorNode::add_io_error("Blackberry Deploy not found:\n"+bb_deploy);
return ERR_FILE_NOT_FOUND;
}
device_lock->lock();
EditorProgress ep("run","Running on "+devices[p_device].name,3);
//export_temp
ep.step("Exporting APK",0);
String export_to=EditorSettings::get_singleton()->get_settings_path().plus_file("/tmp/tmpexport.bar");
Error err = export_project(export_to,true,p_flags);
if (err) {
device_lock->unlock();
return err;
}
#if 0
ep.step("Uninstalling..",1);
print_line("Uninstalling previous version: "+devices[p_device].name);
List<String> args;
args.push_back("-s");
args.push_back(devices[p_device].id);
args.push_back("uninstall");
args.push_back(package);
int rv;
err = OS::get_singleton()->execute(adb,args,true,NULL,NULL,&rv);
if (err || rv!=0) {
EditorNode::add_io_error("Could not install to device.");
device_lock->unlock();
return ERR_CANT_CREATE;
}
print_line("Installing into device (please wait..): "+devices[p_device].name);
#endif
ep.step("Installing to Device (please wait..)..",2);
List<String> args;
args.clear();
args.push_back("-installApp");
args.push_back("-launchApp");
args.push_back("-device");
String host = EditorSettings::get_singleton()->get("export/blackberry/device_"+itos(p_device+1)+"/host");
String pass = EditorSettings::get_singleton()->get("export/blackberry/device_"+itos(p_device+1)+"/password");
args.push_back(host);
args.push_back("-password");
args.push_back(pass);
args.push_back(export_to);
int rv;
err = OS::get_singleton()->execute(bb_deploy,args,true,NULL,NULL,&rv);
if (err || rv!=0) {
EditorNode::add_io_error("Could not install to device.");
device_lock->unlock();
return ERR_CANT_CREATE;
}
device_lock->unlock();
return OK;
}
示例10: ep
//.........这里部分代码省略.........
if (file=="icon.png") {
bool found=false;
if (this->icon!="" && this->icon.ends_with(".png")) {
FileAccess *f = FileAccess::open(this->icon,FileAccess::READ);
if (f) {
data.resize(f->get_len());
f->get_buffer(data.ptr(),data.size());
memdelete(f);
found=true;
}
}
if (!found) {
String appicon = GlobalConfig::get_singleton()->get("application/icon");
if (appicon!="" && appicon.ends_with(".png")) {
FileAccess*f = FileAccess::open(appicon,FileAccess::READ);
if (f) {
data.resize(f->get_len());
f->get_buffer(data.ptr(),data.size());
memdelete(f);
}
}
}
}
if (file.find("/")) {
da->make_dir_recursive(file.get_base_dir());
}
FileAccessRef wf = FileAccess::open(bar_dir.plus_file(file),FileAccess::WRITE);
wf->store_buffer(data.ptr(),data.size());
ret = unzGoToNextFile(pkg);
}
ep.step("Adding Files..",2);
FileAccess* dst = FileAccess::open(bar_dir+"/data.pck", FileAccess::WRITE);
if (!dst) {
EditorNode::add_io_error("Can't copy executable file to:\n "+p_path);
return ERR_FILE_CANT_WRITE;
}
save_pack(dst, false, 1024);
dst->close();
memdelete(dst);
ep.step("Creating BAR Package..",104);
String bb_packager=EditorSettings::get_singleton()->get("export/blackberry/host_tools");
bb_packager=bb_packager.plus_file("blackberry-nativepackager");
if (OS::get_singleton()->get_name()=="Windows")
bb_packager+=".bat";
if (!FileAccess::exists(bb_packager)) {
EditorNode::add_io_error("Can't find packager:\n"+bb_packager);
return ERR_CANT_OPEN;
}
List<String> args;
args.push_back("-package");
args.push_back(p_path);
if (p_debug) {
String debug_token=EditorSettings::get_singleton()->get("export/blackberry/debug_token");
if (!FileAccess::exists(debug_token)) {
EditorNode::add_io_error("Debug token not found!");
} else {
args.push_back("-debugToken");
args.push_back(debug_token);
}
args.push_back("-devMode");
args.push_back("-configuration");
args.push_back("Device-Debug");
} else {
args.push_back("-configuration");
args.push_back("Device-Release");
}
args.push_back(bar_dir.plus_file("bar-descriptor.xml"));
int ec;
Error err = OS::get_singleton()->execute(bb_packager,args,true,NULL,NULL,&ec);
if (err!=OK)
return err;
if (ec!=0)
return ERR_CANT_CREATE;
return OK;
}
示例11: callbacks
void File_Browser::directory_update()
{
//DJV_DEBUG("File_Browser::directory_update");
//DJV_DEBUG_PRINT("value = " << _value);
callbacks(false);
// Set busy cursor.
Cursor cursor(FL_CURSOR_WAIT);
// Get directory contents.
const Directory directory(_value.path());
List<File> list = directory.list();
// File sequence directory contents.
File_Util::seq_compress(list, _seq);
// Filter directory contents.
if (! _hidden || _type != -1)
{
const File_Util::FILTER filter =
! _hidden ? File_Util::FILTER_HIDDEN : File_Util::FILTER_NONE;
List<String> glob;
if (_type != -1 &&
_type < static_cast<int>(_type_glob.size()))
{
const List<String> tmp = String_Util::split(_type_glob[_type], ',');
for (size_t i = 0; i < tmp.size(); ++i)
{
glob += tmp[i];
}
}
//DJV_DEBUG_PRINT("filter = " << filter);
//DJV_DEBUG_PRINT("glob = " << glob);
File_Util::filter(list, filter, glob, true);
}
// Sort directory contents.
File_Util::SORT sort = File_Util::SORT(0);
switch (_sort)
{
case SORT_NAME:
sort = File_Util::SORT_NAME;
break;
case SORT_TYPE:
sort = File_Util::SORT_TYPE;
break;
case SORT_SIZE:
sort = File_Util::SORT_SIZE;
break;
# if ! defined(DJV_WINDOWS)
case SORT_USER:
sort = File_Util::SORT_USER;
break;
# endif
case SORT_TIME:
sort = File_Util::SORT_TIME;
break;
default:
break;
}
File_Util::sort(list, sort, _sort_reverse);
if (_sort_directory)
{
File_Util::sort_directories_first(list);
}
// Add parent directory.
if (directory.is_valid())
{
list.push_front(File(_value.path() + ".."));
}
// Update browser widgets.
_columns->sort(_sort);
_columns->sort_reverse(_sort_reverse);
_browser->set(list, _image);
callbacks(true);
//.........这里部分代码省略.........
示例12: List
List(List &p){
pHead=p.getHead();
pTail=p.getTail();
count=p.getCount();
}
示例13: main
int main()
{
List<int> link;
link.push_back(31);
link.push_front(23);
link.push_back(12);
link.push_back(32);
link.push_back(76);
link.push_back(93);
link.push_back(34);
link.show();
link.reverse();
link.del(12);
link.show();
link.reverse();
link.show();
cout <<link.count(76) <<endl;
cout <<"end!\n";
cin.get();
cin.get();
return 0;
}
示例14: summarise_grouped
SEXP summarise_grouped(const DataFrame& df, const LazyDots& dots){
Data gdf(df) ;
int nexpr = dots.size() ;
int nvars = gdf.nvars() ;
check_not_groups(dots, gdf);
NamedListAccumulator<Data> accumulator ;
int i=0;
List results(nvars + nexpr) ;
for( ; i<nvars; i++){
results[i] = shared_SEXP(gdf.label(i)) ;
accumulator.set( PRINTNAME(gdf.symbol(i)), results[i] ) ;
}
Subsets subsets(gdf) ;
for( int k=0; k<nexpr; k++, i++ ){
Rcpp::checkUserInterrupt() ;
const Lazy& lazy = dots[k] ;
const Environment& env = lazy.env() ;
Shield<SEXP> expr_(lazy.expr()) ; SEXP expr = expr_ ;
boost::scoped_ptr<Result> res( get_handler( expr, subsets, env ) );
// if we could not find a direct Result
// we can use a GroupedCallReducer which will callback to R
if( !res ) {
res.reset( new GroupedCallReducer<Data, Subsets>( lazy.expr(), subsets, env) );
}
RObject result = res->process(gdf) ;
results[i] = result ;
accumulator.set( lazy.name(), result );
subsets.input( lazy.name(), SummarisedVariable(result) ) ;
}
List out = accumulator ;
copy_most_attributes( out, df) ;
out.names() = accumulator.names() ;
int nr = gdf.ngroups() ;
set_rownames(out, nr ) ;
if( gdf.nvars() > 1){
out.attr( "class" ) = classes_grouped<Data>() ;
List vars = gdf.data().attr("vars") ;
vars.erase( gdf.nvars() - 1) ;
out.attr( "vars") = vars ;
out.attr( "labels") = R_NilValue ;
out.attr( "indices") = R_NilValue ;
out.attr( "group_sizes") = R_NilValue ;
out.attr( "biggest_group_size") = R_NilValue ;
out.attr( "drop" ) = true ;
} else {
out.attr( "class" ) = classes_not_grouped() ;
SET_ATTRIB( out, strip_group_attributes(out) ) ;
}
return out ;
}
示例15: while
void ConnectionsDock::update_tree() {
tree->clear();
if (!selectedNode)
return;
TreeItem *root = tree->create_item();
List<MethodInfo> node_signals;
selectedNode->get_signal_list(&node_signals);
//node_signals.sort_custom<_ConnectionsDockMethodInfoSort>();
bool did_script = false;
StringName base = selectedNode->get_class();
while (base) {
List<MethodInfo> node_signals2;
Ref<Texture> icon;
String name;
if (!did_script) {
Ref<Script> scr = selectedNode->get_script();
if (scr.is_valid()) {
scr->get_script_signal_list(&node_signals2);
if (scr->get_path().is_resource_file())
name = scr->get_path().get_file();
else
name = scr->get_class();
if (has_icon(scr->get_class(), "EditorIcons")) {
icon = get_icon(scr->get_class(), "EditorIcons");
}
}
} else {
ClassDB::get_signal_list(base, &node_signals2, true);
if (has_icon(base, "EditorIcons")) {
icon = get_icon(base, "EditorIcons");
}
name = base;
}
TreeItem *pitem = NULL;
if (node_signals2.size()) {
pitem = tree->create_item(root);
pitem->set_text(0, name);
pitem->set_icon(0, icon);
pitem->set_selectable(0, false);
pitem->set_editable(0, false);
pitem->set_custom_bg_color(0, get_color("prop_subsection", "Editor"));
node_signals2.sort();
}
for (List<MethodInfo>::Element *E = node_signals2.front(); E; E = E->next()) {
MethodInfo &mi = E->get();
String signaldesc;
signaldesc = mi.name + "(";
PoolStringArray argnames;
if (mi.arguments.size()) {
signaldesc += " ";
for (int i = 0; i < mi.arguments.size(); i++) {
PropertyInfo &pi = mi.arguments[i];
if (i > 0)
signaldesc += ", ";
String tname = "var";
if (pi.type == Variant::OBJECT && pi.class_name != StringName()) {
tname = pi.class_name.operator String();
} else if (pi.type != Variant::NIL) {
tname = Variant::get_type_name(pi.type);
}
signaldesc += tname + " " + (pi.name == "" ? String("arg " + itos(i)) : pi.name);
argnames.push_back(pi.name + ":" + tname);
}
signaldesc += " ";
}
signaldesc += ")";
TreeItem *item = tree->create_item(pitem);
item->set_text(0, signaldesc);
Dictionary sinfo;
sinfo["name"] = mi.name;
sinfo["args"] = argnames;
item->set_metadata(0, sinfo);
item->set_icon(0, get_icon("Signal", "EditorIcons"));
List<Object::Connection> connections;
selectedNode->get_signal_connection_list(mi.name, &connections);
for (List<Object::Connection>::Element *F = connections.front(); F; F = F->next()) {
//.........这里部分代码省略.........