Esempio n. 1
0
  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;
  }
Esempio n. 2
0
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();
}
Esempio n. 3
0
 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;
 }
Esempio n. 4
0
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();
}
Esempio n. 5
0
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();
}
Esempio n. 6
0
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();
}
Esempio n. 7
0
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();
}
Esempio n. 8
0
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();
}
Esempio n. 9
0
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();
}
Esempio n. 10
0
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();
}
Esempio n. 11
0
/*
 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;
}
Esempio n. 12
0
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();
}
Esempio n. 13
0
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; }
}
Esempio n. 14
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();
}
Esempio n. 15
0
/*
 * 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;
}
Esempio n. 16
0
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();
}
Esempio n. 17
0
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();
}
Esempio n. 18
0
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;
}
Esempio n. 19
0
 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;
 }
Esempio n. 20
0
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 */
}
Esempio n. 21
0
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);
}