1// OpenLDAP: pkg/ldap/contrib/ldapc++/src/LDAPMessage.cpp,v 1.4.10.2 2008/04/14 23:09:26 quanah Exp
2/*
3 * Copyright 2000, OpenLDAP Foundation, All Rights Reserved.
4 * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
5 */
6
7
8#include "LDAPMessage.h"
9
10#include "LDAPResult.h"
11#include "LDAPExtResult.h"
12#include "LDAPSaslBindResult.h"
13#include "LDAPRequest.h"
14#include "LDAPSearchResult.h"
15#include "LDAPSearchReference.h"
16#include "debug.h"
17#include <iostream>
18
19using namespace std;
20
21LDAPMsg::LDAPMsg(LDAPMessage *msg){
22    DEBUG(LDAP_DEBUG_CONSTRUCT,"LDAPMsg::LDAPMsg()" << endl);
23    msgType=ldap_msgtype(msg);
24    m_hasControls=false;
25}
26
27LDAPMsg::LDAPMsg(int type, int id=0){
28    DEBUG(LDAP_DEBUG_CONSTRUCT,"LDAPMsg::LDAPMsg()" << endl);
29    msgType = type;
30    msgID = id;
31    m_hasControls=false;
32}
33
34LDAPMsg* LDAPMsg::create(const LDAPRequest *req, LDAPMessage *msg){
35    DEBUG(LDAP_DEBUG_TRACE,"LDAPMsg::create()" << endl);
36    switch(ldap_msgtype(msg)){
37        case SEARCH_ENTRY :
38            return new LDAPSearchResult(req,msg);
39        break;
40        case SEARCH_REFERENCE :
41            return new LDAPSearchReference(req, msg);
42        break;
43        case EXTENDED_RESPONSE :
44            return new LDAPExtResult(req,msg);
45        break;
46        case BIND_RESPONSE :
47            return new LDAPSaslBindResult(req,msg);
48        default :
49            return new LDAPResult(req, msg);
50    }
51    return 0;
52}
53
54
55int LDAPMsg::getMessageType(){
56    DEBUG(LDAP_DEBUG_TRACE,"LDAPMsg::getMessageType()" << endl);
57    return msgType;
58}
59
60int LDAPMsg::getMsgID(){
61    DEBUG(LDAP_DEBUG_TRACE,"LDAPMsg::getMsgID()" << endl);
62    return msgID;
63}
64
65bool LDAPMsg::hasControls() const{
66    return m_hasControls;
67}
68
69const LDAPControlSet& LDAPMsg::getSrvControls() const {
70    return m_srvControls;
71}
72
73