コード例 #1
0
ファイル: Cache.cpp プロジェクト: LucyScott/mdsplus
int appendRow(char *name, int shot, int nid, int *bounds, int boundsSize, char *data,
										 int dataSize, _int64 timestamp, int writeMode, char *cachePtr)
{
	TreeDescriptor treeIdx(name, shot);
	return ((Cache *)cachePtr)->appendRow(treeIdx, nid, bounds, boundsSize, data, dataSize, 
		timestamp, writeMode);
}
コード例 #2
0
ファイル: Cache.cpp プロジェクト: LucyScott/mdsplus
int beginTimestampedSegment(char *name, int shot, int nid, int idx, int numItems, char *shape, int shapeSize, char *data, int dataSize, 
									_int64 start, _int64 end, char *dim, int dimSize, int writeThrough, char *cachePtr)
{
	TreeDescriptor treeIdx(name, shot);
	return ((Cache *)cachePtr)->beginTimestampedSegment(treeIdx, nid, idx, numItems, shape, shapeSize, data, 
			dataSize, start, end, dim, dimSize, writeThrough);
}
コード例 #3
0
ファイル: Cache.cpp プロジェクト: LucyScott/mdsplus
int appendTimestampedSegmentData(char *name, int shot, int nid, int *bounds, int boundsSize, char *data, 
										 int dataSize, int idx, int startIdx, _int64 *timestamps, int numTimestamps, int writeMode, char *cachePtr)

{
	TreeDescriptor treeIdx(name, shot);
	return ((Cache *)cachePtr)->appendTimestampedSegmentData(treeIdx, nid, bounds, boundsSize, data, dataSize, idx, startIdx, 
		timestamps, numTimestamps, writeMode);
}
コード例 #4
0
ファイル: Cache.cpp プロジェクト: LucyScott/mdsplus
int beginSegment(char *name, int shot, int nid, int idx, char *start, int startSize, char *end, int endSize, 
									char *dim, int dimSize, char *shape, int shapeSize, char *data, int dataSize, 
									int writeThrough, char *cachePtr)
{
	TreeDescriptor treeIdx(name, shot);
	return ((Cache *)cachePtr)->beginSegment(treeIdx, nid, idx, start, startSize, end, endSize, dim, dimSize, shape, shapeSize, data, 
			dataSize, writeThrough);
}
コード例 #5
0
ファイル: Cache.cpp プロジェクト: LucyScott/mdsplus
int getSegmentData(char *name, int shot, int nid, int idx, char **dim, int *dimSize, char **data, int *dataSize,char **shape, 
				   int *shapeSize, int *currDataSize, char *timestamped, char *cachePtr)
{
	bool boolTimestamped;
	int status;
	int actSamples;
	TreeDescriptor treeIdx(name, shot);
	status = ((Cache *)cachePtr)->getSegmentData(treeIdx, nid, idx, dim, dimSize, data, dataSize, shape, 
		shapeSize, currDataSize, &boolTimestamped, &actSamples);
	*timestamped = (boolTimestamped)?1:0;
	return status;
}
コード例 #6
0
ファイル: Cache.cpp プロジェクト: LucyScott/mdsplus
int putRecord(char *name, int shot, int nid, char dataType, int numSamples, char *data, int size, int writeThrough, char *cachePtr)
{
	TreeDescriptor treeIdx(name, shot);
	return ((Cache *)cachePtr)->putRecord(treeIdx, nid, dataType, numSamples, data, size, writeThrough);
}
コード例 #7
0
ファイル: Cache.cpp プロジェクト: LucyScott/mdsplus
int discardData(char *name, int shot, int nid, char *cachePtr)
{
	TreeDescriptor treeIdx(name, shot);
	return ((Cache *)cachePtr)->discardData(treeIdx, nid);
}
コード例 #8
0
ファイル: Cache.cpp プロジェクト: LucyScott/mdsplus
int discardOldSegments(char *name, int shot, int nid, _int64 timestamp, char *cachePtr)
{
	TreeDescriptor treeIdx(name, shot);
	return ((Cache *)cachePtr)->discardOldSegments(treeIdx, nid, timestamp);
}
コード例 #9
0
ファイル: Cache.cpp プロジェクト: LucyScott/mdsplus
int getNumSegments(char *name, int shot, int nid, int *numSegments, char *cachePtr)
{
	TreeDescriptor treeIdx(name, shot);
	return ((Cache *)cachePtr)->getNumSegments(treeIdx, nid, numSegments);
}
コード例 #10
0
ファイル: Cache.cpp プロジェクト: LucyScott/mdsplus
int flushNode(char *name, int shot, int nid, char *cachePtr)
{
	TreeDescriptor treeIdx(name, shot);
	return ((Cache *)cachePtr)->flush(treeIdx, nid);
}
コード例 #11
0
ファイル: Cache.cpp プロジェクト: LucyScott/mdsplus
int flushTree(char *name, int shot, char *cachePtr)
{
	TreeDescriptor treeIdx(name, shot);
	return ((Cache *)cachePtr)->flush(treeIdx);
}
コード例 #12
0
ファイル: Cache.cpp プロジェクト: LucyScott/mdsplus
int isSegmented(char *name, int shot, int nid, int *segmented, char *cachePtr)

{
	TreeDescriptor treeIdx(name, shot);
	return ((Cache *)cachePtr)->isSegmented(treeIdx, nid, segmented);
}
コード例 #13
0
ファイル: Cache.cpp プロジェクト: LucyScott/mdsplus
int getLastSegmentInfo(char *name, int shot, int nid, int **shape, int *shapeSize, int *currDataSize, char *cachePtr)
{
	TreeDescriptor treeIdx(name, shot);
	return ((Cache *)cachePtr)->getSegmentInfo(treeIdx, nid, shape, shapeSize, currDataSize);
}
コード例 #14
0
ファイル: Cache.cpp プロジェクト: LucyScott/mdsplus
int getSegmentLimits(char *name, int shot, int nid, int idx, char **start, int *startSize, char **end, int *endSize, char *timestamped, char *cachePtr)
{
	TreeDescriptor treeIdx(name, shot);
	return ((Cache *)cachePtr)->getSegmentLimits(treeIdx, nid, idx, start, startSize, end, endSize, timestamped);
}
コード例 #15
0
ファイル: Cache.cpp プロジェクト: LucyScott/mdsplus
int getRecord(char *name, int shot, int nid, char *dataType, int *numSamples, char **data, int *size, char *cachePtr)
{
	TreeDescriptor treeIdx(name, shot);
	return ((Cache *)cachePtr)->getRecord(treeIdx, nid, dataType, numSamples, data, size);
}
コード例 #16
0
ファイル: Cache.cpp プロジェクト: LucyScott/mdsplus
void *setCallback(char *name, int shot, int nid, void *argument, void (* callback)(int, void *), void *cachePtr)
{
	TreeDescriptor treeIdx(name, shot);
	return ((Cache *)cachePtr)->setCallback(treeIdx, nid, argument, callback);
}
コード例 #17
0
ファイル: Cache.cpp プロジェクト: LucyScott/mdsplus
int  clearCallback(char *name, int shot, int nid, char *callbackDescr, void *cachePtr)
{
	TreeDescriptor treeIdx(name, shot);
	return ((Cache *)cachePtr)->clearCallback(treeIdx, nid, callbackDescr);
}
コード例 #18
0
ファイル: Cache.cpp プロジェクト: LucyScott/mdsplus
int terminateSegment(char *name, int shot, int nid, char *cachePtr)
{
	TreeDescriptor treeIdx(name, shot);
	return ((Cache *)cachePtr)->terminateSegment(treeIdx, nid);
}
コード例 #19
0
void CoherencyManager::handleMessage(ChannelAddress *senderAddr, int senderIdx, char *buf, int bufLen, char type)
//Handle messages from other caches in the system. This is run by a single process on every machine.
{

	switch(type)
	{
		case REQUEST_DATA_TYPE:
		{
			int nid = channel->toNative(*(unsigned int *)buf);
			int shotNum = channel->toNative(((int *)buf)[1]);
			char nameLen = buf[2*sizeof(int)];
			char *name = new char[nameLen+1];
			memcpy(name, &buf[2*sizeof(int)+1], nameLen);
			name[nameLen] = 0;
			TreeDescriptor treeIdx(name, shotNum);
			handleRequestDataMsg(treeIdx, nid, senderAddr, senderIdx);
			delete [] name;
			break;
		}
		case OWNERSHIP_TYPE:
		{
			int nid = channel->toNative(*(unsigned int *)buf);
			int shotNum = channel->toNative(((int *)buf)[1]);
			char nameLen = buf[2*sizeof(int)];
			char *name = new char[nameLen+1];
			memcpy(name, &buf[2*sizeof(int)+1], nameLen);
			name[nameLen] = 0;
			TreeDescriptor treeIdx(name, shotNum);
			int timestamp = channel->toNative(((unsigned int *)buf)[2]);
			char ownerIdx = buf[3 * sizeof(int)];
			handleOwnershipMsg(treeIdx, nid, timestamp, ownerIdx, senderAddr, senderIdx);
			delete [] name;
			break;
		}
		case OWNERSHIP_WARM_ACK_TYPE:
		{
			int nid = channel->toNative(*(unsigned int *)buf);
			int shotNum = channel->toNative(((int *)buf)[1]);
			char nameLen = buf[2*sizeof(int)];
			char *name = new char[nameLen+1];
			memcpy(name, &buf[2*sizeof(int)+1], nameLen);
			name[nameLen] = 0;
			TreeDescriptor treeIdx(name, shotNum);
			handleOwnershipWarmMessage(treeIdx, nid, senderAddr, senderIdx);
			delete [] name;
			break;
		}

		case DATA_TYPE:
		{
			int nid = channel->toNative(*(unsigned int *)buf);
			int shotNum = channel->toNative(((int *)buf)[1]);
			char nameLen = buf[2*sizeof(int)];
			char *name = new char[nameLen+1];
			memcpy(name, &buf[2*sizeof(int)+1], nameLen);
			name[nameLen] = 0;
			TreeDescriptor treeIdx(name, shotNum);
			handleDataMsg(treeIdx, nid, &buf[2*sizeof(int) + 1 + nameLen], bufLen - (2*sizeof(int) + 1 + nameLen), senderAddr, senderIdx);
			delete [] name;
			break;
		}
		case DIRTY_TYPE:
		{
			int nid = channel->toNative(*(unsigned int *)buf);
			int shotNum = channel->toNative(((int *)buf)[1]);
			char nameLen = buf[2*sizeof(int)];
			char *name = new char[nameLen+1];
			memcpy(name, &buf[2*sizeof(int)+1], nameLen);
			name[nameLen] = 0;
			TreeDescriptor treeIdx(name, shotNum);
			handleDirtyMsg(treeIdx, nid, senderAddr, senderIdx);
			delete[] name;
			break;
		}
		default: printf("Unsupported message type received: %d\n", type);
	}
}