Public static final fAList = new HashMap(10000);
        Public static final fBList = new HashMap(10000);
        Public static final fCList = new HashMap(10000);

        Public Object getMember(String key) {
                If (isGroupA)
                        Return fAList.get(key);
                Else if (isGroupB)
                        Return fBList.get(key);
                Else if (isGroupC)
                        Return fCList.get(key);
        }

> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> work.org]
> Sent: Wednesday, June 01, 2005 11:03 AM
> To: Pablo Ruggia
> Cc: [email protected]
> Subject: Re: ThreadLocal example pleeeeease!
> 
> Thank you! The problem however is the following.
> 
> Assuming I have 30,000 members online at the same time,
> 10,000 belong to group A,
> 10,000 belong to group B,
> and
> 10,000 belong to group C.
> 
> I would then keep in memory 10,000 instances of
> configuration data for group A people,
> 10,000 for group B people data and 10,000 for group C people
> related data.
> 
> I only want to have 1 instance of the data of group A in memory,
> 1 for B and 1 for c.
> 
> 
> Assuming it is 1kbyte of data per configuration group data it would be the
> difference between 3 kbytes in memory altogether as every group
> would share the data and 90 Mbytes where every single member of the 10,000
> people keeps copy of its group data.
> 
> Do you know what I mean ?
> 
> Sarah
> > --- Urspr�ngliche Nachricht ---
> > Von: Pablo Ruggia <[EMAIL PROTECTED]>
> > An: Tapestry users <[email protected]>
> > Betreff: Re: ThreadLocal example pleeeeease!
> > Datum: Tue, 31 May 2005 21:50:34 -0300
> >
> > Yes, it's possible.
> > Personally, I put this logic in setupForRequest method of my engine.
> > I created a class, UserContext, like this:
> >
> > public class UserContext {
> >
> >     static ThreadLocal _visitLocal = new ThreadLocal();
> >
> >     public static Object getVisit() {
> >         return (Visit) _visitLocal.get();
> >     }
> >
> >     public static void setVisit(Object visit) {
> >         _visitLocal.set(visit);
> >     }
> > }
> >
> >
> > And then, in setupForRequest:
> >
> > protected void setupForRequest(RequestContext context) {
> >     if(getVisit() !=null)
> >             UserContext.setVisit(getVisit());
> > }
> >
> > NOTE: getVisit() in baseEngine, do not create the visit object, like
> > the Page does.
> >
> >
> > So, anywhere you can put:
> >
> > UserContext.getVisit().
> >
> > The same you can do with Global object.
> >
> > Let me know if that helped you.
> >
> >
> >
> >
> > On 5/31/05, Hensley, Richard <[EMAIL PROTECTED]> wrote:
> > > Sarah,
> > >
> > > Do you have a Visit?
> > >
> > > This sounds like session specific information that is normally stored
> in
> > the
> > > Visit. I would consider constructing a method in my Visit that knows
> how
> > to
> > > navigate the global object correctly.
> > >
> > > -----Original Message-----
> > > From: [EMAIL PROTECTED]
> > [mailto:[EMAIL PROTECTED]
> > >
> > > Sent: Tuesday, May 31, 2005 9:49 AM
> > > To: [email protected]
> > > Subject: ThreadLocal example pleeeeease!
> > >
> > > Could anyone of you post a quick example how to correctly
> > > use ThreadLocal within a Tapestry page and a Tapestry component?
> > >
> > > My global object currently is a map of group data and the key is the
> > group
> > > key. Different page getter methods need parameters that is derived
> from
> > the
> > > group data .....
> > >
> > > E.g. administrator is on:
> > >
> > > admin.domain.com
> > >
> > > moderators on moderators.domain.com
> > >
> > > users on www.domain.com
> > >
> > > guests on guests.domain.com
> > >
> > > a method that is called getMenuOptions should retrieve the menu
> options.
> > >
> > > The menu can contain 4 different kinds of data. So it is all in a
> global
> > map
> > > and the database is only queried once.
> > >
> > > But this leads to having to parse the map all the time
> > > the method getMenuOptions or any other method that will indirectly
> call
> > it,
> > > is called.
> > >
> > > and I want to sort of shift it into some sort of local variables to be
> > able
> > > to directly access it.
> > >
> > > Is that possible using ThreadLocal ? If so, how ?
> > >
> > > Thank you!
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > For additional commands, e-mail: [EMAIL PROTECTED]
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > For additional commands, e-mail: [EMAIL PROTECTED]
> > >
> > >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to