Class LdapEncoder

    • Constructor Detail

      • LdapEncoder

        public LdapEncoder​(LdapApiService codec)
        Creates an instance of Ldap message encoder
        Parameters:
        codec - The Codec service to use to handle Controls and extended operations, plus to get access to the underlying services.
    • Method Detail

      • computeControlLength

        public static int computeControlLength​(Control control)
        Compute the control's encoded length
        Parameters:
        control - The control to compute
        Returns:
        the encoded control length
      • encodeMessage

        public ByteBuffer encodeMessage​(Message message)
                                 throws EncoderException
        Generate the PDU which contains the encoded object. The generation is done in two phases : - first, we compute the length of each part and the global PDU length - second, we produce the PDU.
         0x30 L1 
           | 
           +--> 0x02 L2 MessageId  
           +--> ProtocolOp 
           +--> Controls 
           
         L2 = Length(MessageId)
         L1 = Length(0x02) + Length(L2) + L2 + Length(ProtocolOp) + Length(Controls)
         LdapMessageLength = Length(0x30) + Length(L1) + L1
         
        Parameters:
        message - The message to encode
        Returns:
        A ByteBuffer that contains the PDU
        Throws:
        EncoderException - If anything goes wrong.
      • computeReferralLength

        public static int computeReferralLength​(Referral referral)
        Compute the referral's encoded length
        Parameters:
        referral - The referral to encode
        Returns:
        The length of the encoded PDU