int acquireBlockLocks(char* serviceName, int servicePort, char* fileName, int numLocks, int64_t startBlocks[], int64_t lengths[]) { int i; int lockID; MessageClient client = newClient(serviceName, servicePort); Message m = newMessage(); m->type = FILE_LOCK_CLIENT_SERVICE_CLIENT_MESSAGE; setStringParam(m, "functionName", "acquireblock"); setStringParam(m, "fileName", fileName); setIntegerParam(m, "numLocks", numLocks); createLongArrayParam(m, "startblocks", numLocks); createLongArrayParam(m, "lengths", numLocks); for (i = 0; i < numLocks; ++i) { setLongArrayParamValue(m, "startblocks", i, startBlocks[i]); setLongArrayParamValue(m, "lengths", i, lengths[i]); } //printf("acquireblocklocks: Message to be sent:\n"); //printMessage(m); Message reply = clientCall(client, m); clientDisconnect(client); //printf("acquirelocks: Reply:\n"); //printMessage(reply); lockID = getIntegerParam(reply, "lockID"); destroyMessage(m); destroyMessage(reply); return lockID; }
void releaseBlockLocks(char* serviceName, int servicePort, char* fileName, int lockID) { MessageClient client = newClient(serviceName, servicePort); Message m = newMessage(); m->type = FILE_LOCK_CLIENT_SERVICE_CLIENT_MESSAGE; setStringParam(m, "functionName", "releaseblock"); setStringParam(m, "fileName", fileName); setIntegerParam(m, "lockID", lockID); Message reply = clientCall(client, m); clientDisconnect(client); destroyMessage(m); destroyMessage(reply); }
void destroyInventoryVector(void * selfIn) { assert(selfIn != NULL); InventoryVector * self = selfIn; decrementReferenceCount(self->hash); destroyMessage(self); }
void destroyBlockHeaders(void * vself){ assert(vself != NULL); BlockHeaders * self = vself; uint16_t x; for ( x = 0; x < self->numOfHeaders; x++) { destroyObject(self->blockHeaders[x]); } free(self->blockHeaders); destroyMessage(self); }
void destroyTransactionOutput(void * txOut) { assert(txOut != NULL); TransactionOutput * self = txOut; if (self->scriptObject) { decrementReferenceCount(self->scriptObject); } destroyMessage(self); }
/*Destructors*/ void destroyTransaction(void * transaction) { Transaction * self = transaction; uint32_t i; for (i = 0; i < self->numOfTransactionInput; i++) { decrementReferenceCount(self->inputs[i]); /*handles cleaning up of referenced object once num of references get to zero*/ } free(self->inputs); for (i = 0; i < self->numOfTransactionOutput; i++) { decrementReferenceCount(self->outputs[i]); /*handles cleaning up of referenced object once num of references get to zero*/ } free(self->outputs); destroyMessage(getObject(self)); }
void destroyNetworkAddress(void * vself){ NetworkAddress * self = vself; if (self->ip) decrementReferenceCount(self->ip); destroyMessage(self); }