Updates to TNL now checked into CVS
by Mark Frohnmayer · in Torque Game Engine · 02/13/2005 (10:17 pm) · 10 replies
FYI: I updated TNL with fixes from commercial version of Zap, including:
Added thread-related classes - Semaphore, Mutex, ThreadStorage, Thread, ThreadQueue
Added Base16 encoding and decoding to the ByteBuffer class
Added MD5 hash sum computation to the ByteBuffer class
Fixed NetEvent class count bug on EventConnection startup
Fixed NetEvent post fail when not connected bug
Added a quicker ping/ack on an adaptive connection if it has unacked sent packets
Added an isLocal flag to the connection parameters for local connections
Added a RefPtr<> to hang onto a connection before dispatching a packet to it in order to prevent a crash when a packet causes a disconnect
Fixed net string table bug on lookup where the lookup string is longer than the lookup length
Added saved hashes to improve performance of net string table
Fixed NULL free list entry string table bug
Fixed string not removed from hash table bug
Fixed endian bug in symmetric cipher counter initialization
Added double precision float capability to RPC calls
Fixed vector writing bug in RPC code on PPC
Made RPC call marshalling thread safe
Added support for TCP socket addresses
Added support for TCP streams send and recv
Just so you all know..
The ThreadQueue stuff is pretty cool, and anyone using the library should update with the other fixes as well...
Enjoy!
Added thread-related classes - Semaphore, Mutex, ThreadStorage, Thread, ThreadQueue
Added Base16 encoding and decoding to the ByteBuffer class
Added MD5 hash sum computation to the ByteBuffer class
Fixed NetEvent class count bug on EventConnection startup
Fixed NetEvent post fail when not connected bug
Added a quicker ping/ack on an adaptive connection if it has unacked sent packets
Added an isLocal flag to the connection parameters for local connections
Added a RefPtr<> to hang onto a connection before dispatching a packet to it in order to prevent a crash when a packet causes a disconnect
Fixed net string table bug on lookup where the lookup string is longer than the lookup length
Added saved hashes to improve performance of net string table
Fixed NULL free list entry string table bug
Fixed string not removed from hash table bug
Fixed endian bug in symmetric cipher counter initialization
Added double precision float capability to RPC calls
Fixed vector writing bug in RPC code on PPC
Made RPC call marshalling thread safe
Added support for TCP socket addresses
Added support for TCP streams send and recv
Just so you all know..
The ThreadQueue stuff is pretty cool, and anyone using the library should update with the other fixes as well...
Enjoy!
About the author
#2
02/23/2005 (6:12 pm)
Is this the new release of TNL that you have been talking about over the last few months?
#3
02/23/2005 (6:25 pm)
Yes it is.
#4
02/23/2005 (6:32 pm)
If you check www.opentnl.org you'll see the 1.5.0 download. Not mentioned in the notes above is that the RPC code has been substantially overhauled. All of the assembly code has been replaced with a template-based call structure, substantially improving cross-platform support and extensibility. Also, VC 6.0 support has been dropped.
#5
The only changes I have made to TNL was in re-writing the NetInterface, creating our own version of the class. I also befriended NetConnection to that new class as I wanted control over things like the option to choose or not to choose the puzzlemanager. Hopefully this should not create any conflict with your changes.
On a further note, good idea to drop support for VC 6.0.
02/24/2005 (5:52 pm)
Sounds great - hell, i was almost starting to like the assembly. Made me look quite hard core when I showed it to my collegues and they saw how that embedded assembly triggered a function call! The only changes I have made to TNL was in re-writing the NetInterface, creating our own version of the class. I also befriended NetConnection to that new class as I wanted control over things like the option to choose or not to choose the puzzlemanager. Hopefully this should not create any conflict with your changes.
On a further note, good idea to drop support for VC 6.0.
#6
02/24/2005 (10:42 pm)
I was pretty excited when I first got the assembly stuff working :) But unfortunately it ended up causing a bunch of problems and was pretty brittle (in the PPC case especially).
#7
Okay, I've tried looking through FAQs, the forums, etc. but I can stand being this ignorant any longer. Help.
On the street, most people would say I've got a good one on my shoulders. If I were in the Navy, after chow I'd use it. If I'm especially good, I can "get some" during the week - and definietly on the weekends. On the GG forums however, everyone seems to be getting it and the latest version of it to boot or at least making sure they do!
But for the love of Mike, what does the HEAD mean or stand for!?
Thank you to any who can educate me - much appreciated ")
James "The Follower Smeg" Allan
PS @Mark this sounds very cool but I'm too new at the moment to implement it without blowing myself up. Still, Keep up the good work ")
02/25/2005 (4:37 am)
** Noob Alert! **Okay, I've tried looking through FAQs, the forums, etc. but I can stand being this ignorant any longer. Help.
On the street, most people would say I've got a good one on my shoulders. If I were in the Navy, after chow I'd use it. If I'm especially good, I can "get some" during the week - and definietly on the weekends. On the GG forums however, everyone seems to be getting it and the latest version of it to boot or at least making sure they do!
But for the love of Mike, what does the HEAD mean or stand for!?
Thank you to any who can educate me - much appreciated ")
James "The Follower Smeg" Allan
PS @Mark this sounds very cool but I'm too new at the moment to implement it without blowing myself up. Still, Keep up the good work ")
#8
02/25/2005 (8:04 am)
James, the HEAD revision in CVS is the most current version of the CVS repository.
#9
Stephen Zepp pretty much summed it up well in another post, so I'll just copy his description :)
"HEAD" refers to the latest posted revision to a repository, which may or may not be particularly stable. It's commonly considered "the best version to have", but many projects will have a "STABLE" tag that moves up in the repository as code is fully tested and integrated.
In the GG community, when people say "HEAD", they mean the latest version of the code available in the CVS repository.
EDIT: Bah Mark got his response in a little quicker heh
02/25/2005 (8:08 am)
@JamesStephen Zepp pretty much summed it up well in another post, so I'll just copy his description :)
"HEAD" refers to the latest posted revision to a repository, which may or may not be particularly stable. It's commonly considered "the best version to have", but many projects will have a "STABLE" tag that moves up in the repository as code is fully tested and integrated.
In the GG community, when people say "HEAD", they mean the latest version of the code available in the CVS repository.
EDIT: Bah Mark got his response in a little quicker heh
#10
Thanks guys
I really did try to find a definition somewhere before asking and not knowing for sure was driving me nutz.
@Todd - stable is good as far as I'm concerned so I'll keep that in mind - thx
I am content... and a little less ignorant ")
James "The Enlightened Smeg" Allan
02/25/2005 (9:04 am)
@ Mark & ToddThanks guys
I really did try to find a definition somewhere before asking and not knowing for sure was driving me nutz.
@Todd - stable is good as far as I'm concerned so I'll keep that in mind - thx
I am content... and a little less ignorant ")
James "The Enlightened Smeg" Allan
Torque 3D Owner Pat Wilson