Когда я должен использовать платформу как OSGI и когда его нужно избежать?

Я закончил тем, что использовал XDefineCursor как упомянутый ephemient. Приложение управления изменило корневой курсор окна по умолчанию и другие приложения (которые находятся под моим контролем), наследовал его.

специфические особенности Кода похожи:

// Hide the cursor

if (NULL==(display=XOpenDisplay(NULL))) 
{
   printf("Unable to open NULL display\n");
   exit(1);
}
window = DefaultRootWindow(display);

Cursor invisibleCursor;
Pixmap bitmapNoData;
XColor black;
static char noData[] = { 0,0,0,0,0,0,0,0 };
black.red = black.green = black.blue = 0;

bitmapNoData = XCreateBitmapFromData(display, window, noData, 8, 8);
invisibleCursor = XCreatePixmapCursor(display, bitmapNoData, bitmapNoData, 
                                     &black, &black, 0, 0);
XDefineCursor(display,window, invisibleCursor);
XFreeCursor(display, invisibleCursor);
XFreePixmap(display, bitmapNoData);

для сокрытия курсора и затем после того, как я сделан

// Restore the X left facing cursor
Cursor cursor;
cursor=XCreateFontCursor(display,XC_left_ptr);
XDefineCursor(display, window, cursor);
XFreeCursor(display, cursor);

Для восстановления X предназначенный для левой руки курсор (Так как это - корневое окно и я не хочу, чтобы он остался невидимым. Я не уверен, но я мог бы также быть в состоянии использовать

XUndefineCursor(display, window);
15
задан Bubba88 13 October 2009 в 07:37
поделиться

2 ответа

I just posted the following link to another question (What does OSGi solve), but I think here it is an even better fit. Hal Hildebrand wrote a blog about why and when he thinks OSGi is helping your development/product.

The core essence of the (pretty long) post is that it helps especially when dealing with long running, complex enterprise projects. In particular in the long run, the benefit of having an enforced structure will pay out, but read for yourselves

EDIT: fixed broken link.

9
ответ дан 1 December 2019 в 04:47
поделиться

Используйте OSGI, если хотите:

  • очень модульную структуру кода (крайний случай: каждая установка имеет свой набор модулей / подключаемых модулей)
  • в запускать / останавливать / обновлять модуль без остановки остальных приложения
3
ответ дан 1 December 2019 в 04:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: