Codejie's C++ Space

Using C++

轮子:CmdChannel的数据结构


    对于我来说用C写程序的好处就是可以休息一下手指头,因为我发现自己根本没法像写C++程序一样,进行各种分解、封装等等,C的程序一写长,我就开始犯晕,根本没法写出与C++代码一样的‘长篇大论’来。因此我在写C代码时,尽量的写的短小,所以代码长了就另起文件,哪怕变量的命名,也一改C++的风格,变的短之又短。。。。

#ifndef __CCDATATYPE_H__
#define __CCDATATYPE_H__

#include 
<winsock2.h>

/* data struct */

#define CC_SIZE_CMD     128

#ifndef INVALID_SOCKET
#define INVALID_SOCKET -1
#endif

struct _cc_telnet_clientdata
{
    SOCKET sock;
    
int index;
    
char ip[16];
    unsigned 
short port;
    
int updated;
    
int recv;
    
char buf[CC_SIZE_CMD];
    
struct _cc_telnet_clientdata* next;
}
;

struct _cc_telnetdata
{
    
char run;
    
char ip[16];
    unsigned 
short port;
    
char prompt[32];
    SOCKET sock;
    
int max;
    
int count;
    
struct _cc_telnet_clientdata* client;
}
;

enum _cc_cmdtype
{
    CC_CMD_NORMAL 
= 0
}
;

typedef 
int (*_cc_cmdcallback)(struct _cc_telnet_clientdata* client, int argc, const char (*argv)[CC_SIZE_CMD]);

struct _cc_cmddata
{
    
char cmd[CC_SIZE_CMD];
    
char help[CC_SIZE_CMD];
    
enum _cc_cmdtype type;
    _cc_cmdcallback callback;
    
struct _cc_cmddata* next;
}
;

struct _cc_cmdregdata
{
    
struct _cc_cmddata* cmd;
    
/* cmd cache */
}
;

struct _cc_data
{
   
struct _cc_telnetdata telnet;
   
struct _cc_cmdregdata cmd;
   
/* mutex */
}
;

extern struct _cc_data cc_Global;

#endif


    当前整个CmdChannel对我来说够用了,哪些存在风险的地方就放那里吧,我会躲开的,嘿嘿~哪些可以扩展的功能,算了,就为了debug,就不烦了,嘿嘿~还需要时间去进行BSD-Socket的cross,而且Yao的程序也还需要大量的时间去修改呢。加上工作上的代码,都没有时间去折腾LingosHook了~唉~估计这个程序也要太监了~

posted on 2009-12-16 23:11 codejie 阅读(239) 评论(0)  编辑 收藏 引用 所属分类: C++轮子精神


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


公告

Using C++

导航

统计

留言簿(73)

随笔分类(513)

积分与排名

最新评论

阅读排行榜

评论排行榜