コード例 #1
0
ファイル: traceMgrMain.cpp プロジェクト: mariuz/firebird
TraceSvcUtil::~TraceSvcUtil()
{
	if (m_svcHandle)
	{
		ISC_STATUS_ARRAY status = {0};
		isc_service_detach(status, &m_svcHandle);
	}
}
コード例 #2
0
ファイル: ServiceManager.c プロジェクト: georgiev/rubyfb
/**
 * 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);
  }
}
コード例 #3
0
ファイル: ServiceManager.c プロジェクト: georgiev/rubyfb
/**
 * 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);
}
コード例 #4
0
ファイル: ibase_service.c プロジェクト: ralt/php-src
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);
}
コード例 #5
0
ファイル: print_pool.cpp プロジェクト: andrewleech/firebird
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;
}