]> git.sur5r.net Git - openldap/blobdiff - contrib/ldapc++/src/LDAPMessage.cpp
Merge branch 'mdb.master' of /home/hyc/OD/mdb
[openldap] / contrib / ldapc++ / src / LDAPMessage.cpp
index 1aaa819058a716a9d6fc4c437f507509c125c3ca..881f8a11535a75d77607afaa759889d613d6fea7 100644 (file)
@@ -1,44 +1,72 @@
+// $OpenLDAP$
 /*
- * Copyright 2000, OpenLDAP Foundation, All Rights Reserved.
+ * Copyright 2000-2011 The OpenLDAP Foundation, All Rights Reserved.
  * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
  */
 
-// $Id: LDAPMessage.cpp,v 1.6 2000/08/31 17:43:48 rhafer Exp $
 
 #include "LDAPMessage.h"
+
 #include "LDAPResult.h"
+#include "LDAPExtResult.h"
+#include "LDAPSaslBindResult.h"
 #include "LDAPRequest.h"
 #include "LDAPSearchResult.h"
 #include "LDAPSearchReference.h"
 #include "debug.h"
 #include <iostream>
 
+using namespace std;
+
 LDAPMsg::LDAPMsg(LDAPMessage *msg){
-    DEBUG(LDAP_DEBUG_TRACE,"LDAPMsg::LDAPMsg()" << endl);
-       msgType=ldap_msgtype(msg);
+    DEBUG(LDAP_DEBUG_CONSTRUCT,"LDAPMsg::LDAPMsg()" << endl);
+    msgType=ldap_msgtype(msg);
+    m_hasControls=false;
+}
+
+LDAPMsg::LDAPMsg(int type, int id=0){
+    DEBUG(LDAP_DEBUG_CONSTRUCT,"LDAPMsg::LDAPMsg()" << endl);
+    msgType = type;
+    msgID = id;
+    m_hasControls=false;
 }
 
-LDAPMsg* LDAPMsg::create(LDAPRequest *req, LDAPMessage *msg){
+LDAPMsg* LDAPMsg::create(const LDAPRequest *req, LDAPMessage *msg){
     DEBUG(LDAP_DEBUG_TRACE,"LDAPMsg::create()" << endl);
-       switch(ldap_msgtype(msg)){
-               case LDAP_RES_SEARCH_ENTRY :
-                       return new LDAPSearchResult(req,msg);
-               break;
-               case LDAP_RES_SEARCH_REFERENCE :
-                       return new LDAPSearchReference(req, msg);
-               break;
-               default :
-                       return new LDAPResult(req, msg);
-       }
-       return 0;
+    switch(ldap_msgtype(msg)){
+        case SEARCH_ENTRY :
+            return new LDAPSearchResult(req,msg);
+        break;
+        case SEARCH_REFERENCE :
+            return new LDAPSearchReference(req, msg);
+        break;
+        case EXTENDED_RESPONSE :
+            return new LDAPExtResult(req,msg);
+        break;
+        case BIND_RESPONSE :
+            return new LDAPSaslBindResult(req,msg);
+        default :
+            return new LDAPResult(req, msg);
+    }
+    return 0;
 }
 
 
 int LDAPMsg::getMessageType(){
-       return msgType;
+    DEBUG(LDAP_DEBUG_TRACE,"LDAPMsg::getMessageType()" << endl);
+    return msgType;
 }
 
 int LDAPMsg::getMsgID(){
-       return msgID;
+    DEBUG(LDAP_DEBUG_TRACE,"LDAPMsg::getMsgID()" << endl);
+    return msgID;
+}
+
+bool LDAPMsg::hasControls() const{
+    return m_hasControls;
+}
+
+const LDAPControlSet& LDAPMsg::getSrvControls() const {
+    return m_srvControls;
 }