BBS.ChinaUnix.net
首页
|
新闻
|
Linux
|
FreeBSD
|
AIX
|
Windows
|
博客
|
论坛
|
存储
|
网络
|
人才
|
Wiki
|
资料
|
读书
|
手册
|
下载
|
空间
|
搜索
会员:
密码:
免费注册
|
忘记密码
|
会员登录
|
搜索
|
帮助
[C]
OIOIC携C语言统一了软件世界,OIOIC object model 1.0.0 for C programming language.
‹‹
1
2
首页
»
论坛
»
C/C++
»
论坛跳转 ...
> 数据仓库与数据挖掘
> 门户网站运维
> Functional编程
> Linux论坛
> BSD
> BSD文档中心
> Solaris
> Solaris文档中心
> 互操作专区
> AIX
> AIX文档中心
> AS400
> HP-UX
> HP文档中心
> SCO UNIX
> SCO文档中心
> Tru64 UNIX
> IRIX
> Mac OS X
> C/C++
> Shell
> Java
> Java文档中心
> Php
> php文档中心
> Perl
> Python
> Python文档中心
> Web开发
> 软件工程
> 中间件技术
> GUI编程
> 软件配置管理
> VOIP开发技术
> CPU与编译器
> Ruby
> OpenAPI
> 安全技术
> 网络技术
> 网络技术文档中心
> 存储备份之家
> 存储文档中心
> 存储业界
> 服务器及硬件技术
> MySQL
> MySQL文档中心
> Sybase
> Oracle
> PostgreSQL
> DB2
> Informix
> Web服务器
> Mail服务器
> FTP服务器
> DNS服务器
> Proxy服务器
> LDAP
> VPN
> Lotus
> Samba
> 金融行业
> 电信行业
> 互联网行业
> 制造行业
> 医卫行业
> 教育行业
> 电子政务
> 信息安全
> 交通行业
> IT业界新闻与评论
> IT职业生涯
> IT培训与认证
> IT二手大厅
> IT图书与评论
> 清茶斋
> 投资理财
> 运动地带
> 北京2008奥运专版
> 快乐数码摄影
> 《奥运之夏》摄影赛专区
> 影音文字
> English Forum
> 游戏玩家
> 旅游天下
> IT爱车族
> 文学小说
> CU活动专区
> 站务交流
> 博客站务交流区
> 下载频道交流区
> 空间圈子交流区
最近访问的论坛 ...
时代冠军主机588元/两年
|
送Windows新书+500分+2G U盘
| 新版块:
OpenAPI
、
数据仓库与数据挖掘
、
门户网站运维
、
Functional编程
[
打印
] [
订阅
] [
收藏
] [
本帖文本页
] [
推荐此主题给朋友,立即获积分
]
本主题由 converse 于 2008-5-15 09:25 关闭
ohisee
新手
UID:689690
注册:2008-4-10
最后登录: 2008-05-20
帖子:
12
精华:0
可用积分:12 (白手起家)
信誉积分:0
专家积分:0 (本版:0)
空间积分:0
推广积分:0
状态:
...离线...
[
个人空间
] [
短信
] [
博客
]
[
推广获积分
]
11楼
发表于 2008-5-15 00:22
/**
*
* 名称:OIOIC_Interact2
* 描述:Interact2接口。
* 参数:Act --- [IN] 交互行为;
* IStrm --- [IN] 输入流;
* Qty --- [IN] 输入的Byte数量;
* pCaller --- [IN] 来访者。
*/
static
IRESULT OIOIC_Interact2
(
OBJECT
*
This
,
ACTION Act
,
BYTE
*
IStrm
,
BYTKTY Qty
,
const
VR
*
pCaller
)
{
EM_OIOIC
*
pem
=
(
EM_OIOIC
*
)
(
This
-
>
pEM
)
;
switch
(
Act
)
{
case
SET_IQCTY
:
/* 设置IQ容量。*/
if
(
sizeof
(
BYTKTY
)
=
=
Qty
)
{
if
(
pem
-
>
IQ
.
Dtrm
!
=
NULL
)
free
(
pem
-
>
IQ
.
Dtrm
)
;
pem
-
>
IQ
.
Dtrm
=
(
BYTE
*
)
calloc
(
*
(
(
BYTKTY
*
)
IStrm
)
,
1
)
;
if
(
pem
-
>
IQ
.
Dtrm
!
=
NULL
)
{
pem
-
>
IQ
.
Front
=
pem
-
>
IQ
.
Rear
=
pem
-
>
IQ
.
Dtrm
-
1
;
pem
-
>
IQ
.
Cty
=
*
(
(
BYTKTY
*
)
IStrm
)
;
pem
-
>
IQ
.
Qty
=
pem
-
>
IQ
.
Lost
=
0
;
return
IR_P
;
}
else
{
return
IR_N
;
}
}
else
{
return
IR_N
;
}
case
SET_OQCTY
:
/* 设置OQ容量。*/
if
(
sizeof
(
BYTKTY
)
=
=
Qty
)
{
if
(
pem
-
>
OQ
.
Dtrm
!
=
NULL
)
free
(
pem
-
>
OQ
.
Dtrm
)
;
pem
-
>
OQ
.
Dtrm
=
(
BYTE
*
)
calloc
(
*
(
(
BYTKTY
*
)
IStrm
)
,
1
)
;
if
(
pem
-
>
OQ
.
Dtrm
!
=
NULL
)
{
pem
-
>
OQ
.
Front
=
pem
-
>
OQ
.
Rear
=
pem
-
>
OQ
.
Dtrm
-
1
;
pem
-
>
OQ
.
Cty
=
*
(
(
BYTKTY
*
)
IStrm
)
;
pem
-
>
OQ
.
Qty
=
pem
-
>
OQ
.
Lost
=
0
;
return
IR_P
;
}
else
{
return
IR_N
;
}
}
else
{
return
IR_N
;
}
default
:
break
;
}
return
IR_O_SBOOIX
;
}
/**
*
* 名称:OIOIC_Interact3
* 描述:Interact3接口。
* 参数:Act --- [IN] 交互行为;
* IStrm --- [IN] 输入流;
* Qty --- [IN] 输入的Byte数量;
* OStrm --- [OUT] 输出流的流向;
* Cty --- [IN] OStrm所指存储空间的容量;
* pQty --- [OUT] 指向实际输出的Byte数量;
* pCaller --- [IN] 来访者。
*/
static
IRESULT OIOIC_Interact3
(
OBJECT
*
This
,
ACTION Act
,
BYTE
*
IStrm
,
BYTKTY Qty
,
BYTE
*
OStrm
,
BYTKTY Cty
,
BYTKTY
*
pQty
,
const
VR
*
pCaller
)
{
return
IR_O_SBOOIX
;
}
/**
*
* 名称:OIOIC_Close
* 描述:Close接口。
* 参数:pCaller --- [IN] 来访者。
*/
static
IRESULT OIOIC_Close
(
OBJECT
*
This
,
const
VR
*
pCaller
)
{
This
-
>
RefCnt
-
-
;
return
IR_P
;
}
/*========================+ TOG +========================*/
/**
*
* 名称:TOG_OIOIC
*/
VOID
TOG_OIOIC
(
OBJECT
*
pObj
)
{
pObj
-
>
Open
=
OIOIC_Open
;
pObj
-
>
Input
=
OIOIC_Input
;
pObj
-
>
Output
=
OIOIC_Output
;
pObj
-
>
IOput
=
OIOIC_IOput
;
pObj
-
>
Interact0
=
OIOIC_Interact0
;
pObj
-
>
Interact1
=
OIOIC_Interact1
;
pObj
-
>
Interact2
=
OIOIC_Interact2
;
pObj
-
>
Interact3
=
OIOIC_Interact3
;
pObj
-
>
Close
=
OIOIC_Close
;
}
您对本贴的看法:
鲜花[0]
臭蛋[0]
空间积分可以换礼品了!
|
有奖跟帖:服务器节能,奖50-100元图书
|
致电800-858-2903,了解DELL如何为你量身订制笔记本
|
送2G U盘
ohisee
新手
UID:689690
注册:2008-4-10
最后登录: 2008-05-20
帖子:
12
精华:0
可用积分:12 (白手起家)
信誉积分:0
专家积分:0 (本版:0)
空间积分:0
推广积分:0
状态:
...离线...
[
个人空间
] [
短信
] [
博客
]
[
推广获积分
]
12楼
发表于 2008-5-15 00:24
/*=============+ CallerCome & CallerLeave +==============*/
/* 注:不允许外面使用 CallerCome 和 CallerLeave。*/
/**
*
* 名称:CallerCome
* 描述:来访者来访,登记来访记录。
* 参数:pND --- [IN] ND地址;
* pCaller --- [IN] 来访者。
* 备注:不允许外面使用。
*/
FRESULT CallerCome
(
OBJECT
*
pND
,
const
VR
*
pCaller
)
{
NUMCS i
;
VR
*
pVR
;
/* 先检查有没有这个VR。 */
for
(
i
=
0
;
i
<
pND
-
>
NCS
;
i
+
+
)
{
pVR
=
pND
-
>
pvr_ACS
+
i
;
if
(
(
pVR
-
>
cr
=
=
pCaller
-
>
cr
)
&
&
(
pVR
-
>
mr
=
=
pCaller
-
>
mr
)
)
return
FR_N_HASVR
;
/* 已经有这个VR了。*/
}
/* 加上这个VR。 */
for
(
i
=
0
;
i
<
pND
-
>
NCS
;
i
+
+
)
{
pVR
=
pND
-
>
pvr_ACS
+
i
;
if
(
0
=
=
pVR
-
>
cr
)
{
*
pVR
=
*
pCaller
;
return
FR_P
;
}
}
return
FR_N
;
}
/**
*
* 名称:CallerLeave
* 描述:来访者离开,清除来访记录。
* 参数:pND --- [IN] ND地址;
* pCaller --- [IN] 来访者。
* 备注:不允许外面使用。
*/
FRESULT CallerLeave
(
OBJECT
*
pND
,
const
VR
*
pCaller
)
{
NUMBN i
;
NUMCS j
;
VR
*
pVR
;
/* 首先ND的BN */
for
(
i
=
0
;
i
<
pND
-
>
NBN
;
i
+
+
)
{
for
(
j
=
0
;
j
<
(
*
(
pND
-
>
ppo_ABN
+
i
)
)
-
>
NCS
;
j
+
+
)
{
pVR
=
(
*
(
pND
-
>
ppo_ABN
+
i
)
)
-
>
pvr_ACS
+
j
;
if
(
(
pVR
-
>
cr
=
=
pCaller
-
>
cr
)
&
&
(
pVR
-
>
mr
=
=
pCaller
-
>
mr
)
)
pVR
-
>
cr
=
pVR
-
>
mr
=
0
;
}
}
/* 然后ND自己 */
for
(
j
=
0
;
j
<
pND
-
>
NCS
;
j
+
+
)
{
pVR
=
pND
-
>
pvr_ACS
+
j
;
if
(
(
pVR
-
>
cr
=
=
pCaller
-
>
cr
)
&
&
(
pVR
-
>
mr
=
=
pCaller
-
>
mr
)
)
pVR
-
>
cr
=
pVR
-
>
mr
=
0
;
}
return
FR_P
;
}
您对本贴的看法:
鲜花[0]
臭蛋[0]
空间积分可以换礼品了!
|
有奖跟帖:服务器节能,奖50-100元图书
|
致电800-858-2903,了解DELL如何为你量身订制笔记本
|
送2G U盘
ohisee
新手
UID:689690
注册:2008-4-10
最后登录: 2008-05-20
帖子:
12
精华:0
可用积分:12 (白手起家)
信誉积分:0
专家积分:0 (本版:0)
空间积分:0
推广积分:0
状态:
...离线...
[
个人空间
] [
短信
] [
博客
]
[
推广获积分
]
13楼
发表于 2008-5-15 00:25
/*==================+ Enqueue & Dequeue +================*/
/**
*
* 名称:Enqueue
* 描述:向指定的队列入列指定数量的Byte。
* 参数:IData --- [IN] 入列数据;
* Qty --- [IN] 入列的Byte数量。
*/
FRESULT Enqueue
(
QUEUE
*
pq
,
BYTE
*
IData
,
BYTKTY Qty
)
{
BYTE
*
newRear
;
/* 入列成功后pq->Rear应该所处的位置。*/
BYTKTY ctyFree
,
qtyEnq
;
if
(
NULL
=
=
pq
|
|
NULL
=
=
IData
)
{
return
FR_N_INVALIDARG
;
}
ctyFree
=
pq
-
>
Cty
-
pq
-
>
Qty
;
qtyEnq
=
(
ctyFree
>
Qty
)
?
Qty
:
ctyFree
;
if
(
0
=
=
qtyEnq
)
return
FR_O_VAINLY
;
newRear
=
pq
-
>
Dtrm
+
(
pq
-
>
Rear
+
qtyEnq
-
pq
-
>
Dtrm
)
%
pq
-
>
Cty
;
if
(
newRear
>
pq
-
>
Rear
)
/* 如果入列成功,pq->Rear不须循环?*/
{
memcpy
(
pq
-
>
Rear
+
1
,
IData
,
qtyEnq
)
;
}
else
/* 如果入列成功,pq->Rear须循环。*/
{
BYTKTY qty1
,
qty2
;
qty1
=
pq
-
>
Dtrm
+
pq
-
>
Cty
-
pq
-
>
Rear
-
1
;
if
(
qty1
>
0
)
memcpy
(
pq
-
>
Rear
+
1
,
IData
,
qty1
)
;
qty2
=
qtyEnq
-
qty1
;
memcpy
(
pq
-
>
Dtrm
,
IData
+
qty1
,
qty2
)
;
}
pq
-
>
Rear
=
newRear
;
pq
-
>
Qty
+
=
qtyEnq
;
if
(
pq
-
>
Dtrm
-
1
=
=
pq
-
>
Front
)
pq
-
>
Front
=
pq
-
>
Dtrm
;
if
(
ctyFree
<
Qty
)
{
pq
-
>
Lost
=
Qty
-
ctyFree
;
/* 丢失了 Qty - ctyFree 个Byte !*/
return
FR_N_LOST
;
}
return
FR_P
;
}
/**
*
* 名称:Dequeue
* 描述:从指定队列出列Byte。
* 参数:OData --- [OUT] 出列数据的存储位置;
* Cty --- [IN] OData所指存储空间的容量;
* pQty --- [OUT] 指向实际出列的Byte数量。
*/
FRESULT Dequeue
(
QUEUE
*
pq
,
BYTE
*
OData
,
BYTKTY Cty
,
BYTKTY
*
pQty
)
{
BYTE
*
newFront
;
/* 出列成功后pq->Front应该所处的位置。*/
BYTKTY qtyDeq
;
/* 实际出列数据量。*/
if
(
NULL
=
=
pq
|
|
NULL
=
=
OData
|
|
0
=
=
Cty
|
|
NULL
=
=
pQty
)
{
return
FR_N_INVALIDARG
;
}
*
pQty
=
0
;
/* 先将出列数置0。*/
if
(
pq
-
>
Qty
!
=
0
)
{
qtyDeq
=
(
Cty
>
pq
-
>
Qty
)
?
pq
-
>
Qty
:
Cty
;
newFront
=
pq
-
>
Dtrm
+
(
pq
-
>
Front
+
qtyDeq
-
pq
-
>
Dtrm
)
%
pq
-
>
Cty
;
if
(
newFront
>
pq
-
>
Front
)
/* 出列后,pq->Front不须循环? */
{
memcpy
(
OData
,
pq
-
>
Front
,
qtyDeq
)
;
}
else
/* 出列后,pq->Front须循环。*/
{
BYTKTY qty1
,
qty2
;
qty1
=
pq
-
>
Dtrm
+
pq
-
>
Cty
-
pq
-
>
Front
;
qty2
=
qtyDeq
-
qty1
;
memcpy
(
OData
,
pq
-
>
Front
,
qty1
)
;
memcpy
(
OData
+
qty1
,
pq
-
>
Dtrm
,
qty2
)
;
}
pq
-
>
Qty
-
=
qtyDeq
;
if
(
0
=
=
pq
-
>
Qty
)
pq
-
>
Front
=
pq
-
>
Rear
=
pq
-
>
Dtrm
-
1
;
else
pq
-
>
Front
=
newFront
;
}
else
{
return
FR_O_VAINLY
;
}
*
pQty
=
qtyDeq
;
if
(
pq
-
>
Lost
>
0
)
{
pq
-
>
Lost
=
0
;
return
FR_N_LOST
;
}
return
FR_P
;
}
您对本贴的看法:
鲜花[0]
臭蛋[0]
空间积分可以换礼品了!
|
有奖跟帖:服务器节能,奖50-100元图书
|
致电800-858-2903,了解DELL如何为你量身订制笔记本
|
送2G U盘
motalelf
风云使者
UID:384785
注册:2006-3-11
最后登录: 2008-09-06
帖子:
431
精华:0
可用积分:202 (白手起家)
信誉积分:105
专家积分:8 (本版:0)
空间积分:0
推广积分:0
状态:
...离线...
[
个人空间
] [
短信
] [
博客
]
[
推广获积分
]
14楼
发表于 2008-5-15 00:33
我死顶圈棍圈棍C!!!!!
您对本贴的看法:
鲜花[0]
臭蛋[0]
__________________________________
三个代表,吾党所宗。
以杜八耻,以进八荣。
咨尔多士,为民先锋。
夙夜匪懈,和谐是从。
空间积分可以换礼品了!
|
有奖跟帖:服务器节能,奖50-100元图书
|
致电800-858-2903,了解DELL如何为你量身订制笔记本
|
送2G U盘
aobai
(谎言混合体)
精灵王
UID:548313
注册:2007-4-6
最后登录: 2008-09-07
帖子:
337
精华:0
可用积分:1081 (家境小康)
信誉积分:105
专家积分:0 (本版:0)
空间积分:810
推广积分:0
状态:
...离线...
[
个人空间
] [
短信
] [
博客
]
[
推广获积分
]
15楼
发表于 2008-5-15 00:48
路过
您对本贴的看法:
鲜花[0]
臭蛋[0]
__________________________________
空间积分可以换礼品了!
|
有奖跟帖:服务器节能,奖50-100元图书
|
致电800-858-2903,了解DELL如何为你量身订制笔记本
|
送2G U盘
zx_wing
(骑着猪的青蛙)
大天使
学徒
UID:499746
注册:2006-12-4
最后登录: 2008-09-08
帖子:
1944
精华:
3
可用积分:1632 (家境小康)
信誉积分:100
专家积分:11 (本版:10)
空间积分:0
推广积分:0
来自:成都
状态:...保密...
[
个人空间
] [
短信
] [
博客
]
[
推广获积分
]
16楼
发表于 2008-5-15 02:04
佩服LZ认真的工作。
虽然不喜欢那几句狂言,同一了软件、同一了语言、连操作系统都写出来了 ……
不过从LZ贴的代码和图来看,LZ认真的工作了的,所以还是顶一个。
您对本贴的看法:
鲜花[0]
臭蛋[0]
__________________________________
C调 ---- C语言
都是最喜欢的
空间积分可以换礼品了!
|
有奖跟帖:服务器节能,奖50-100元图书
|
致电800-858-2903,了解DELL如何为你量身订制笔记本
|
送2G U盘
converse
广告杀手-法王
Stupid is as stupid does.
UID:117516
注册:2003-12-7
最后登录: 2008-09-08
帖子:
12173
精华:
13
可用积分:4985 (小富即安)
信誉积分:145
专家积分:130 (本版:10)
空间积分:0
推广积分:0
来自:芒果花开的地方
状态:
...在线...
[
个人空间
] [
短信
] [
博客
]
[
推广获积分
]
17楼
发表于 2008-5-15 09:25
QUOTE:
原帖由
zx_wing
于 2008-5-15 02:04 发表
佩服LZ认真的工作。
虽然不喜欢那几句狂言,同一了软件、同一了语言、连操作系统都写出来了 ……
不过从LZ贴的代码和图来看,LZ认真的工作了的,所以还是顶一个。
不敢苟同,认真工作就能喊口号说大话了?在没有做出实质的东西之前,我持怀疑态度.和以前一样,希望作者拿出一些实质的东西再来谈什么统一.以后不再欢迎类似的帖子在C版发表.
封.
您对本贴的看法:
鲜花[0]
臭蛋[0]
__________________________________
唯坚持,得成功.
C++名人Alexandrescu说,"十几岁的少年天才到处都有,三十多岁的优秀设计师凤毛麟角".我做不了十几岁的少年天才,但愿到三十多岁时能成为一个优秀工程师.
卖书:
http://bbs.chinaunix.net/thread-1053812-1-1.html
空间积分可以换礼品了!
|
有奖跟帖:服务器节能,奖50-100元图书
|
致电800-858-2903,了解DELL如何为你量身订制笔记本
|
送2G U盘
JohnBull
版主-法师
UID:17373
注册:2002-8-27
最后登录: 2008-09-08
帖子:
5799
精华:
2
可用积分:2159 (小富即安)
信誉积分:100
专家积分:10 (本版:10)
空间积分:0
推广积分:0
来自:北京朝阳
状态:
...离线...
[
个人空间
] [
短信
] [
博客
]
[
推广获积分
]
18楼
发表于 2008-5-15 17:14
少吹牛,用这个东西写个真东西出来是最有说服力的。
您对本贴的看法:
鲜花[0]
臭蛋[0]
__________________________________
关于捐款,本人反对使用道德暴力!
捐了的那是仗义,没捐的也是天理。
空间积分可以换礼品了!
|
有奖跟帖:服务器节能,奖50-100元图书
|
致电800-858-2903,了解DELL如何为你量身订制笔记本
|
送2G U盘
首页
»
论坛
»
C/C++
»
‹‹
1
2
论坛跳转 ...
> 数据仓库与数据挖掘
> 门户网站运维
> Functional编程
> Linux论坛
> BSD
> BSD文档中心
> Solaris
> Solaris文档中心
> 互操作专区
> AIX
> AIX文档中心
> AS400
> HP-UX
> HP文档中心
> SCO UNIX
> SCO文档中心
> Tru64 UNIX
> IRIX
> Mac OS X
> C/C++
> Shell
> Java
> Java文档中心
> Php
> php文档中心
> Perl
> Python
> Python文档中心
> Web开发
> 软件工程
> 中间件技术
> GUI编程
> 软件配置管理
> VOIP开发技术
> CPU与编译器
> Ruby
> OpenAPI
> 安全技术
> 网络技术
> 网络技术文档中心
> 存储备份之家
> 存储文档中心
> 存储业界
> 服务器及硬件技术
> MySQL
> MySQL文档中心
> Sybase
> Oracle
> PostgreSQL
> DB2
> Informix
> Web服务器
> Mail服务器
> FTP服务器
> DNS服务器
> Proxy服务器
> LDAP
> VPN
> Lotus
> Samba
> 金融行业
> 电信行业
> 互联网行业
> 制造行业
> 医卫行业
> 教育行业
> 电子政务
> 信息安全
> 交通行业
> IT业界新闻与评论
> IT职业生涯
> IT培训与认证
> IT二手大厅
> IT图书与评论
> 清茶斋
> 投资理财
> 运动地带
> 北京2008奥运专版
> 快乐数码摄影
> 《奥运之夏》摄影赛专区
> 影音文字
> English Forum
> 游戏玩家
> 旅游天下
> IT爱车族
> 文学小说
> CU活动专区
> 站务交流
> 博客站务交流区
> 下载频道交流区
> 空间圈子交流区
控制面板首页
编辑个人资料
积分交易
公众用户组
好友列表
个人空间管理
升级个人空间
基本概况
论坛排行
主题排行
发帖排行
积分排行
管理团队
管理统计
Copyright © 2001-2008 ChinaUnix.net All Rights Reserved 联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处
京ICP证041476号
清除 Cookies
-
ChinaUnix
-
Archiver
-
WAP
-
TOP
Processed in 0.138471 second(s), 5 queries , Gzip enabled
控制面板首页
编辑个人资料
积分交易
公众用户组
好友列表
个人空间管理
升级个人空间
基本概况
论坛排行
主题排行
发帖排行
积分排行
管理团队
管理统计