JNIEXPORT void JNICALL Java_org_adaptinet_sdk_fastcache_DataArray_setDataItems(JNIEnv *env, jobject _this, jlong idx, jint nelem, jobjectArray ja, jint ja_start)
{
	try
	{
		DATAARRAY * pda = getDataArray(env, _this); 
		DATATYPE dt;
		DataArrayGetDatatype(pda, &dt); 
		unsigned long len = env->GetArrayLength(ja);
		if(len > numElements(pda)) 
		{ 
			len = numElements(pda); 
		} 
		if(dt==DT_DATAITEM) 
		{
			DATAITEM di;
			DataItemInit(&di);
			for(unsigned long i=ja_start,j=idx;i<ja_start+nelem;i++,j++)
			{
				jobject var = env->GetObjectArrayElement(ja, i);
				DATAITEM *di  = getDataItem(env, var);
				unsigned long x = j;
				DataArrayPutElement(pda,&x,di);
			} 
		}
		else 
		{	
			ThrowFastCacheException(env, "dataarray type is not dataItem", -1);
		} 
	}
	catch(...)
	{	
		ThrowFastCacheException(env, "dataarray error setting dataItem", -1);
	} 
}
JNIEXPORT void JNICALL Java_org_adaptinet_sdk_fastcache_DataArray_fromDataItemArray(JNIEnv *env, jobject _this, jobjectArray a)
{
	try
	{
		DATAARRAY * pda = getDataArray(env, _this);
		DATATYPE dt;
		DataArrayGetDatatype(pda, &dt);
		unsigned long len = env->GetArrayLength(a);
		if(len > numElements(pda)) 
		{
			len = numElements(pda);
		}
		if(dt==DT_DATAITEM) 
		{
			for(unsigned long i=0;i<len;i++) 
			{
				jobject var = env->GetObjectArrayElement(a, i);
				DATAITEM * di  = getDataItem(env, var);
				unsigned long x = i;
				if(di) DataArrayPutElement(pda,&x,di);
			}
		} 
		else 
		{
			ThrowFastCacheException(env, "dataarray cannot be assigned from dataItem", -1);
		}
	}
	catch(JNIException & ex)
	{
		JNIException::lastError = ex.getErrorCode();
	}
}
JNIEXPORT void JNICALL Java_org_adaptinet_sdk_fastcache_DataArray_getDataItems(JNIEnv *env, jobject _this, jlong idx, jint nelem, jobjectArray ja, jint ja_start)
{
	try
	{
		DATAARRAY *da = getDataArray(env, _this);
		unsigned long num = DataArrayGetElemsize(da);
		DATATYPE dt; 
		DataArrayGetDatatype(da, &dt); 
		if(dt==DT_DATAITEM) 
		{
			for(unsigned long i=0, j=ja_start;i<num;i++,j++) 
			{
				unsigned long ix = i;
				jobject newDataItem = env->NewObject(dataItemClass, dataItemCons);
				DATAITEM *di = getDataItem(env, newDataItem);
				DataArrayGetElement(da, &ix, (void*) di);
				env->SetObjectArrayElement(ja, j, newDataItem);
			} 
		}
		else 
		{
			ThrowFastCacheException(env, "dataarray type is not dataItem", -1);
		}
	}
	catch(...)
	{	
		ThrowFastCacheException(env, "dataarray error setting dataItem", -1);
	} 
}
Ejemplo n.º 4
0
DataItem DataLayout::item(bool hasSubitems) const
{
	if (!hasSubitems) {
		Q_ASSERT(m_widgets.count() == 1);
		const WidgetLine &line = m_widgets.first();
		return getDataItem(line.title, line.data);
	} else {
		return item();
	}
}
Ejemplo n.º 5
0
void Appt::copyTo(Appt *precord)
{
	int roundcount = 0;
	precord->setType(getType());
	precord->setKey(getKey());

	for(roundcount = 0; roundcount < APPTNUMFIELDS; roundcount++)
	{	precord->setDataItem(getDataItem(roundcount), roundcount);
	}
	precord->setItemUnChanged();	

}
Ejemplo n.º 6
0
// compares 2 patient records, "THIS object, and the pointer passed
// Usually used to check if record changed before this new record
// will be commited to the db
bool Appt::compareTo(Appt *comp_record)
{
	bool result = true;

	for(int i = 0; i < APPTNUMFIELDS; i++)
	{
		if(getDataItem(i) != comp_record->getDataItem(i))
			result = false;

	}

   return result;
}
Ejemplo n.º 7
0
static DataOffset
getUnicodeRowOffset (TextTableData *ttd, wchar_t character, int allocate) {
  DataOffset planeOffset = getUnicodePlaneOffset(ttd, character, allocate);
  if (!planeOffset) return 0;

  {
    UnicodePlaneEntry *plane = getDataItem(ttd->area, planeOffset);
    unsigned int rowNumber = UNICODE_ROW_NUMBER(character);
    DataOffset rowOffset = plane->rows[rowNumber];

    if (!rowOffset && allocate) {
      if (!allocateDataItem(ttd->area, &rowOffset, 
                            sizeof(UnicodeRowEntry),
                            __alignof__(UnicodeRowEntry)))
        return 0;

      plane = getDataItem(ttd->area, planeOffset);
      plane->rows[rowNumber] = rowOffset;
    }

    return rowOffset;
  }
}
Ejemplo n.º 8
0
static DataOffset
getUnicodePlaneOffset (TextTableData *ttd, wchar_t character, int allocate) {
  DataOffset groupOffset = getUnicodeGroupOffset(ttd, character, allocate);
  if (!groupOffset) return 0;

  {
    UnicodeGroupEntry *group = getDataItem(ttd->area, groupOffset);
    unsigned int planeNumber = UNICODE_PLANE_NUMBER(character);
    DataOffset planeOffset = group->planes[planeNumber];

    if (!planeOffset && allocate) {
      if (!allocateDataItem(ttd->area, &planeOffset, 
                            sizeof(UnicodePlaneEntry),
                            __alignof__(UnicodePlaneEntry)))
        return 0;

      group = getDataItem(ttd->area, groupOffset);
      group->planes[planeNumber] = planeOffset;
    }

    return planeOffset;
  }
}
JNIEXPORT void JNICALL Java_org_adaptinet_sdk_fastcache_DataArray_setDataItem(JNIEnv *env, jobject _this, jlong idx, jobject s)
{
	DATAARRAY *da = getDataArray(env, _this);
	DATATYPE dt;
	DataArrayGetDatatype(da, &dt);
	DATAITEM *di = getDataItem(env, s);
	if(dt==DT_DATAITEM) 
	{
	    DataArrayPutElement(da,(unsigned long *)&idx,di);
	} 
	else 
	{
		ThrowFastCacheException(env, "dataarray type is not dataItem/dispatch", -1);
	}
}
JNIEXPORT jobjectArray JNICALL Java_org_adaptinet_sdk_fastcache_DataArray_toDataItemArray(JNIEnv *env, jobject _this)
{
	DATAARRAY *da = getDataArray(env, _this);
	int num = DataArrayGetElemsize(da);

	jobjectArray varr = env->NewObjectArray(num, dataItemClass, 0);
	for(int i=0;i<num;i++) 
	{
		unsigned long ix = i;
	    jobject newDataItem = env->NewObject(dataItemClass, dataItemCons);
	    DATAITEM *di = getDataItem(env, newDataItem);
	    DataArrayGetElement(da, &ix, (void*) di);
		env->SetObjectArrayElement(varr, i, newDataItem);
	}
	return varr;
}
JNIEXPORT jobject JNICALL Java_org_adaptinet_sdk_fastcache_DataArray_getDataItem(JNIEnv *env, jobject _this, jlong idx)
{
	DATAARRAY * pda = getDataArray(env, _this);
	DATATYPE dt;
	DataArrayGetDatatype(pda, &dt);
	jobject newDataItem = env->NewObject(dataItemClass, dataItemCons);
	DATAITEM *di = getDataItem(env, newDataItem);
	if(dt==DT_DATAITEM) 
	{
	    DataArrayGetElement(pda, (unsigned long *)&idx, di);
	} 
	else 
	{
		ThrowFastCacheException(env, "dataarray type is not dataItem/dispatch", -1);
	}
	return newDataItem;
}
    bool GalacticusReader::getItemInRow(DBDataSchema::DataObjDesc * thisItem, bool applyAsserters, bool applyConverters, void* result) {
        //reroute constant items:
        if(thisItem->getIsConstItem() == true) {
            getConstItem(thisItem, result);
        } else if (thisItem->getIsHeaderItem() == true) {
            printf("We never told you to read headers...\n");
            exit(EXIT_FAILURE);
        } else {
            getDataItem(thisItem, result);
        }
        //cout << " again ioutput: " << ioutput << endl;
        //check assertions
        //checkAssertions(thisItem, result);
        
        //apply conversion
        //applyConversions(thisItem, result);

        return 0;
    }
Ejemplo n.º 13
0
void *
getTextTableItem (TextTableData *ttd, TextTableOffset offset) {
  return getDataItem(ttd->area, offset);
}
Ejemplo n.º 14
0
static UnicodeRowEntry *
getUnicodeRowEntry (TextTableData *ttd, wchar_t character, int allocate) {
  DataOffset rowOffset = getUnicodeRowOffset(ttd, character, allocate);
  if (!rowOffset) return NULL;
  return getDataItem(ttd->area, rowOffset);
}
Ejemplo n.º 15
0
int
saveDataItem (DataArea *area, DataOffset *offset, const void *item, size_t size, size_t alignment) {
  if (!allocateDataItem(area, offset, size, alignment)) return 0;
  memcpy(getDataItem(area, *offset), item, size);
  return 1;
}