std::vector<int> exclusiveTime(int n, std::vector<std::string>& L) { std::vector<int> rslt(n, 0); std::stack<std::pair<int, int>> stck; // id, start for (const auto& s : L) { std::string t; std::istringstream iss(s); std::getline(iss, t, ':'); int idx = std::stoi(t); std::getline(iss, t, ':'); std::string act = t; std::getline(iss, t, ':'); int ts = std::stoi(t); // time stamp // printf("%d %s %d\n", idx, act.c_str(), ti); if (act == "start") { stck.push({idx, ts}); } else { auto pr = stck.top(); stck.pop(); int dtime = ts - pr.second + 1; rslt[pr.first] += dtime; if (!stck.empty()) rslt[stck.top().first] -= dtime; } } return rslt; }
CMPIStatus CmpiPropertyMI::driveGetProperty (CMPIPropertyMI* mi, CMPIContext* eCtx, CMPIResult* eRslt, CMPIObjectPath* eCop, char* name) { const CmpiContext ctx(eCtx); CmpiResult rslt(eRslt); const CmpiObjectPath cop(eCop); return ((CmpiPropertyMI*)mi->hdl)->getProperty (ctx,rslt,cop,(const char*)name).status(); }
std::vector<int> countBits(int n) { std::vector<int> rslt(n+1, 0); for (int i = 1; i <= n; ++i) { rslt[i] = rslt[i >> 1]; if (i & 1) rslt[i]++; } return rslt; }
CMPIStatus CmpiInstanceMI::driveGetInstance (CMPIInstanceMI* mi, CMPIContext* eCtx, CMPIResult* eRslt, CMPIObjectPath* eCop, const char** properties) { CmpiContext ctx(eCtx); CmpiResult rslt(eRslt); CmpiObjectPath cop(eCop); return ((CmpiInstanceMI*)mi->hdl)->getInstance (ctx,rslt,cop,properties).status(); }
CMPIStatus CmpiInstanceMI::driveExecQuery (CMPIInstanceMI* mi, CMPIContext* eCtx, CMPIResult* eRslt, CMPIObjectPath* eCop, char* language ,char* query) { CmpiContext ctx(eCtx); CmpiResult rslt(eRslt); CmpiObjectPath cop(eCop); return ((CmpiInstanceMI*)mi->hdl)->execQuery (ctx,rslt,cop,language,query).status(); }
CMPIStatus CmpiIndicationMI::driveAuthorizeFilter (CMPIIndicationMI* mi, CMPIContext* eCtx, CMPIResult* eRslt, CMPISelectExp* eSe, char* ns, CMPIObjectPath* eCop, char* user){ const CmpiContext ctx(eCtx); CmpiResult rslt(eRslt); const CmpiObjectPath cop(eCop); const CmpiSelectExp se(eSe); return ((CmpiIndicationMI*)mi->hdl)->authorizeFilter (ctx,rslt,se,(const char*)ns,cop,(const char*)user).status(); }
CMPIStatus CmpiIndicationMI::driveMustPoll (CMPIIndicationMI* mi, CMPIContext* eCtx, CMPIResult* eRslt, CMPISelectExp* eSe, char* ns, CMPIObjectPath* eCop){ const CmpiContext ctx(eCtx); CmpiResult rslt(eRslt); const CmpiObjectPath cop(eCop); const CmpiSelectExp se(eSe); return ((CmpiIndicationMI*)mi->hdl)->mustPoll (ctx,rslt,se,(const char*)ns,cop).status(); }
CMPIStatus CmpiIndicationMI::driveDeActivateFilter (CMPIIndicationMI* mi, CMPIContext* eCtx, CMPIResult* eRslt, CMPISelectExp* eSe, char* ns, CMPIObjectPath* eCop, CMPIBoolean last){ const CmpiContext ctx(eCtx); CmpiResult rslt(eRslt); const CmpiObjectPath cop(eCop); const CmpiSelectExp se(eSe); return ((CmpiIndicationMI*)mi->hdl)->deActivateFilter (ctx,rslt,se,(const char*)ns,cop,last).status(); }
CMPIStatus CmpiInstanceMI::driveEnumInstanceNames (CMPIInstanceMI* mi,CMPIContext* eCtx, CMPIResult* eRslt, CMPIObjectPath* eCop) { CmpiContext ctx(eCtx); CmpiResult rslt(eRslt); CmpiObjectPath cop(eCop); return ((CmpiInstanceMI*)mi->hdl)->enumInstanceNames (ctx,rslt,cop).status(); }
CMPIStatus CmpiAssociationMI::driveReferenceNames (CMPIAssociationMI* mi, CMPIContext* eCtx, CMPIResult* eRslt, CMPIObjectPath* eOp, char* resultClass, char* role) { CmpiContext ctx(eCtx); CmpiResult rslt(eRslt); CmpiObjectPath cop(eOp); return ((CmpiAssociationMI*)mi->hdl)->referenceNames (ctx,rslt,cop, (const char*)resultClass,(const char*)role).status(); }
/* Returns the results as a json array of json objects */ Json::Value MushiDBResult::getJson(){ Json::Value rslt(Json::arrayValue); for(int r=1;r<this->row+1;r++){ Json::Value row; for(int c=0;c<this->column;c++){ row[this->getCell(0, c)] =this->getCell(r, c); } rslt.append(row); } return rslt; }
CMPIStatus CmpiInstanceMI::driveCreateInstance (CMPIInstanceMI* mi, CMPIContext* eCtx, CMPIResult* eRslt, CMPIObjectPath* eCop, CMPIInstance* eInst) { CmpiContext ctx(eCtx); CmpiResult rslt(eRslt); CmpiObjectPath cop(eCop); CmpiInstance inst(eInst); return ((CmpiInstanceMI*)mi->hdl)->createInstance (ctx,rslt,cop,inst).status(); }
static PyObject* PyView_addproperty(PyView *o, PyObject* _args) { try { PWOSequence args(_args); PWOBase prop(args[0]); if (!PyProperty_Check((PyObject* )prop)) Fail(PyExc_TypeError, "Not a Property object"); PWONumber rslt(o->AddProperty(*(PyProperty *)(PyObject* )prop)); return rslt.disOwn(); } catch (...) { return 0; } }
CMPIStatus CmpiAssociationMI::driveAssociators (CMPIAssociationMI* mi, CMPIContext* eCtx, CMPIResult* eRslt, CMPIObjectPath* eOp, char* assocClass, char* resultClass, char* role, char* resultRole, const char** properties) { CmpiContext ctx(eCtx); CmpiResult rslt(eRslt); CmpiObjectPath cop(eOp); return ((CmpiAssociationMI*)mi->hdl)->associators (ctx,rslt,cop, (const char*)assocClass,(const char*)resultClass, (const char*)role,(const char*)resultRole,properties).status(); }
/* * Returns the result as a json array of json objects. * Each json object may have nested json objects. * The column names specify the path to the nested object, with each object name seperated by an underscore. */ Json::Value MushiDBResult::getNestedJson(){ Json::Value rslt(Json::arrayValue); for(int r=1;r<this->row+1;r++){ Json::Value row; for(int c=0;c<this->column;c++){ Json::Value obj; this->setNestedJsonObjectValue(row,this->getCell(0, c),this->getCell(r, c)); } rslt.append(row); } return rslt; }
CMPIStatus CmpiMethodMI::driveInvokeMethod (CMPIMethodMI* mi, CMPIContext* eCtx, CMPIResult* eRslt, CMPIObjectPath* eCop, char* methodName, CMPIArgs* eIn, CMPIArgs* eOut) { const CmpiContext ctx(eCtx); CmpiResult rslt(eRslt); const CmpiObjectPath cop(eCop); const CmpiArgs in(eIn); CmpiArgs out(eOut); return ((CmpiMethodMI*)mi->hdl)->invokeMethod (ctx,rslt,cop,(const char*)methodName,in,out).status(); }
PyObject* PyView::structure() { int n = NumProperties(); // PyObject* list=PyList_New(n); // for (int i = 0; i < n; i++) // PyList_SET_ITEM(list, i, new PyProperty(NthProperty(i))); // return list; PWOList rslt(n); for (int i = 0; i < n; i++) { PyProperty *prop = new PyProperty(NthProperty(i)); rslt.setItem(i, prop); } return rslt.disOwn(); }
PyObject *PyView::reduce(const PWOCallable& func, PWONumber& start) { PWONumber accum = start; PWOTuple tmp(2); for (int i=0; i<GetSize(); ++i) { PyRowRef *row = new PyRowRef(GetAt(i)); PWOBase r2 (row); tmp.setItem(0,r2); tmp.setItem(1,accum); PWOBase rslt(func.call(tmp)); accum = rslt; Py_DECREF(row); } return accum; }
static WeakPtr start(Commandline::Ptr commandline, const String& input, HeapHashMap<String,String>::Ptr additionalEnvironment, Callback<Result>::Ptr finishedCallback) { OwningPtr rslt(new ProgramExecutor()); rslt->additionalEnvironment = additionalEnvironment; rslt->input = input; rslt->commandline = commandline; rslt->finishedCallback = finishedCallback; rslt->startExecuting(); EventDispatcher::getInstance()->registerRunningComponent(rslt); return rslt; }
static PyObject *PyStorage_Description(PyStorage *o, PyObject *_args) { try { PWOSequence args(_args); PWOString nm(""); if (args.len() > 0) nm = args[0]; const char *descr = o->Description(nm); if (descr) { PWOString rslt(descr); return rslt.disOwn(); } Fail(PyExc_KeyError, nm); } catch (...){} return 0; /* satisfy compiler */ }
PyView *PyView::filter(const PWOCallable& func) { c4_View indices(_index); c4_Row ndx; PWOTuple tmp(1); for (int i=0; i<GetSize(); ++i) { PyRowRef *row = new PyRowRef(GetAt(i)); PWOBase r2 (row); tmp.setItem(0,r2); PWOBase rslt(func.call(tmp)); if (rslt.isTrue()) { _index(ndx) = i; indices.Add(ndx); } Py_DECREF(row); } return new PyView(indices); }