Exemplo n.º 1
0
static	SessionData	*
NewSessionData(void)
{
	SessionData	*data;

ENTER_FUNC;
	data = New(SessionData);
	memclear(data,sizeof(SessionData));
	data->type = SESSION_TYPE_TERM;
	data->status = SESSION_STATUS_NORMAL;
	data->hdr = New(MessageHeader);
	memclear(data->hdr,sizeof(MessageHeader));
	data->hdr->command = APL_COMMAND_LINK;
	data->apsid = -1;
	data->spadata = NewNameHash();
	data->scrpool = NewNameHash();
	gettimeofday(&(data->create_time), NULL);
	gettimeofday(&(data->access_time), NULL);
	timerclear(&(data->process_time));
	timerclear(&(data->total_process_time));
	data->apidata = New(APIData);
	data->apidata->status = WFC_API_OK;
	data->apidata->rec = NewLBS();
	data->sysdbval = RecParseValueMem(SYSDBVAL_DEF,NULL);
	InitializeValue(data->sysdbval);
	data->count = 0;
	data->w.sp = 0;
LEAVE_FUNC;
	return	(data);
}
Exemplo n.º 2
0
extern	void
InitProtocol(void)
{
ENTER_FUNC;
	LargeBuff = NewLBS();
	THISWINDOW(Session) = NULL;
	WINDOWTABLE(Session) = NewNameHash();
	WIDGETTABLE(Session) = NewNameHash();
LEAVE_FUNC;
}
Exemplo n.º 3
0
void
InitDesktop(void)
{
	FILE *fp;
	char fname[256];
	char buff[SIZE_BUFF+1];
	char *head;
	char *key;
	char *value;

	DesktopAppTable = NewNameHash();
	snprintf(fname, sizeof(fname), "%s/%s", 
		ConfDir, DESKTOP_LIST);
	fp = fopen(fname, "r");
	if (fp == NULL) {
		snprintf(fname, sizeof(fname), "%s/%s", 
			GLCLIENT_DATADIR, DESKTOP_LIST);
		fp = fopen(fname, "r");
	}
	if (fp != NULL) {
		while (fgets(buff, sizeof(buff), fp) != NULL) {
			head = strstr(buff, ":");
			if (head != NULL) {
				key = StrnDup(buff, head - buff);
				head += 1;
				value = StrnDup(head, strlen(head) - 1); /* chop */
				g_hash_table_insert(DesktopAppTable, key, value);
			}
		}
		fclose(fp);
	} else {
		MessageLog("cannot open applications list");
	}
}
Exemplo n.º 4
0
static void _MonUpload(const char *file, const char *metafile) {
  DBG_Struct *dbg;
  char *id,*buf;
  size_t size;

  if (!g_file_get_contents(file, &buf, &size, NULL)) {
    g_warning("cannot read file:%s",file);
    exit(1);
  }

  dbg = GetDBG_monsys();
  dbg->dbt = NewNameHash();

  if (OpenDB(dbg) != MCP_OK) {
    g_warning("OpenDB failure");
    exit(1);
  }
  monblob_setup(dbg, FALSE);

  TransactionStart(dbg);

  id = monblob_import_mem(dbg, NULL, 0, "monupload.bin", NULL, 0, buf, size);
  g_free(buf);

  TransactionEnd(dbg);
  CloseDB(dbg);

  AddMetaData(id, metafile);
  xfree(id);
}
Exemplo n.º 5
0
static	void
SetFileEntry(
	GtkWidget			*widget,
	WidgetData	*wdata,
	_FileEntry			*data)
{
static GHashTable		*connectlist = NULL;

	GtkPandaFileEntry 	*fentry;
	GtkWidget			*subWidget;
	WidgetData			*subdata;
	char				*longname;
	char				*folder;

ENTER_FUNC;

	SetCommon(widget,wdata);
	fentry = GTK_PANDA_FILE_ENTRY(widget);
	g_return_if_fail(data->binary != NULL);
	longname = (char *)glade_get_widget_long_name(widget);

	if (connectlist == NULL) {
		connectlist = NewNameHash();
	}
    if (g_hash_table_lookup(connectlist, longname) == NULL) {
		g_hash_table_insert(connectlist, longname, longname);
		g_signal_connect_after(G_OBJECT(widget), "done_action", 
			G_CALLBACK(SavePreviousFolder), NULL);
	}

	folder = GetWidgetCache(longname);
	if (folder == NULL) {
		folder = "";
	}
	gtk_panda_file_entry_set_folder(fentry, folder);

	if (LBS_Size(data->binary) > 0) {
		//download
		gtk_panda_file_entry_set_mode(fentry, 
			GTK_FILE_CHOOSER_ACTION_SAVE);
		gtk_panda_file_entry_set_data(fentry,
			LBS_Size(data->binary), LBS_Body(data->binary));
		//set subwidget
		subdata = GetWidgetData(data->subname);
		subWidget = GetWidgetByLongName(data->subname);
		if (subdata != NULL || subWidget != NULL) {
			SetEntry(subWidget, subdata,(_Entry *)subdata->attrs);
		}
		g_signal_emit_by_name(G_OBJECT(widget), "browse_clicked", NULL);
	} else {
		//upload
		gtk_panda_file_entry_set_mode(GTK_PANDA_FILE_ENTRY(widget), 
			GTK_FILE_CHOOSER_ACTION_OPEN);
	}
LEAVE_FUNC;
}
Exemplo n.º 6
0
extern	void
StyleLexInit(void)
{
	int		i;

    if (Reserved == NULL) {
        Reserved = NewNameHash();
        for	( i = 0 ; tokentable[i].token  !=  0 ; i ++ ) {
            g_hash_table_insert(Reserved,tokentable[i].str,(gpointer)(long)tokentable[i].token);
        }
    }
}
Exemplo n.º 7
0
extern void MCP_RegistHandler(GHashTable *StatusTable, char *status,
                              char *event, void (*handler)(ProcessNode *)) {
  GHashTable *EventTable;

  if ((EventTable = g_hash_table_lookup(StatusTable, status)) == NULL) {
    EventTable = NewNameHash();
    g_hash_table_insert(StatusTable, StrDup(status), EventTable);
  }
  if (g_hash_table_lookup(EventTable, event) == NULL) {
    g_hash_table_insert(EventTable, StrDup(event), handler);
  }
}
Exemplo n.º 8
0
static	void
SessionThread(
	void	*para)
{
	SessionCtrl *ctrl;
	GHashTable *hash;
ENTER_FUNC;
	workq = NewQueue();
	hash = NewNameHash();
	RecParserInit();
	while (TRUE) {
		ctrl = (SessionCtrl *)DeQueue(workq);
		switch (ctrl->type) {
		case SESSION_CONTROL_INSERT:
			InsertSession(hash,ctrl);
			break;
		case SESSION_CONTROL_UPDATE:
			UpdateSession(hash,ctrl);
			break;
		case SESSION_CONTROL_DELETE:
			DeleteSession(hash,ctrl);
			break;
		case SESSION_CONTROL_LOOKUP:
			LookupSession(hash,ctrl);
			break;
		case SESSION_CONTROL_GET_SESSION_NUM:
			GetSessionNum(hash,ctrl);
			break;
		case SESSION_CONTROL_GET_DATA:
			GetData(hash,ctrl);
			break;
		case SESSION_CONTROL_GET_MESSAGE:
			GetMessage(hash,ctrl);
			break;
		case SESSION_CONTROL_RESET_MESSAGE:
			ResetMessage(hash,ctrl);
			break;
		case SESSION_CONTROL_SET_MESSAGE:
			SetMessage(hash,ctrl);
			break;
		case SESSION_CONTROL_SET_MESSAGE_ALL:
			SetMessageAll(hash,ctrl);
			break;
		case SESSION_CONTROL_GET_DATA_ALL:
			GetDataAll(hash,ctrl);
			break;
		}
		EnQueue(ctrl->waitq,ctrl);
	}
	pthread_exit(NULL);
LEAVE_FUNC;
}
Exemplo n.º 9
0
static	void
_SendWindowData(
	char		*wname,
	WindowData	*wdata,
	gpointer	user_data)
{
ENTER_FUNC;
	GL_SendPacketClass(FPCOMM(Session),GL_WindowName);
	GL_SendString(FPCOMM(Session),wname);
	g_hash_table_foreach(wdata->ChangedWidgetTable,
		(GHFunc)SendWidgetData,FPCOMM(Session));
	GL_SendPacketClass(FPCOMM(Session),GL_END);

	if (wdata->ChangedWidgetTable != NULL) {
		g_hash_table_foreach_remove(wdata->ChangedWidgetTable, 
			RemoveChangedWidget, NULL);
		g_hash_table_destroy(wdata->ChangedWidgetTable);
	}
    wdata->ChangedWidgetTable = NewNameHash();
LEAVE_FUNC;
}
Exemplo n.º 10
0
extern int main(int argc, char **argv) {
  struct stat sb;
  DBG_Struct *dbg;
  int i;
  SetDefault();
  GetOption(option, argc, argv, NULL);
  InitSystem();

  if ((Socket == NULL) || (ExportID == NULL)) {
    PrintUsage(option, argv[0], NULL);
    exit(1);
  }

  for (i = 0;; i++) {
    if (stat(Socket, &sb) != -1) {
      break;
    }
    if (i >= RETRY) {
      Error("%s %s", strerror(errno), Socket);
    }
    sleep(1);
  }
  if (!S_ISSOCK(sb.st_mode)) {
    Error("%s is not socket file", Socket);
  }

  dbg = GetDBG_monsys();
  dbg->dbt = NewNameHash();

  if (OpenDB(dbg) != MCP_OK) {
    exit(1);
  }
  _monblob_export(dbg, ExportID, Socket);
  CloseDB(dbg);

  return 0;
}