Exemple #1
0
ArrayList registrySerializeToCommands(Registry registry){
	RegistryInternal* internal=(RegistryInternal*)registry;

	ArrayList commands=arrayListCreate();
	Array nodeArray;
	hashmapToArray(internal->nodes,&nodeArray);
	int length=arrayGetLength(nodeArray);
	int i;
        int coreManagerId=SERVER_COREMANAGER_ID;
        int serverSessionId=SERVER_SESSION_ID;
	for(i=0;i<length;i++){
		Node node=arrayGetObject(nodeArray,i);
		int schemaId=node->schemaId;
		int locked=node->locked;
		int version=-1;
		int commandType=CREATE_NEW_ENTITY;
		int entityId=node->id;
                
		Command command=commandCreate();
		commandPush(command,COMMAND_TYPE,INTEGER,&commandType,SIZE_OF_INT);
		commandPush(command,LOCK,INTEGER,&locked,SIZE_OF_INT);
		commandPush(command,SCHEMA_ID,INTEGER,&schemaId,SIZE_OF_INT);
		commandPush(command,ENTITY_ID,INTEGER,&entityId,SIZE_OF_INT);
		commandPush(command,VERSION,INTEGER,&version,SIZE_OF_INT);
                commandPush(command,ATTRIBUTES,ATTRIBUTES_MAP,node->attributes,CONTAINER_SIZE);
                commandPush(command,CORE_MANAGER_ID,INTEGER,&coreManagerId,0);
                commandPush(command,SESSION_ID,INTEGER,&serverSessionId,0);
		arrayListAddLast(commands,command);
	}
	for(i=0;i<length;i++){
		Node node=arrayGetObject(nodeArray,i);
		NodeInternal* nodeInternal=(NodeInternal*)node;
		Array children;
		stringHashmapToArray(nodeInternal->children,&children);
		int childrenAmount=arrayGetLength(children);
		int version=-1;
		int schemaId=node->schemaId;
		int j;
		int commandType=ADD_CHILD_ENTITY_TO_PARENT_ENTITY;
		for(j=0;j<childrenAmount;j++){
			Arc childArc=arrayGetObject(children,j);                       
			Command command=commandCreate();
			commandPush(command,COMMAND_TYPE,INTEGER,&commandType,SIZE_OF_INT);
			commandPush(command,ENTITY_ID,INTEGER,&node->id,SIZE_OF_INT);
			commandPush(command,ENTITY_CHILD_ID,INTEGER,&childArc->child->id,SIZE_OF_INT);
			commandPush(command,SCHEMA_ID,INTEGER,&schemaId,SIZE_OF_INT);
			commandPush(command,VERSION,INTEGER,&version,SIZE_OF_INT);
                        commandPush(command,CORE_MANAGER_ID,INTEGER,&coreManagerId,SIZE_OF_INT);
                        commandPush(command,SESSION_ID,INTEGER,&serverSessionId,SIZE_OF_INT);
                        commandPush(command,ARC_NAME,BYTE_ARRAY,childArc->arcName,childArc->arcLength);
			arrayListAddLast(commands,command);
		}
                arrayFree(children);
	}
        arrayFree(nodeArray);
	return commands;
}       
Exemple #2
0
int executeCommand(programOptions po)
{
	switch (programOptionsGetMode(po))
	{
	case MODE_ADD:
		return commandAdd(po);
		break;
	case MODE_DELETE:
		return commandDelete(po);
		break;
	case MODE_EXTRACT:
		return commandExtract(po);
		break;
	case MODE_UPDATE:
		return commandUpdate(po);
		break;
	case MODE_CREATE:
		return commandCreate(po);
		break;
	case MODE_LIST:
		return commandList(po);
		break;
	case MODE_DIFF:
		return commandDiff(po);
		break;
	case MODE_HELP:
		return commandHelp(po);
		break;
	default:
		break;
	}
	return 0;
}