P is the type of a AsyncSocket with some private fields.
The purpose is to not include some file in the header of this class (like thread, mutex, plScokect, ...).
from outside you have the public interface AsyncSocket, but internally, I only use P who is a derived class of AsyncSocket with more fields.

It is OK if I rename It 'Private' or you prefer I change methodology?