1 /*
2
3 2010.3.25 zhangbin
4 1.create,定義game-core的網絡接口
5
6 協定:
7 1.數據類型名稱尾部添加T
8
9 2010.3.27 zhangin
10
11 2010.3.29 zhangbin
12 1. 取消工作單GameWorkSheetT結構
13 2. 修改 ISecureService.auth()安全認證的數據類型
14 2010.3.30 zhangbin
15 1. heartbeat()移動到IService接口
16 */
17
18
19 #ifndef _GTR_ICE
20 #define _GTR_ICE
21
22
23 module gtr {
24
25 dictionary<string,string> HashValueSet;
26 dictionary<string,string> ReturnValueT;
27 sequence<byte> ByteStreamT;
28 sequence<string> StringListT;
29 sequence<HashValueSet> HashValueListT;
30 sequence<int> IntListT;
31 sequence<StringListT> StringListListT;
32
33 struct CallReturnT{
34 bool succ;
35 string msg;
36 HashValueSet props;
37 };
38
39 const int IMAGEJPEG = 1;
40 const int IMAGEPNG =2 ;
41 const int IMAGEBMP = 3 ;
42
43
44 //圖像數據
45 struct ImageDataT{
46 int type;
47 ByteStreamT bytes;
48 int width;
49 int height;
50 };
51
52 struct GameAuthDataT{
53 int type; // 1- 圖片 ,2 - 坐標
54 ImageDataT image; //秘寶圖片
55 string seckey; //秘寶坐標
56 };
57
58
59 struct GameIdentifyT{
60 string id; //游戲編號
61 string tradeNo; //交易單號
62 };
63
64 struct ServiceIdentifyT{
65 string id;
66 string version;
67 };
68
69
70 interface IService{
71 int getType(); //
72 ServiceIdentifyT getId(); //service module id
73 int getTimestamp(); //獲取系統時鐘 1970之后秒數
74 void shutdown();
75 void heartbeat(string senderType,string senderId); //發送者類型和Id
76 };
77
78 /*
79 enum LogMsgLevelT{
80 logDEBUG,
81 logINFO,
82 logCRITICAL,
83 logERROR
84 };
85 */
86
87 struct LogMessageT{
88 int xclass; //消息類型
89 string msg;
90 };
91
92 //日志功能
93 interface ILogger {
94 void gameMsg(GameIdentifyT gameId,int timetick,LogMessageT msg); // timetick - 1970~ s
95 void gameImage(GameIdentifyT gameId,int timetick,string opName,ImageDataT image); //抓圖 opName - 執行游戲步驟名稱
96 };
97
98 //安全管理,包括秘寶認證等
99 interface ISecure {
100 string auth(GameIdentifyT gameId,GameAuthDataT data);
101 };
102
103 //日志服務器
104 interface ILogServer extends ILogger,IService{
105
106 };
107
108 interface ISecureServer extends ISecure,IService{
109 };
110
111
112 //一個游戲任務相關的信息
113 enum GameWorkSheetTypeT{
114 gwsPost, //郵寄
115 gwsAccountAudit, //帳號審核
116 gwsVerify //驗證
117 };
118
119
120 //郵寄
121 struct GameWorkSheetPostT {
122 long money;
123 };
124 //審核
125 struct GameWorkSheetAccountAuditT {
126 string any;
127 };
128 //驗證
129 struct GameWorkSheetVerifyT {
130 string any;
131 };
132
133 //交易任務信息
134 //Tasklet包含所有的業務處理類型,但同時只有一種有效
135 struct GameTaskletT{
136 string id; //任務編號
137 int type; //處理類型
138 string no; //單號
139 string gameId; //游戲編號
140 string account; //帳號
141 string password;
142 string area; //區
143 string server; //服務器
144 string lineName;//線路名稱(為空則lineNo)
145 short lineNo; //線路編號
146 string createTime;
147
148 GameWorkSheetPostT post; //郵寄
149 GameWorkSheetAccountAuditT audit;
150 GameWorkSheetVerifyT verify;
151 };
152
153 struct GameTaskResultT{
154 string id; //任務編號
155 string no; //單號 (冗余)
156 string gameId; //游戲編號(冗余)
157 int result; //處理結果
158 string errmsg; //提示信息
159 };
160
161 //gtr控制服務端接口
162 interface IGameHost extends IService,ILogger,ISecure{
163 GameTaskletT getTask(); //獲取任務
164 void completeTask(GameTaskResultT result); //
165
166 };
167
168
169
170 };
171
172
173 #endif
174
175