Exemple #1
0
main()
{
    head = CreateLinkTable();
    AddLinkTableNode(head,(tLinkTableNode *)&data[0]);
    AddLinkTableNode(head,(tLinkTableNode *)&data[1]);
    
   /* cmd line begins */
    while(1)
    {
        char cmd[CMD_MAX_LEN];
        printf("Input a cmd number > ");
        scanf("%s", cmd);
        tDataNode *p = FindCmd(head, cmd);
        if( p == NULL)
        {
            printf("This is a wrong cmd!\n ");
            continue;
        }
        printf("%s - %s\n", p->cmd, p->desc); 
        if(p->handler != NULL) 
        { 
            p->handler();
        }
   
    }
}
Exemple #2
0
tLinkTable * InitCmd()
{
	tLinkTable * pLinkTable = CreateLinkTable();	
	int i;
	for(i = 0; i < CMD_NUM; i++) 
	{       
        	AddLinkTableNode(pLinkTable,(tLinkTableNode *)&data[i]);
	}
	return pLinkTable;
}
Exemple #3
0
/*create a menu*/
tMenu* CreateMenu()
{
    tMenu *pNewMenu = (tMenu*)malloc(sizeof(tMenu));
    if(pNewMenu == NULL)
    {
        return NULL;
    }
    tLinkTable *pNewLinkTable = CreateLinkTable();
    pNewMenu->pMenuHead = pNewLinkTable;
    return pNewMenu;
}
Exemple #4
0
Fichier : menu.c Projet : SSEgl/ase
int InitMenuData(tLinkTable ** ppLinktable)
{
    *ppLinktable = CreateLinkTable();
    tDataNode* pNode = (tDataNode*)malloc(sizeof(tDataNode));
    pNode->cmd = "help";
    pNode->desc = "Menu List:";
    pNode->handler = Help;
    AddLinkTableNode(*ppLinktable,(tLinkTableNode *)pNode);
    pNode = (tDataNode*)malloc(sizeof(tDataNode));
    pNode->cmd = "version";
    pNode->desc = "Menu Program V1.0";
    pNode->handler = NULL; 
    AddLinkTableNode(*ppLinktable,(tLinkTableNode *)pNode);
    pNode = (tDataNode*)malloc(sizeof(tDataNode));
    pNode->cmd = "quit";
    pNode->desc = "Quit from Menu Program V1.0";
    pNode->handler = Quit; 
    AddLinkTableNode(*ppLinktable,(tLinkTableNode *)pNode);
 
    return 0; 
}
Exemple #5
0
int main()
{
    int i;
    
    tLinkTable * pLinkTable = CreateLinkTable();
    /* init menu whih the common item, help, version, and exit */
    InitMenuItem(pLinkTable);

    /* Add new item to the exist menu dynamicly */
    AddMenuItem(pLinkTable, "add1", "add menu1", add1);
    AddMenuItem(pLinkTable, "add2", "add menu2", add1);

    /* cmd line begins */
    while(1)
    {
        char cmd[CMD_MAX_LEN];
        printf("Input a cmd > ");
        scanf("%s", cmd);
        /* call the func to run the menu */
        RunMenu(pLinkTable, cmd);
    }
    DeleteLinkTable(pLinkTable);
}
Exemple #6
0
int main()
{
    int i;
    tLinkTable * pLinkTable = CreateLinkTable();
    for(i = 0; i < 10; i++)
    {
        tNode* pNode = (tNode*)malloc(sizeof(tNode));
        pNode->data = i;
        debug("AddLinkTableNode\n");
        AddLinkTableNode(pLinkTable,(tLinkTableNode *)pNode);
    }
    /* search by callback */
    debug("SearchLinkTableNode\n");
    tNode* pTempNode = (tNode*)SearchLinkTableNode(pLinkTable,SearchConditon);
    printf("%d\n",pTempNode->data);
    /* search one by one */
    pTempNode = Search(pLinkTable);
    printf("%d\n",pTempNode->data);
    debug("DelLinkTableNode\n");
    DelLinkTableNode(pLinkTable,(tLinkTableNode *)pTempNode);
    free(pTempNode);
    DeleteLinkTable(pLinkTable);
}
Exemple #7
0
/* Add cmd to linklist */
int AddCmd(char *cmd, char *desc,  int handler(char *))
{
    /* Check arguments */
    if(head == NULL)
    {
        head = CreateLinkTable();
    }
    if(head == NULL || cmd == NULL || desc == NULL || handler == NULL)
    {
        return FAILURE; 
    }
    /* Check if the cmd is existence */
    if(CheckCmdExist(cmd) == SUCCESS)
    {
        return FAILURE;
    }

    tDataNode* pNode = (tDataNode*)malloc(sizeof(tDataNode));
    pNode->cmd = cmd;
    pNode->desc = desc;
    pNode->handler = handler;
    return AddLinkTableNode(head,(tLinkTableNode *)pNode);
}
Exemple #8
0
/* create Menu*/
tLinkTable* CreateMenu()
{
    tLinkTable* head = CreateLinkTable();
    return head;
}
Exemple #9
0
tLinkTable * InitMenu()
{
    return CreateLinkTable();    
}