TraceSvcUtil::~TraceSvcUtil() { if (m_svcHandle) { ISC_STATUS_ARRAY status = {0}; isc_service_detach(status, &m_svcHandle); } }
/** * This function integrates with the Ruby garbage collection functionality to * insure that the resources associated with a ServiceManager object a fully * released whenever the object gets collected. * * @param manager A reference to the ManagerHandle associated with the * ServiceManager being collected. * */ void serviceManagerFree(void *manager) { if(manager != NULL) { ManagerHandle *handle = (ManagerHandle *)manager; if(handle->handle != 0) { ISC_STATUS status[ISC_STATUS_LENGTH]; isc_service_detach(status, &handle->handle); } free(handle); } }
/** * This function provides the disconnect method for the ServiceManager class. * * @param self A reference to the ServiceManager object to be disconnected. * * @return A reference to the disconnected ServiceManager object. * */ VALUE disconnectServiceManager(VALUE self) { ManagerHandle *manager = NULL; Data_Get_Struct(self, ManagerHandle, manager); if(manager->handle != 0) { ISC_STATUS status[ISC_STATUS_LENGTH]; if(isc_service_detach(status, &manager->handle)) { rb_fireruby_raise(status, "Error disconnecting service manager."); } manager->handle = 0; } return(self); }
static void _php_ibase_free_service(zend_resource *rsrc) /* {{{ */ { ibase_service *sv = (ibase_service *) rsrc->ptr; if (isc_service_detach(IB_STATUS, &sv->handle)) { _php_ibase_error(); } if (sv->hostname) { efree(sv->hostname); } if (sv->username) { efree(sv->username); } efree(sv); }
int CLIB_ROUTINE main( int argc, char **argv) { /************************************** * * m a i n * ************************************** * *Functional Description * This utility uses the Firebird service api to inform the server * to print out the memory pool information into a specified file. * This utilitiy is for WIN_NT only, In case of UNIX ibmgr utility will * should be used. * *************************************************************************/ char fname[512]; if (argc != 2 && argc != 1) { printf("Usage %s \n %s filename\n"); exit(1); } if (argc == 1) { printf(" Filename : "); if (!fgets(fname, sizeof(fname), stdin)) return 1; const size_t len = strlen(fname); if (!len) return 1; if (fname[len - 1] == '\n') { fname[len - 1] = 0; if (len == 1) return 1; } } else { fb_utils::copy_terminate(fname, argv[1], sizeof(fname)); if (!fname[0]) return 1; } printf("Filename to dump pool info = %s \n", fname); ISC_STATUS_ARRAY status; const char svc_name[] = "localhost:anonymous"; isc_svc_handle svc_handle = NULL; if (isc_service_attach(status, 0, svc_name, &svc_handle, 0, NULL)) { printf("Failed to attach service\n"); return 1; } const unsigned short path_length = strlen(fname); char sendbuf[520]; // 512 + tag + length_word char* sptr = sendbuf; *sptr = isc_info_svc_dump_pool_info; ++sptr; add_word(sptr, path_length); strcpy(sptr, fname); sptr += path_length; char respbuf[256]; if (isc_service_query(status, &svc_handle, NULL, 0, NULL, sptr - sendbuf, sendbuf, sizeof(respbuf), respbuf)) { printf("Failed to query service\n"); isc_service_detach(status, &svc_handle); return 1; } isc_service_detach(status, &svc_handle); return 0; }