• R/O
  • SSH
  • HTTPS

globalbase: Commit


Commit MetaInfo

Revisão5945 (tree)
Hora2018-12-22 01:08:32
Autorjoshua

Mensagem de Log

URL path for info cache cache_type_path

Mudança Sumário

Diff

--- modules/tinyState/trunk/src/classes/gt/c++/co_gtItem.cpp (revision 5944)
+++ modules/tinyState/trunk/src/classes/gt/c++/co_gtItem.cpp (revision 5945)
@@ -94,6 +94,8 @@
9494 return INI_START_RET;
9595 }
9696 static int _INI_START_RET(tsProtocol *,stdObject*);
97+
98+extern int debug_flag;
9799 TS_STATE(INI_START_RET)
98100 {
99101 stdStringTree<tsProtocol> * list;
@@ -100,11 +102,23 @@
100102 tsProtocol * target;
101103 TS_PROTO_NAME * name;
102104 char * ap;
105+
103106 if ( (ev->type&TSE_MASK) != TSE_RETURN )
104107 return 0;
105108 list = dynamic_cast<stdStringTree<tsProtocol>*>(ev->msg_obj);
106109 this->relative_len = this->est->relative->length();
107- target = list->search(this,_INI_START_RET);
110+
111+
112+int match_len;
113+ target = list
114+ ->search(&match_len,
115+ est->relative->percent_decode());
116+/*
117+ target = list
118+ ->search(this,_INI_START_RET);
119+*/
120+
121+
108122 this->parent->release_list(ifThis);
109123 if ( target == 0 ) {
110124 printf("ERROR NOTHING PROTOCOL(gtItem) %s\n",
--- modules/tinyState/trunk/src/classes/gt/c++/gtItem.cpp (revision 5944)
+++ modules/tinyState/trunk/src/classes/gt/c++/gtItem.cpp (revision 5945)
@@ -178,6 +178,7 @@
178178 this->type = param->type;
179179 break;
180180 case GTITEM_ROOT:
181+ cache_type_match = 1;
181182 this->type = param->type;
182183 REF_SET(this->gtItem_polling,
183184 NEW stdQue<gtItem>(&this->gtItem_polling,ifThis));
@@ -374,7 +375,7 @@
374375 int
375376 gtItem_::establish(tsProtocol * ac,tsProtocolArgsEstablish * est)
376377 {
377- co_gtItem * itm;
378+co_gtItem * itm;
378379 this->setCoRoutine(NEW co_gtItem(ifThis,dynamic_cast<tsProtocolArgsEstablishHTTP*>(est)));
379380 return 0;
380381 }
--- modules/tinyState/trunk/src/classes/gt/c++/tsProtocol.cpp (revision 5944)
+++ modules/tinyState/trunk/src/classes/gt/c++/tsProtocol.cpp (revision 5945)
@@ -60,6 +60,7 @@
6060
6161 int get_list(tinyState * caller);
6262 int release_list(tinyState * caller);
63+ int get_cache_type_match();
6364
6465 static int coRoutineDestroyed(tinyState * THIS,stdEvent * ev);
6566 int coRoutineDestroyed(stdEvent * ev);
@@ -335,6 +336,12 @@
335336 }
336337
337338 int
339+tsProtocol_::get_cache_type_match()
340+{
341+ return cache_type_match;
342+}
343+
344+int
338345 tsProtocol_::complete_path()
339346 {
340347 if ( list == 0 )
@@ -357,7 +364,8 @@
357364 return ifThis;
358365 int mlen;
359366 tsProtocol * ret;
360- ret = list->search(&mlen,path);
367+ ret = list
368+ ->search(&mlen,path);
361369 if ( ret == 0 )
362370 return 0;
363371 return ret->search_path(&path[mlen]);
@@ -581,7 +589,8 @@
581589 return rDO|ACT_TS_PROTOCOL_FIN_REQUEST;
582590 }
583591
584- ent = this->list->search(
592+ ent = this->list
593+ ->search(
585594 NEW tsProtocolArgs(uargs,1),ts_search_proto);
586595 if ( ent ) {
587596 ent->attach(ifThis,uargs);
@@ -606,7 +615,8 @@
606615 return rDO|ACT_TS_PROTOCOL_FIN_REQUEST;
607616 }
608617 ent = (*ts_proto_table[i].constructor)(ifThis,uargs);
609- this->list->ins(uargs->n.addr,ent);
618+ this->list->ins((NEW stdString(uargs->n.addr))->percent_decode(),
619+ ent,ent->get_cache_type_match());
610620 return ACT_TS_PROTOCOL_ATTACH_RET;
611621 }
612622 TS_STATE(ACT_TS_PROTOCOL_ATTACH_RET)
--- modules/tinyState/trunk/src/classes/gt/c++/tsProtocolHTTPcache.cpp (revision 5944)
+++ modules/tinyState/trunk/src/classes/gt/c++/tsProtocolHTTPcache.cpp (revision 5945)
@@ -88,6 +88,7 @@
8888 stdQueueElement<tsCachePath> * elp;
8989 tsProtocolArgsEstablishHTTP * est;
9090 tsCachePath * tcp;
91+
9192 if ( wait_helper == 0 )
9293 return 0;
9394 est = dynamic_cast<tsProtocolArgsEstablishHTTP*>(_est);
@@ -117,6 +118,7 @@
117118 TS_STATE_TYPE ret;
118119 stdQueueElement<tsCachePath> * elp;
119120 tsCachePath * tcp;
121+
120122 if ( wait_helper == 0 || destroy_flag || ref_destroy_flag ) {
121123 REF_SET(*ret_tcp,0);
122124 REF_SET(*ret_est,0);
--- modules/tinyState/trunk/src/classes/gt/c++/tsProtocolHTTPcacheHelper.cpp (revision 5944)
+++ modules/tinyState/trunk/src/classes/gt/c++/tsProtocolHTTPcacheHelper.cpp (revision 5945)
@@ -142,9 +142,20 @@
142142 char * ap;
143143 if ( (ev->type&TSE_MASK) != TSE_RETURN )
144144 return 0;
145+
145146 list = dynamic_cast<stdStringTree<tsProtocol>*>(ev->msg_obj);
147+
148+int match_len;
146149 tt_target = dynamic_cast<tsProtocol*>
147- (tt = list->search(this,_ACT_RETRY_RET));
150+ (tt = list
151+ ->search(&match_len,
152+ est->path->percent_decode()));
153+/*
154+ tt_target = dynamic_cast<tsProtocol*>
155+ (tt = list
156+ ->search(this,_ACT_RETRY_RET));
157+*/
158+
148159 list_ts->release_list(ifThis);
149160 REF_SET(list_ts,0);
150161 if ( tt_target == 0 ) {
@@ -242,6 +253,10 @@
242253 }
243254 TS_STATE(FIN_START_SLAVE)
244255 {
256+ return rDO|FIN_tsProtocolHTTPcacheHelper_ALL_START;
257+}
258+TS_STATE(FIN_tsProtocolHTTPcacheHelper_ALL_START)
259+{
245260 REF_SET(est,0);
246261 REF_SET(target,0);
247262 REF_SET(relative,0);
--- modules/tinyState/trunk/src/classes/ts/c++/stdStringTree.cpp (revision 5944)
+++ modules/tinyState/trunk/src/classes/ts/c++/stdStringTree.cpp (revision 5945)
@@ -10,8 +10,10 @@
1010 stdStringTreeBase::stdStringTreeBase(
1111 stdString * str,
1212 stdObject * obj,
13+ int partial_flag,
1314 stdStringTreeBase * list)
1415 {
16+ this->partial_flag = partial_flag;
1517 REF_SET(this->str,str);
1618 REF_SET(this->obj,obj);
1719 REF_SET(this->list,list);
@@ -27,12 +29,16 @@
2729
2830
2931 void
30-stdStringTreeBase::reset(int len,stdObject * obj,stdStringTreeBase * list)
32+stdStringTreeBase::reset(
33+ int len,
34+ stdObject * obj,
35+ int partial_flag,
36+ stdStringTreeBase * list)
3137 {
3238 str->length(len);
3339 REF_SET(this->list,list);
34-
3540 REF_SET(this->obj,obj);
41+ this->partial_flag = partial_flag;
3642 }
3743
3844 void
@@ -65,12 +71,13 @@
6571
6672
6773 void
68-stdStringTreeBase::ins(const char * ix,int len,stdObject * obj)
74+stdStringTreeBase::ins(const char * ix,int len,stdObject * obj,int partial_flag)
6975 {
7076 stdStringTreeBase * elp;
7177
7278 if ( ix[0] == 0 || len == 0 ) {
7379 REF_SET(this->obj,obj);
80+ this->partial_flag = partial_flag;
7481 return;
7582 }
7683 for ( elp = list ; elp ; elp = elp->next ) {
@@ -79,7 +86,7 @@
7986 if ( clen == 0 )
8087 continue;
8188 if ( clen == xlen ) {
82- elp->ins(&ix[clen],len-clen,obj);
89+ elp->ins(&ix[clen],len-clen,obj,partial_flag);
8390 return;
8491 }
8592 if ( clen == len ) {
@@ -87,8 +94,9 @@
8794 t = NEW stdStringTreeBase(
8895 NEW stdString(elp->str->get_str(),clen,xlen),
8996 elp->obj,
97+ elp->partial_flag,
9098 elp->list);
91- elp->reset(clen,obj,t);
99+ elp->reset(clen,obj,partial_flag,t);
92100 return;
93101 }
94102 else {
@@ -96,12 +104,14 @@
96104 t1 = NEW stdStringTreeBase(
97105 NEW stdString(elp->str->get_str(),clen,xlen),
98106 elp->obj,
107+ elp->partial_flag,
99108 elp->list);
100- elp->reset(clen,0,t1);
109+ elp->reset(clen,0,0,t1);
101110
102111 t2 = NEW stdStringTreeBase(
103112 NEW stdString(ix,clen,len),
104113 obj,
114+ partial_flag,
105115 0);
106116 REF_SET(t1->next,t2);
107117 return;
@@ -111,6 +121,7 @@
111121 t1 = NEW stdStringTreeBase(
112122 NEW stdString(ix,0,len),
113123 obj,
124+ partial_flag,
114125 0);
115126 REF_SET(t1->next,list);
116127 REF_SET(list,t1);
@@ -117,15 +128,15 @@
117128 }
118129
119130 void
120-stdStringTreeBase::ins(const char * str,stdObject * obj)
131+stdStringTreeBase::ins(const char * str,stdObject * obj,int partial_flag)
121132 {
122- ins(str,strlen(str),obj);
133+ ins(str,strlen(str),obj,partial_flag);
123134 }
124135
125136 void
126-stdStringTreeBase::ins(stdString * key,stdObject * obj)
137+stdStringTreeBase::ins(stdString * key,stdObject * obj,int partial_flag)
127138 {
128- ins(key->get_str(),key->length(),obj);
139+ ins(key->get_str(),key->length(),obj,partial_flag);
129140 }
130141
131142 stdObject *
@@ -150,9 +161,16 @@
150161 stdStringTreeBase::search(const char * key,int len,stdObject * olast,const char ** m_ptr)
151162 {
152163 stdStringTreeBase * k;
164+
153165 if ( this->obj ) {
154- olast = this->obj;
155- *m_ptr = key;
166+ if ( len == 0 || key[0] == 0 ) {
167+ *m_ptr = key;
168+ return this->obj;
169+ }
170+ if ( this->partial_flag ) {
171+ olast = this->obj;
172+ *m_ptr = key;
173+ }
156174 }
157175 if ( len == 0 || key[0] == 0 )
158176 return olast;
@@ -272,6 +290,7 @@
272290 if ( len == 0 || key[0] == 0 ) {
273291 ret = obj;
274292 REF_SET(obj,0)
293+ partial_flag = 0;
275294 return ret;
276295 }
277296 for ( elpp = &list ; *elpp ; elpp = &elp->next ) {
@@ -292,6 +311,7 @@
292311 REF_SET(elp->str,
293312 elp->str->add(elp->list->str));
294313 REF_SET(elp->obj,elp->list->obj);
314+ elp->partial_flag = elp->list->partial_flag;
295315 REF_SET(elp->list,elp->list->list);
296316 }
297317 return ret;
@@ -321,7 +341,8 @@
321341 {
322342 stdStringTreeBase * elp;
323343 if ( path ) {
324- ::printf("%s %s*%s %p\n",msg,path->get_str(),STR_NULL(str)->get_str(),obj);
344+ ::printf("%s %s*%s %p %i\n",msg,path->get_str(),STR_NULL(str)->get_str(),obj,
345+ partial_flag);
325346 path = path->add("*")->add(str);
326347 }
327348 else {
--- modules/tinyState/trunk/src/h/ts/c++/stdStringTree.h (revision 5944)
+++ modules/tinyState/trunk/src/h/ts/c++/stdStringTree.h (revision 5945)
@@ -15,14 +15,27 @@
1515
1616
1717 protected:
18- stdStringTreeBase(stdString * str,stdObject * obj,stdStringTreeBase * list);
19- void match(int * clen_p,int * xlen_p,stdStringTreeBase * elp,const char * ix,int len);
20- void reset(int len,stdObject * obj,stdStringTreeBase * list);
18+ stdStringTreeBase(
19+ stdString * str,
20+ stdObject * obj,
21+ int partial_flag,
22+ stdStringTreeBase * list);
23+ void match(
24+ int * clen_p,
25+ int * xlen_p,
26+ stdStringTreeBase * elp,
27+ const char * ix,
28+ int len);
29+ void reset(
30+ int len,
31+ stdObject * obj,
32+ int partial_flag,
33+ stdStringTreeBase * list);
2134
2235 void count(int * acc);
23- void ins(const char * key,stdObject * obj);
24- void ins(stdString * key,stdObject * obj);
25- void ins(const char * key,int len,stdObject * obj);
36+ void ins(const char * key,stdObject * obj,int partial_flag);
37+ void ins(stdString * key,stdObject * obj,int partial_flag);
38+ void ins(const char * key,int len,stdObject * obj,int partial_flag);
2639
2740 stdObject * del(const char * key);
2841 stdObject * del(stdString * key);
@@ -45,6 +58,8 @@
4558 stdString * str;
4659 stdObject * obj;
4760 stdStringTreeBase * list;
61+
62+ unsigned partial_flag:1;
4863 };
4964
5065 template<class __TYPE>
@@ -63,11 +78,11 @@
6378 stdStringTreeBase::count(&ret);
6479 return ret;
6580 }
66- void ins(const char * key,__TYPE * obj) {
67- stdStringTreeBase::ins(key,obj);
81+ void ins(const char * key,__TYPE * obj,int p_flag) {
82+ stdStringTreeBase::ins(key,obj,p_flag);
6883 }
69- void ins(stdString * key,__TYPE * obj) {
70- stdStringTreeBase::ins(key,obj);
84+ void ins(stdString * key,__TYPE * obj,int p_flag) {
85+ stdStringTreeBase::ins(key,obj,p_flag);
7186 }
7287 __TYPE * del(const char * key) {
7388 return dynamic_cast<__TYPE*>(stdStringTreeBase::del(key));
Show on old repository browser