class_docstr: Cached transport
      
code: def creceive(self, preprocess=None):
      msg = self.receive()
      # if hasattr(self, 'r'):
      #    open('/tmp/pp.debug', 'a+').write(repr(('cr',  self.r, msg))+'\n')
      # else:
      #    open('/tmp/pp.debug', 'a+').write(repr(('cr', self.socket, msg))+'\n')
      msg = ppc.b_(msg)
      if msg[:1] == ppc.b_("H"):
          hash1 = ppc.str_(msg[1:])
      else:
          msg = msg[1:]
          hash1 = self.hash(msg)
          if preprocess is None:
              preprocess = lambda x: x
          self.rcache[hash1] = tuple(map(preprocess, (msg,)))[0]
      return self.rcache[hash1]
  
imports: import logging
  import os
  import socket
  import struct
  import hashlib
  from .None import common
label_desc: Use image node_id 3 for calling the CTransport obj's underlying member method code with example usage: obj.creceive(preprocess) and returns: self