You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by rv...@apache.org on 2016/05/19 15:14:38 UTC

[31/51] [partial] incubator-geode git commit: Add source for geode c++ and .net clients

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ac967000/geode-client-native/quickstart/cpp/plugins/SimpleCacheWriter.cpp
----------------------------------------------------------------------
diff --git a/geode-client-native/quickstart/cpp/plugins/SimpleCacheWriter.cpp b/geode-client-native/quickstart/cpp/plugins/SimpleCacheWriter.cpp
new file mode 100644
index 0000000..d3e0d94
--- /dev/null
+++ b/geode-client-native/quickstart/cpp/plugins/SimpleCacheWriter.cpp
@@ -0,0 +1,40 @@
+#include "SimpleCacheWriter.hpp"
+
+bool SimpleCacheWriter::beforeUpdate(const EntryEvent& event)
+{
+  LOGINFO("SimpleCacheWriter: Got a beforeUpdate event.");
+  return true;
+}
+
+bool SimpleCacheWriter::beforeCreate(const EntryEvent& event)
+{
+  LOGINFO("SimpleCacheWriter: Got a beforeCreate event.");
+  return true;
+}
+
+void SimpleCacheWriter::beforeInvalidate(const EntryEvent& event)
+{
+  LOGINFO("SimpleCacheWriter: Got a beforeInvalidate event.");
+}
+
+bool SimpleCacheWriter::beforeDestroy(const EntryEvent& event) 
+{
+  LOGINFO("SimpleCacheWriter: Got a beforeDestroy event.");
+  return true;
+}
+
+void SimpleCacheWriter::beforeRegionInvalidate(const RegionEvent& event)
+{
+  LOGINFO("SimpleCacheWriter: Got a beforeRegionInvalidate event.");
+}
+
+bool SimpleCacheWriter::beforeRegionDestroy(const RegionEvent& event)
+{
+  LOGINFO("SimpleCacheWriter: Got a beforeRegionDestroy event.");
+  return true;
+}
+
+void SimpleCacheWriter::close(const RegionPtr& region)
+{
+  LOGINFO("SimpleCacheWriter: Got a close event.");
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ac967000/geode-client-native/quickstart/cpp/plugins/SimpleCacheWriter.hpp
----------------------------------------------------------------------
diff --git a/geode-client-native/quickstart/cpp/plugins/SimpleCacheWriter.hpp b/geode-client-native/quickstart/cpp/plugins/SimpleCacheWriter.hpp
new file mode 100644
index 0000000..ea4e2d5
--- /dev/null
+++ b/geode-client-native/quickstart/cpp/plugins/SimpleCacheWriter.hpp
@@ -0,0 +1,28 @@
+/*
+ * SimpleCacheWriter QuickStart Example.
+ *
+ * This is a simple implementation of a Cache Writer
+ * It merely prints the events captured from the GemFire Native Client.
+ *
+ */
+
+// Include the GemFire library.
+#include <gfcpp/GemfireCppCache.hpp>
+#include <gfcpp/CacheWriter.hpp>
+
+// Use the "gemfire" namespace.
+using namespace gemfire;
+
+// The SimpleCacheWriter class.
+class SimpleCacheWriter : public CacheWriter
+{
+public:
+  // The Cache Writer callbacks.
+  virtual bool beforeUpdate( const EntryEvent& event );
+  virtual bool beforeCreate( const EntryEvent& event );
+  virtual void beforeInvalidate( const EntryEvent& event );
+  virtual bool beforeDestroy( const EntryEvent& event );
+  virtual void beforeRegionInvalidate( const RegionEvent& event );
+  virtual bool beforeRegionDestroy( const RegionEvent& event );
+  virtual void close(const RegionPtr& region);
+};

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ac967000/geode-client-native/quickstart/cpp/queryobjects/GNUmakefile
----------------------------------------------------------------------
diff --git a/geode-client-native/quickstart/cpp/queryobjects/GNUmakefile b/geode-client-native/quickstart/cpp/queryobjects/GNUmakefile
new file mode 100644
index 0000000..12c71f4
--- /dev/null
+++ b/geode-client-native/quickstart/cpp/queryobjects/GNUmakefile
@@ -0,0 +1,5 @@
+default: all
+
+SUBS = pdxauto
+
+include ../../GNUmakefile.common
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ac967000/geode-client-native/quickstart/cpp/queryobjects/GNUmakefile.pdxauto
----------------------------------------------------------------------
diff --git a/geode-client-native/quickstart/cpp/queryobjects/GNUmakefile.pdxauto b/geode-client-native/quickstart/cpp/queryobjects/GNUmakefile.pdxauto
new file mode 100644
index 0000000..099b441
--- /dev/null
+++ b/geode-client-native/quickstart/cpp/queryobjects/GNUmakefile.pdxauto
@@ -0,0 +1,29 @@
+
+NAMESPACE = testobject
+CLASSES = \
+	PortfolioPdxAuto \
+	PositionPdxAuto \
+
+ifeq ($(strip $(NAMESPACE)),)
+	SERIALIZER_PATTERN = %Serializable.cpp
+else
+	SERIALIZER_PATTERN = $(NAMESPACE)_%Serializable.cpp
+endif
+SERIALIZERS = $(patsubst %,$(SERIALIZER_PATTERN),$(CLASSES))
+PDXAUTOSERIALIZER = $(GFCPP)/bin/pdxautoserializer
+PDXAUTOSERIALIZER_FLAGS = 
+
+.PHONY: all
+all: $(CLASSES) 
+
+.PHONY: clean
+clean:
+	rm -rf $(SERIALIZERS) 
+
+.PHONY: $(CLASSES)
+$(CLASSES): % : $(SERIALIZER_PATTERN)
+
+$(SERIALIZER_PATTERN): %.hpp
+	$(PDXAUTOSERIALIZER) $(PDXAUTOSERIALIZER_FLAGS) $<
+
+

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ac967000/geode-client-native/quickstart/cpp/queryobjects/Portfolio.cpp
----------------------------------------------------------------------
diff --git a/geode-client-native/quickstart/cpp/queryobjects/Portfolio.cpp b/geode-client-native/quickstart/cpp/queryobjects/Portfolio.cpp
new file mode 100644
index 0000000..36e78c8
--- /dev/null
+++ b/geode-client-native/quickstart/cpp/queryobjects/Portfolio.cpp
@@ -0,0 +1,127 @@
+#include "Portfolio.hpp"
+#include <malloc.h>
+
+using namespace gemfire;
+using namespace testobject;
+
+const char*  Portfolio::secIds[] = { "SUN", "IBM", "YHOO", "GOOG", "MSFT",
+      "AOL", "APPL", "ORCL", "SAP", "DELL"};
+
+Portfolio::Portfolio(int32_t i, uint32_t size, CacheableStringArrayPtr nm):
+  names(nm){
+    ID = i;
+    char pkidbuf[1024];
+    sprintf(pkidbuf,"%d",i);
+    pkid = CacheableString::create(pkidbuf);
+    const char* statusStr = (i % 2 == 0) ? "active" : "inactive";
+    size_t statusSize = strlen( statusStr ) + 1;
+    status = new char[ statusSize ];
+    memcpy( status, statusStr, statusSize );
+    char buf[100];
+    sprintf( buf, "type%d", (i % 3) );
+    type = CacheableString::create( buf );
+    int numSecIds = sizeof(secIds)/sizeof(char*);
+    position1 = new Position(secIds[Position::cnt % numSecIds],
+        Position::cnt * 1000);
+    if (i % 2 != 0) {
+      position2 = new Position(secIds[Position::cnt % numSecIds],
+          Position::cnt * 1000);
+    }
+    else
+    {
+      position2 = NULLPTR;
+    }
+    positions = CacheableHashMap::create( );
+    positions->insert(CacheableString::create(secIds[Position::cnt % numSecIds]), position1);
+    newVal = new uint8_t[size+1];
+    memset(newVal,'B',size);
+    newVal[size] = '\0';
+    newValSize = size;
+    creationDate = CacheableDate::create(  );
+    arrayNull = NULL;
+    arrayZeroSize = NULL;
+}
+
+Portfolio::~Portfolio() {
+  if ( newVal != NULL ) {
+    delete [] newVal;
+    newVal = NULL;
+  }
+  if ( status != NULL ) {
+    delete [] status;
+    status = NULL;
+  }
+}
+
+void Portfolio::toData( DataOutput& output ) const {
+  output.writeInt(ID);
+  output.writeObject(pkid);
+  output.writeObject(position1);
+  output.writeObject(position2);
+  output.writeObject(positions);
+  output.writeObject(type);
+  output.writeUTF(status);
+  output.writeObject(names);
+  output.writeBytes(newVal,newValSize+1);
+  output.writeObject(creationDate);
+  output.writeBytes(arrayNull,0);
+  output.writeBytes(arrayZeroSize,0);
+}
+
+Serializable* Portfolio::fromData( DataInput& input )
+{
+  input.readInt(&ID);
+  input.readObject(pkid);
+  input.readObject(position1);
+  input.readObject(position2);
+  input.readObject(positions);
+  input.readObject(type);
+  input.readUTF(&status);
+  input.readObject(names);
+  input.readBytes(&newVal,&newValSize);
+  input.readObject(creationDate);
+  int tmp = 0;
+  input.readBytes(&arrayNull,&tmp);
+  input.readBytes(&arrayZeroSize,&tmp);
+  return this;
+}
+
+CacheableStringPtr Portfolio::toString() const {
+  char idbuf[1024];
+  sprintf(idbuf,"PortfolioObject: [ ID=%d",ID);
+  char pkidbuf[1024];
+  if (pkid != NULLPTR) {
+    sprintf(pkidbuf, " status=%s type=%s pkid=%s\n", this->status,
+        this->type->toString(), this->pkid->asChar());
+  }
+  else {
+    sprintf(pkidbuf, " status=%s type=%s pkid=%s\n", this->status,
+        this->type->toString(), this->pkid->asChar());
+  }
+  char position1buf[2048];
+  if (position1 != NULLPTR) {
+    sprintf(position1buf, "\t\t\t  P1: %s", position1->toString()->asChar());
+  }
+  else {
+    sprintf(position1buf, "\t\t\t  P1: %s", "NULL");
+  }
+  char position2buf[2048];
+  if (position2 != NULLPTR) {
+    sprintf(position2buf, " P2: %s", position2->toString()->asChar());
+  }
+  else {
+    sprintf(position2buf, " P2: %s ]", "NULL");
+  }
+  char creationdatebuf[2048];
+  if (creationDate != NULLPTR) {
+    sprintf(creationdatebuf, "creation Date %s",
+        creationDate->toString()->asChar());
+  }
+  else {
+    sprintf(creationdatebuf, "creation Date %s", "NULL");
+  }
+
+  char stringBuf[7000];
+  sprintf(stringBuf, "%s%s%s%s%s",idbuf,pkidbuf,creationdatebuf,position1buf,position2buf);
+  return CacheableString::create( stringBuf );
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ac967000/geode-client-native/quickstart/cpp/queryobjects/Portfolio.hpp
----------------------------------------------------------------------
diff --git a/geode-client-native/quickstart/cpp/queryobjects/Portfolio.hpp b/geode-client-native/quickstart/cpp/queryobjects/Portfolio.hpp
new file mode 100644
index 0000000..1054622
--- /dev/null
+++ b/geode-client-native/quickstart/cpp/queryobjects/Portfolio.hpp
@@ -0,0 +1,155 @@
+/*=========================================================================
+ * Copyright (c) 2002-2014 Pivotal Software, Inc. All Rights Reserved.
+ * This product is protected by U.S. and international copyright
+ * and intellectual property laws. Pivotal products are covered by
+ * more patents listed at http://www.pivotal.io/patents.
+ *=========================================================================
+ */
+
+/*
+ * @brief User class for testing the put functionality for object.
+ */
+
+#ifndef __PORTFOLIO_HPP__
+#define __PORTFOLIO_HPP__
+
+
+#include <gfcpp/GemfireCppCache.hpp>
+#include "Position.hpp"
+
+using namespace gemfire;
+
+namespace testobject {
+
+class TESTOBJECT_EXPORT Portfolio : public Serializable
+{
+  private:
+    int32_t ID;
+    CacheableStringPtr pkid;
+    PositionPtr position1;
+    PositionPtr position2;
+    CacheableHashMapPtr positions;
+    CacheableStringPtr type;
+    char* status;
+    CacheableStringArrayPtr names;
+    static const char* secIds[];
+    uint8_t* newVal;
+    int32_t newValSize;
+    CacheableDatePtr creationDate;
+    uint8_t* arrayNull;
+    uint8_t* arrayZeroSize;
+
+
+    inline uint32_t getObjectSize( const SerializablePtr& obj ) const
+    {
+      return (obj == NULLPTR ? 0 : obj->objectSize());
+    }
+
+
+  public:
+
+    Portfolio(): ID( 0 ), pkid(NULLPTR), type(NULLPTR), status(NULL),
+      newVal(NULL), creationDate(NULLPTR), arrayNull(NULL), arrayZeroSize(NULL) { }
+    Portfolio(int32_t id, uint32_t size=0, CacheableStringArrayPtr nm=NULLPTR);
+    virtual ~Portfolio();
+
+    virtual uint32_t objectSize() const
+    {
+      uint32_t objectSize = sizeof(Portfolio);
+      objectSize += getObjectSize( pkid );
+      objectSize += getObjectSize( position1 );
+      objectSize += getObjectSize( position2 );
+      objectSize += getObjectSize( positions );
+      objectSize += getObjectSize( type );
+      objectSize += (uint32_t)(status==NULL ? 0 : sizeof(char)*strlen(status));
+      objectSize += getObjectSize( names );
+      objectSize += sizeof(uint8_t) * newValSize;
+      objectSize += getObjectSize(creationDate);
+      return objectSize;
+    }
+
+    int32_t getID() {
+      return ID;
+    }
+    void showNames(const char* label)
+    {
+       LOGINFO(label);
+       if(names==NULLPTR)
+       {
+	 LOGINFO("names is NULL");
+	 return;
+       }
+       for(int i = 0; i < names->length(); i++)
+       {
+	 LOGINFO("names[%d]=%s", i, names->operator[](i)->asChar());
+       }
+    }
+
+    CacheableStringPtr getPkid() {
+      return pkid;
+    }
+
+    PositionPtr getP1() {
+      return position1;
+    }
+
+    PositionPtr getP2() {
+      return position2;
+    }
+
+    CacheableHashMapPtr getPositions() {
+      return positions;
+    }
+
+    bool testMethod(bool booleanArg) {
+      return true;
+    }
+
+    char* getStatus() {
+      return status;
+    }
+
+    bool isActive() {
+      return ( strcmp(status, "active") == 0 ) ? true : false;
+    }
+
+    uint8_t* getNewVal() {
+      return newVal;
+    }
+
+    int32_t getNewValSize()
+    {
+      return newValSize;
+    }
+
+    CacheableStringPtr getType() {
+      return this->type;
+    }
+
+    CacheableDatePtr getCreationDate() {
+      return creationDate;
+    }
+
+    uint8_t* getArrayNull() {
+          return arrayNull;
+    }
+
+    uint8_t* getArrayZeroSize() {
+          return arrayZeroSize;
+    }
+
+    static Serializable* createDeserializable( ){
+      return new Portfolio();
+    }
+
+    virtual void toData( DataOutput& output ) const;
+    virtual Serializable* fromData( DataInput& input );
+    virtual int32_t classId( ) const { return 0x03; }
+    CacheableStringPtr toString() const;
+
+};
+
+typedef SharedPtr< Portfolio > PortfolioPtr;
+
+}
+#endif

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ac967000/geode-client-native/quickstart/cpp/queryobjects/PortfolioPdx.cpp
----------------------------------------------------------------------
diff --git a/geode-client-native/quickstart/cpp/queryobjects/PortfolioPdx.cpp b/geode-client-native/quickstart/cpp/queryobjects/PortfolioPdx.cpp
new file mode 100644
index 0000000..533d755
--- /dev/null
+++ b/geode-client-native/quickstart/cpp/queryobjects/PortfolioPdx.cpp
@@ -0,0 +1,183 @@
+#include "PortfolioPdx.hpp"
+#include <malloc.h>
+
+using namespace gemfire;
+using namespace testobject;
+
+const char*  PortfolioPdx::secIds[] = { "SUN", "IBM", "YHOO", "GOOG", "MSFT",
+      "AOL", "APPL", "ORCL", "SAP", "DELL"};
+
+PortfolioPdx::PortfolioPdx(int32_t i, int32_t size, char** nm) : names(nm) {
+    id = i;
+
+    char pkidbuf[256];
+    sprintf(pkidbuf,"%d",i);
+    size_t strSize = strlen(pkidbuf) + 1;
+    pkid = new char[strSize];
+    memcpy(pkid, pkidbuf, strSize);
+
+    const char* statusStr = (i % 2 == 0) ? "active" : "inactive";
+    int32_t statusSize = static_cast<int32_t> (strlen( statusStr )) + 1;
+    status = new char[ statusSize ];
+    memcpy( status, statusStr, statusSize );
+
+    char buf[100];
+    sprintf( buf, "type%d", (i % 3) );
+    size_t strSize2 = strlen(buf) + 1;
+    type = new char[strSize2];
+    memcpy(type, buf, strSize2);
+
+    int numSecIds = sizeof(secIds)/sizeof(char*);
+    position1 = new PositionPdx(secIds[PositionPdx::cnt % numSecIds], PositionPdx::cnt * 1000);
+    if (i % 2 != 0) {
+      position2 = new PositionPdx(secIds[PositionPdx::cnt % numSecIds],PositionPdx::cnt * 1000);
+    }
+    else
+    {
+      position2 = NULLPTR;
+    }
+    positions = CacheableHashMap::create( );
+    positions->insert(CacheableString::create(secIds[PositionPdx::cnt % numSecIds]), position1);
+
+    if(size > 0){
+      newVal = new int8_t[size];
+      for(int index =0; index < size; index++){
+        newVal[index] = (int8_t)'B';
+      }
+    }
+    newValSize = size;
+
+    time_t timeVal = 1310447869;
+    creationDate = CacheableDate::create( timeVal  );
+    arrayNull = NULL;
+    arrayZeroSize = new int8_t[0];
+
+}
+
+PortfolioPdx::~PortfolioPdx() {
+  if ( newVal != NULL ) {
+    delete [] newVal;
+    newVal = NULL;
+  }
+  if ( status != NULL ) {
+    delete [] status;
+    status = NULL;
+  }
+  if ( pkid != NULL ) {
+      delete [] pkid;
+      pkid = NULL;
+  }
+
+  if ( type != NULL ) {
+    delete [] type;
+    type = NULL;
+  }
+
+  if ( newVal != NULL ) {
+    delete [] newVal;
+    newVal = NULL;
+  }
+}
+
+void PortfolioPdx::toData( PdxWriterPtr pw  )  {
+  pw->writeInt("ID", id);
+  pw->markIdentityField("ID");
+
+  pw->writeString("pkid", pkid);
+  pw->markIdentityField("pkid");
+
+  pw->writeObject("position1", position1);
+  pw->markIdentityField("position1");
+
+  pw->writeObject("position2", position2);
+  pw->markIdentityField("position2");
+
+  pw->writeObject("positions", positions);
+  pw->markIdentityField("positions");
+
+  pw->writeString("type", type);
+  pw->markIdentityField("type");
+
+  pw->writeString("status", status);
+  pw->markIdentityField("status");
+
+  pw->writeStringArray("names", names, 0);
+  pw->markIdentityField("names");
+
+  pw->writeByteArray("newVal", newVal, newValSize);
+  pw->markIdentityField("newVal");
+
+  pw->writeDate("creationDate", creationDate);
+  pw->markIdentityField("creationDate");
+
+  pw->writeByteArray("arrayNull", arrayNull,0);
+  pw->writeByteArray("arrayZeroSize", arrayZeroSize,0);
+
+}
+
+void PortfolioPdx::fromData( PdxReaderPtr pr )
+{
+  id = pr->readInt("ID");
+  pkid = pr->readString("pkid");
+
+  position1 = dynCast<PositionPdxPtr>(pr->readObject("position1"));
+  position2 = dynCast<PositionPdxPtr>(pr->readObject("position2"));
+  positions = dynCast<CacheableHashMapPtr>(pr->readObject("positions"));
+  type = pr->readString("type");
+  status = pr->readString("status");
+
+  int32_t strLenArray=0;
+  names = pr->readStringArray("names", strLenArray);
+  int32_t byteArrayLen=0;
+  newVal = pr->readByteArray("newVal", byteArrayLen);
+  creationDate = pr->readDate("creationDate");
+  int32_t arrayNullLen = 0;
+  arrayNull = pr->readByteArray("arrayNull", arrayNullLen);
+  int32_t arrayZeroSizeLen=0;
+  arrayZeroSize = pr->readByteArray("arrayZeroSize", arrayZeroSizeLen);
+
+}
+
+CacheableStringPtr PortfolioPdx::toString() const {
+  LOGINFO("PortfolioPdx::toString() Start");
+  char idbuf[1024];
+  sprintf(idbuf,"PortfolioPdxObject: [ id=%d ]",id);
+
+  char pkidbuf[1024];
+  if (pkid != NULL) {
+    sprintf(pkidbuf, " status=%s type=%s pkid=%s\n", this->status,
+        this->type, this->pkid);
+  }
+  else {
+    sprintf(pkidbuf, " status=%s type=%s pkid=%s\n", this->status,
+        this->type, this->pkid);
+  }
+  char position1buf[2048];
+  if (position1 != NULLPTR) {
+    sprintf(position1buf, "\t\t\t  P1: %s", position1->toString()->asChar());
+  }
+  else {
+    sprintf(position1buf, "\t\t\t  P1: %s", "NULL");
+  }
+  char position2buf[2048];
+  if (position2 != NULLPTR) {
+    sprintf(position2buf, " P2: %s", position2->toString()->asChar());
+  }
+  else {
+    sprintf(position2buf, " P2: %s ]", "NULL");
+  }
+  char creationdatebuf[2048];
+  if (creationDate != NULLPTR) {
+    sprintf(creationdatebuf, "creation Date %s",
+        creationDate->toString()->asChar());
+  }
+  else {
+    sprintf(creationdatebuf, "creation Date %s", "NULL");
+  }
+
+  char stringBuf[7000];
+  sprintf(stringBuf, "%s%s%s%s%s",idbuf,pkidbuf,creationdatebuf,position1buf,position2buf);
+  return CacheableString::create( stringBuf );
+
+  return CacheableString::create( idbuf );
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ac967000/geode-client-native/quickstart/cpp/queryobjects/PortfolioPdx.hpp
----------------------------------------------------------------------
diff --git a/geode-client-native/quickstart/cpp/queryobjects/PortfolioPdx.hpp b/geode-client-native/quickstart/cpp/queryobjects/PortfolioPdx.hpp
new file mode 100644
index 0000000..fe78806
--- /dev/null
+++ b/geode-client-native/quickstart/cpp/queryobjects/PortfolioPdx.hpp
@@ -0,0 +1,126 @@
+/*=========================================================================
+ * Copyright (c) 2002-2014 Pivotal Software, Inc. All Rights Reserved.
+ * This product is protected by U.S. and international copyright
+ * and intellectual property laws. Pivotal products are covered by
+ * more patents listed at http://www.pivotal.io/patents.
+ *=========================================================================
+ */
+
+/*
+ * @brief User class for testing the put functionality for object.
+ */
+
+#ifndef __PORTFOLIOPDX_HPP__
+#define __PORTFOLIOPDX_HPP__
+
+#include "PositionPdx.hpp"
+
+using namespace gemfire;
+
+namespace testobject {
+
+class TESTOBJECT_EXPORT PortfolioPdx : public PdxSerializable
+{
+  private:
+    int32_t id;
+
+    char* pkid;
+
+    PositionPdxPtr position1;
+    PositionPdxPtr position2;
+    CacheableHashMapPtr positions;
+    char* type;
+    char* status;
+    char** names;
+    static const char* secIds[];
+    int8_t* newVal;
+    int32_t newValSize;
+    CacheableDatePtr creationDate;
+    int8_t* arrayNull;
+    int8_t* arrayZeroSize;
+
+  public:
+
+    PortfolioPdx(): id( 0 ), pkid(NULL), type(NULL), status(NULL),
+      newVal(NULL), creationDate(NULLPTR), arrayNull(NULL), arrayZeroSize(NULL) { }
+
+    PortfolioPdx(int32_t id, int32_t size=0, char** nm=NULL);
+
+    virtual ~PortfolioPdx();
+
+    int32_t getID() {
+      return id;
+    }
+
+    char* getPkid() {
+      return pkid;
+    }
+
+    PositionPdxPtr getP1() {
+      return position1;
+    }
+
+    PositionPdxPtr getP2() {
+      return position2;
+    }
+
+    CacheableHashMapPtr getPositions() {
+      return positions;
+    }
+
+    bool testMethod(bool booleanArg) {
+      return true;
+    }
+
+    char* getStatus() {
+      return status;
+    }
+
+    bool isActive() {
+      return ( strcmp(status, "active") == 0 ) ? true : false;
+    }
+
+    int8_t* getNewVal() {
+      return newVal;
+    }
+
+    int32_t getNewValSize()
+    {
+      return newValSize;
+    }
+
+    const char* getClassName(){
+      return this->type;
+    }
+
+    CacheableDatePtr getCreationDate() {
+      return creationDate;
+    }
+
+    int8_t* getArrayNull() {
+          return arrayNull;
+    }
+
+    int8_t* getArrayZeroSize() {
+          return arrayZeroSize;
+    }
+
+    static PdxSerializable* createDeserializable( ){
+      return new PortfolioPdx();
+    }
+
+    const char* getClassName()const {
+      return "testobject.PortfolioPdx";
+    }
+
+    virtual void toData( PdxWriterPtr pw ) ;
+    virtual void fromData(PdxReaderPtr pr);
+
+    CacheableStringPtr toString() const;
+
+};
+
+typedef SharedPtr< PortfolioPdx > PortfolioPdxPtr;
+
+}
+#endif

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ac967000/geode-client-native/quickstart/cpp/queryobjects/PortfolioPdxAuto.cpp
----------------------------------------------------------------------
diff --git a/geode-client-native/quickstart/cpp/queryobjects/PortfolioPdxAuto.cpp b/geode-client-native/quickstart/cpp/queryobjects/PortfolioPdxAuto.cpp
new file mode 100644
index 0000000..29b3b08
--- /dev/null
+++ b/geode-client-native/quickstart/cpp/queryobjects/PortfolioPdxAuto.cpp
@@ -0,0 +1,125 @@
+#include "PortfolioPdxAuto.hpp"
+#include <malloc.h>
+
+using namespace gemfire;
+using namespace testobject;
+
+const char*  /*PortfolioPdx::*/secIds[] = { "SUN", "IBM", "YHOO", "GOOG", "MSFT",
+      "AOL", "APPL", "ORCL", "SAP", "DELL"};
+
+PortfolioPdxAuto::PortfolioPdxAuto(int32_t i, int32_t size, char** nm)/* : names(nm)*/ {
+    id = i;
+
+    char pkidbuf[256];
+    sprintf(pkidbuf,"%d",i);
+    size_t strSize = strlen(pkidbuf) + 1;
+    pkid = new char[strSize];
+    memcpy(pkid, pkidbuf, strSize);
+
+    const char* statusStr = (i % 2 == 0) ? "active" : "inactive";
+    int32_t statusSize = static_cast<int32_t> (strlen( statusStr )) + 1;
+    status = new char[ statusSize ];
+    memcpy( status, statusStr, statusSize );
+
+    char buf[100];
+    sprintf( buf, "type%d", (i % 3) );
+    size_t strSize2 = strlen(buf) + 1;
+    type = new char[strSize2];
+    memcpy(type, buf, strSize2);
+
+    int numSecIds = sizeof(secIds)/sizeof(char*);
+    position1 = new PositionPdxAuto(secIds[PositionPdxAuto::cnt % numSecIds], PositionPdxAuto::cnt * 1000);
+    if (i % 2 != 0) {
+      position2 = new PositionPdxAuto(secIds[PositionPdxAuto::cnt % numSecIds],PositionPdxAuto::cnt * 1000);
+    }
+    else
+    {
+      position2 = NULLPTR;
+    }
+    positions = CacheableHashMap::create( );
+    positions->insert(CacheableString::create(secIds[PositionPdxAuto::cnt % numSecIds]), position1);
+
+    if(size > 0){
+      newVal = new int8_t[size];
+      for(int index =0; index < size; index++){
+        newVal[index] = (int8_t)'B';
+      }
+    }
+    newValSize = size;
+
+    time_t timeVal = 1310447869;
+    creationDate = CacheableDate::create( timeVal  );
+    arrayNull = NULL;
+    arrayZeroSize = new int8_t[0];
+    arrayZeroSizeSize = 1;
+
+}
+
+PortfolioPdxAuto::~PortfolioPdxAuto() {
+  if ( newVal != NULL ) {
+    delete [] newVal;
+    newVal = NULL;
+  }
+  if ( status != NULL ) {
+    delete [] status;
+    status = NULL;
+  }
+  if ( pkid != NULL ) {
+      delete [] pkid;
+      pkid = NULL;
+  }
+
+  if ( type != NULL ) {
+    delete [] type;
+    type = NULL;
+  }
+
+  if ( newVal != NULL ) {
+    delete [] newVal;
+    newVal = NULL;
+  }
+}
+
+CacheableStringPtr PortfolioPdxAuto::toString() const {
+  LOGINFO("PortfolioPdxAuto::toString() Start");
+  char idbuf[1024];
+  sprintf(idbuf,"PortfolioPdxObject: [ id=%d ]",id);
+
+  char pkidbuf[1024];
+  if (pkid != NULL) {
+    sprintf(pkidbuf, " status=%s type=%s pkid=%s\n", this->status,
+        this->type, this->pkid);
+  }
+  else {
+    sprintf(pkidbuf, " status=%s type=%s pkid=%s\n", this->status,
+        this->type, this->pkid);
+  }
+  char position1buf[2048];
+  if (position1 != NULLPTR) {
+    sprintf(position1buf, "\t\t\t  P1: %s", position1->toString()->asChar());
+  }
+  else {
+    sprintf(position1buf, "\t\t\t  P1: %s", "NULL");
+  }
+  char position2buf[2048];
+  if (position2 != NULLPTR) {
+    sprintf(position2buf, " P2: %s", position2->toString()->asChar());
+  }
+  else {
+    sprintf(position2buf, " P2: %s ]", "NULL");
+  }
+  char creationdatebuf[2048];
+  if (creationDate != NULLPTR) {
+    sprintf(creationdatebuf, "creation Date %s",
+        creationDate->toString()->asChar());
+  }
+  else {
+    sprintf(creationdatebuf, "creation Date %s", "NULL");
+  }
+
+  char stringBuf[7000];
+  sprintf(stringBuf, "%s%s%s%s%s",idbuf,pkidbuf,creationdatebuf,position1buf,position2buf);
+  return CacheableString::create( stringBuf );
+
+  return CacheableString::create( idbuf );
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ac967000/geode-client-native/quickstart/cpp/queryobjects/PortfolioPdxAuto.hpp
----------------------------------------------------------------------
diff --git a/geode-client-native/quickstart/cpp/queryobjects/PortfolioPdxAuto.hpp b/geode-client-native/quickstart/cpp/queryobjects/PortfolioPdxAuto.hpp
new file mode 100644
index 0000000..cc07b56
--- /dev/null
+++ b/geode-client-native/quickstart/cpp/queryobjects/PortfolioPdxAuto.hpp
@@ -0,0 +1,127 @@
+/*=========================================================================
+ * Copyright (c) 2002-2014 Pivotal Software, Inc. All Rights Reserved.
+ * This product is protected by U.S. and international copyright
+ * and intellectual property laws. Pivotal products are covered by
+ * more patents listed at http://www.pivotal.io/patents.
+ *=========================================================================
+ */
+
+/*
+ * @brief User class for testing the put functionality for object.
+ */
+
+#ifndef __PORTFOLIOPDX_AUTO_HPP__
+#define __PORTFOLIOPDX_AUTO_HPP__
+
+#include "PositionPdxAuto.hpp"
+
+using namespace gemfire;
+
+namespace testobject {
+#define GFARRAYSIZE(X)
+#define GFID 
+class PortfolioPdxAuto : public gemfire::PdxSerializable
+{
+  private:
+    GFID int32_t id;
+
+    GFID char* pkid;
+
+    GFID PositionPdxPtr position1;
+    GFID PositionPdxPtr position2;
+    GFID CacheableHashMapPtr positions;
+    GFID char* type;
+    GFID char* status;
+    //char** names;
+    //static const char* secIds[];
+    GFID int8_t* newVal;
+    GFARRAYSIZE(newVal) int32_t newValSize;
+    GFID CacheableDatePtr creationDate;
+    GFID int8_t* arrayNull;
+    GFARRAYSIZE(arrayNull) int32_t arrayNullSize;
+
+    GFID int8_t* arrayZeroSize;
+    GFARRAYSIZE(arrayZeroSize) int32_t arrayZeroSizeSize;
+
+  public:
+
+    PortfolioPdxAuto(): id( 0 ), pkid(NULL), type(NULL), status(NULL),
+      newVal(NULL), creationDate(NULLPTR), arrayNull(NULL), arrayNullSize(0), arrayZeroSize(NULL), arrayZeroSizeSize(0) { }
+
+    PortfolioPdxAuto(int32_t id, int32_t size=0, char** nm=NULL);
+
+    virtual ~PortfolioPdxAuto();
+
+    int32_t getID() {
+      return id;
+    }
+
+    char* getPkid() {
+      return pkid;
+    }
+
+    PositionPdxPtr getP1() {
+      return position1;
+    }
+
+    PositionPdxPtr getP2() {
+      return position2;
+    }
+
+    CacheableHashMapPtr getPositions() {
+      return positions;
+    }
+
+    bool testMethod(bool booleanArg) {
+      return true;
+    }
+
+    char* getStatus() {
+      return status;
+    }
+
+    bool isActive() {
+      return ( strcmp(status, "active") == 0 ) ? true : false;
+    }
+
+    int8_t* getNewVal() {
+      return newVal;
+    }
+
+    int32_t getNewValSize()
+    {
+      return newValSize;
+    }
+
+    const char* getClassName(){
+      return this->type;
+    }
+
+    CacheableDatePtr getCreationDate() {
+      return creationDate;
+    }
+
+    int8_t* getArrayNull() {
+          return arrayNull;
+    }
+
+    int8_t* getArrayZeroSize() {
+          return arrayZeroSize;
+    }
+
+
+    const char* getClassName() const;
+
+    virtual void toData( PdxWriterPtr pw ) ;
+    virtual void fromData(PdxReaderPtr pr);
+
+    static PdxSerializable* createDeserializable( );
+
+    CacheableStringPtr toString() const;
+
+};
+
+typedef SharedPtr< PortfolioPdxAuto > PortfolioPdxPtr;
+
+}
+#endif

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ac967000/geode-client-native/quickstart/cpp/queryobjects/Position.cpp
----------------------------------------------------------------------
diff --git a/geode-client-native/quickstart/cpp/queryobjects/Position.cpp b/geode-client-native/quickstart/cpp/queryobjects/Position.cpp
new file mode 100644
index 0000000..499e7bb
--- /dev/null
+++ b/geode-client-native/quickstart/cpp/queryobjects/Position.cpp
@@ -0,0 +1,98 @@
+#include "Position.hpp"
+#include <cwchar>
+#include <wchar.h>
+#include <malloc.h>
+
+using namespace gemfire;
+using namespace testobject;
+
+int32_t Position::cnt = 0;
+
+Position::Position()
+{
+  init();
+}
+
+Position::Position(const char* id, int32_t out) {
+  init();
+  secId = CacheableString::create(id);
+  qty = out - (cnt%2==0?1000:100);
+  mktValue = qty * 1.2345998;
+  sharesOutstanding = out;
+  secType = ( wchar_t * )malloc( ( wcslen( L"a" ) + 1 ) * sizeof( wchar_t ) );
+  wcscpy( secType, L"a" );
+  pid = cnt++;
+}
+
+Position::~Position() {
+  if (secType != NULL) {
+    free(secType);
+  }
+}
+
+void Position::init()
+{
+  avg20DaysVol = 0;
+  bondRating = NULLPTR;
+  convRatio = 0.0;
+  country = NULLPTR;
+  delta = 0.0;
+  industry = 0;
+  issuer = 0;
+  mktValue = 0.0;
+  qty=0.0;
+  secId = NULLPTR;
+  secLinks = NULLPTR;
+  secType = NULL;
+  sharesOutstanding = 0;
+  underlyer = NULLPTR;
+  volatility=0;
+  pid=0;
+}
+
+void Position::toData( gemfire::DataOutput& output ) const {
+  output.writeInt(avg20DaysVol);
+  output.writeObject(bondRating);
+  output.writeDouble(convRatio);
+  output.writeObject(country);
+  output.writeDouble(delta);
+  output.writeInt(industry);
+  output.writeInt(issuer);
+  output.writeDouble(mktValue);
+  output.writeDouble(qty);
+  output.writeObject(secId);
+  output.writeObject(secLinks);
+  output.writeUTF(secType);
+  output.writeInt(sharesOutstanding);
+  output.writeObject(underlyer);
+  output.writeInt(volatility);
+  output.writeInt(pid);
+}
+
+gemfire::Serializable* Position::fromData( gemfire::DataInput& input ){
+  input.readInt(&avg20DaysVol);
+  input.readObject(bondRating);
+  input.readDouble(&convRatio);
+  input.readObject(country);
+  input.readDouble(&delta);
+  input.readInt(&industry);
+  input.readInt(&issuer);
+  input.readDouble(&mktValue);
+  input.readDouble(&qty);
+  input.readObject(secId);
+  input.readObject(secLinks);
+  input.readUTF(&secType);
+  input.readInt(&sharesOutstanding);
+  input.readObject(underlyer);
+  input.readInt(&volatility);
+  input.readInt(&pid);
+  return this;
+}
+
+CacheableStringPtr Position::toString() const {
+  char buf[2048];
+  sprintf(buf, "Position Object:[ secId=%s type=%ls sharesOutstanding=%d id=%d ]",
+      secId->toString(), this->secType, this->sharesOutstanding, this->pid);
+  return CacheableString::create( buf );
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ac967000/geode-client-native/quickstart/cpp/queryobjects/Position.hpp
----------------------------------------------------------------------
diff --git a/geode-client-native/quickstart/cpp/queryobjects/Position.hpp b/geode-client-native/quickstart/cpp/queryobjects/Position.hpp
new file mode 100644
index 0000000..07c9734
--- /dev/null
+++ b/geode-client-native/quickstart/cpp/queryobjects/Position.hpp
@@ -0,0 +1,101 @@
+/*=========================================================================
+ * Copyright (c) 2002-2014 Pivotal Software, Inc. All Rights Reserved.
+ * This product is protected by U.S. and international copyright
+ * and intellectual property laws. Pivotal products are covered by
+ * more patents listed at http://www.pivotal.io/patents.
+ *=========================================================================
+ */
+
+/*
+ * @brief User class for testing the put functionality for object.
+ */
+
+
+#ifndef __POSITION_HPP__
+#define __POSITION_HPP__ 
+
+#include <gfcpp/GemfireCppCache.hpp>
+#include <string.h>
+
+#ifdef _WIN32
+#ifdef BUILD_TESTOBJECT
+#define TESTOBJECT_EXPORT LIBEXP
+#else
+#define TESTOBJECT_EXPORT LIBIMP
+#endif
+#else
+#define TESTOBJECT_EXPORT
+#endif
+
+using namespace gemfire;
+
+namespace testobject {
+
+class TESTOBJECT_EXPORT Position : public gemfire::Serializable
+{
+  private:
+   int64_t avg20DaysVol;
+   CacheableStringPtr bondRating;
+   double convRatio;
+   CacheableStringPtr  country;
+   double delta;
+   int64_t industry;
+   int64_t issuer;
+   double mktValue;
+   double qty;
+   CacheableStringPtr secId;
+   CacheableStringPtr secLinks;
+   //wchar_t* secType;
+   wchar_t* secType;
+   int32_t sharesOutstanding;
+   CacheableStringPtr underlyer;
+   int64_t volatility;
+   int32_t pid;
+
+  public:
+    static int32_t cnt;
+
+    Position();
+    Position(const char* id, int32_t out);
+    virtual ~Position();
+    virtual void toData( gemfire::DataOutput& output ) const;
+    virtual gemfire::Serializable* fromData( gemfire::DataInput& input );
+    virtual int32_t classId( ) const { return 0x02; }
+    CacheableStringPtr toString() const;
+    
+    virtual uint32_t objectSize() const {
+      uint32_t objectSize = sizeof(Position);
+      objectSize += bondRating->objectSize();
+      objectSize += country->objectSize();
+      objectSize += secId->objectSize();
+      objectSize += secLinks->objectSize();
+      objectSize += (uint32_t)(sizeof(wchar_t) * wcslen(secType));
+      objectSize += underlyer->objectSize();
+      return objectSize;
+      
+    }
+
+    static void resetCounter() {
+      cnt = 0;
+    }
+    CacheableStringPtr getSecId() { 
+      return secId;
+    }
+    int32_t getId() {
+      return pid;
+    }
+    int32_t getSharesOutstanding() {
+      return sharesOutstanding;
+    }
+    static gemfire::Serializable* createDeserializable( ){
+      return new Position();
+    }
+
+  private:
+    void init();
+};
+
+typedef gemfire::SharedPtr< Position > PositionPtr;
+
+}
+#endif

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ac967000/geode-client-native/quickstart/cpp/queryobjects/PositionPdx.cpp
----------------------------------------------------------------------
diff --git a/geode-client-native/quickstart/cpp/queryobjects/PositionPdx.cpp b/geode-client-native/quickstart/cpp/queryobjects/PositionPdx.cpp
new file mode 100644
index 0000000..ecf91c2
--- /dev/null
+++ b/geode-client-native/quickstart/cpp/queryobjects/PositionPdx.cpp
@@ -0,0 +1,167 @@
+#include "PositionPdx.hpp"
+#include <cwchar>
+#include <wchar.h>
+#include <malloc.h>
+
+using namespace gemfire;
+using namespace testobject;
+
+int32_t PositionPdx::cnt = 0;
+
+PositionPdx::PositionPdx()
+{
+  init();
+}
+
+PositionPdx::PositionPdx(const char* id, int32_t out) {
+  init();
+
+  size_t strSize = strlen(id) + 1;
+  secId = new char[strSize];
+  memcpy(secId, id, strSize);
+
+  qty = out * (cnt%2 == 0 ? 10.0 : 100.0);
+  mktValue = qty * 1.2345998;
+  sharesOutstanding = out;
+  //secType = ( wchar_t * )malloc( ( wcslen( L"a" ) + 1 ) * sizeof( wchar_t ) );
+  secType =  new char[ ( strlen( "a" ) + 1 ) ];
+  strcpy( secType, "a" );
+
+  pid = cnt++;
+}
+
+// This constructor is just for some internal data validation test
+PositionPdx::PositionPdx(int32_t iForExactVal) {
+  init();
+
+  char * id = new char[iForExactVal+2];
+  for(int i=0;i<=iForExactVal; i++)
+  {
+    id[i] = 'a';
+  }
+  id[iForExactVal+1] = '\0';
+  size_t strSize = strlen(id) + 1;
+  secId = new char[strSize];
+  memcpy(secId, id, strSize);
+
+  delete [] id;
+  qty = (iForExactVal%2==0?1000:100);
+  mktValue = qty * 2;
+  sharesOutstanding = iForExactVal;
+  //secType = ( wchar_t * )malloc( ( wcslen( L"a" ) + 1 ) * sizeof( wchar_t ) );
+  secType =  new char [ ( strlen( "a" ) + 1 ) ];
+  strcpy( secType, "a" );
+  pid = iForExactVal;
+}
+
+PositionPdx::~PositionPdx() {
+  if (secType != NULL) {
+    //free(secType);
+    delete [] secType;
+    secType = NULL;
+  }
+
+  if (secId != NULL) {
+    //free(secId);
+    delete [] secId;
+    secId = NULL;
+  }
+}
+
+void PositionPdx::init()
+{
+
+  avg20DaysVol = 0;
+  bondRating = NULL;
+  convRatio = 0.0;
+  country = NULL;
+  delta = 0.0;
+  industry = 0;
+  issuer = 0;
+  mktValue = 0.0;
+  qty=0.0;
+  secId = NULL;
+  secLinks = NULL;
+  secType = NULL;
+  sharesOutstanding = 0;
+  underlyer = NULL;
+  volatility=0;
+  pid=0;
+}
+
+void PositionPdx::toData( PdxWriterPtr pw)  {
+  pw->writeLong("avg20DaysVol", avg20DaysVol);
+  pw->markIdentityField("avg20DaysVol");
+
+  pw->writeString("bondRating", bondRating);
+  pw->markIdentityField("bondRating");
+
+  pw->writeDouble("convRatio", convRatio);
+  pw->markIdentityField("convRatio");
+
+  pw->writeString("country", country);
+  pw->markIdentityField("country");
+
+  pw->writeDouble("delta", delta);
+  pw->markIdentityField("delta");
+
+  pw->writeLong("industry", industry);
+  pw->markIdentityField("industry");
+
+  pw->writeLong("issuer", issuer);
+  pw->markIdentityField("issuer");
+
+  pw->writeDouble("mktValue", mktValue);
+  pw->markIdentityField("mktValue");
+
+  pw->writeDouble("qty", qty);
+  pw->markIdentityField("qty");
+
+  pw->writeString("secId", secId);
+  pw->markIdentityField("secId");
+
+  pw->writeString("secLinks", secLinks);
+  pw->markIdentityField("secLinks");
+
+  pw->writeString("secType", secType);
+  pw->markIdentityField("secType");
+
+  pw->writeInt("sharesOutstanding", sharesOutstanding);
+  pw->markIdentityField("sharesOutstanding");
+
+  pw->writeString("underlyer", underlyer);
+  pw->markIdentityField("underlyer");
+
+  pw->writeLong("volatility", volatility);
+  pw->markIdentityField("volatility");
+
+  pw->writeInt("pid", pid);
+  pw->markIdentityField("pid");
+}
+
+void PositionPdx::fromData( PdxReaderPtr pr ){
+
+  avg20DaysVol = pr->readLong("avg20DaysVol");
+  bondRating = pr->readString("bondRating");
+  convRatio = pr->readDouble("convRatio");
+  country = pr->readString("country");
+  delta = pr->readDouble("delta");
+  industry = pr->readLong("industry");
+  issuer = pr->readLong("issuer");
+  mktValue = pr->readDouble("mktValue");
+  qty = pr->readDouble("qty");
+  secId = pr->readString("secId");
+  secLinks = pr->readString("secLinks");
+  secType = pr->readString("secType");
+  sharesOutstanding = pr->readInt("sharesOutstanding");
+  underlyer = pr->readString("underlyer");
+  volatility = pr->readLong("volatility");
+  pid = pr->readInt("pid");
+}
+
+CacheableStringPtr PositionPdx::toString() const {
+  char buf[1024];
+  sprintf(buf, "PositionPdx Object:[ id=%d ]", this->pid);
+  return CacheableString::create( buf );
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ac967000/geode-client-native/quickstart/cpp/queryobjects/PositionPdx.hpp
----------------------------------------------------------------------
diff --git a/geode-client-native/quickstart/cpp/queryobjects/PositionPdx.hpp b/geode-client-native/quickstart/cpp/queryobjects/PositionPdx.hpp
new file mode 100644
index 0000000..e0cde44
--- /dev/null
+++ b/geode-client-native/quickstart/cpp/queryobjects/PositionPdx.hpp
@@ -0,0 +1,111 @@
+/*=========================================================================
+ * Copyright (c) 2002-2014 Pivotal Software, Inc. All Rights Reserved.
+ * This product is protected by U.S. and international copyright
+ * and intellectual property laws. Pivotal products are covered by
+ * more patents listed at http://www.pivotal.io/patents.
+ *=========================================================================
+ */
+
+/*
+ * @brief User class for testing the put functionality for object.
+ */
+
+
+#ifndef __POSITIONPDX_HPP__
+#define __POSITIONPDX_HPP__
+
+#include <gfcpp/GemfireCppCache.hpp>
+#include <gfcpp/PdxSerializable.hpp>
+#include <gfcpp/PdxWriter.hpp>
+#include <gfcpp/PdxReader.hpp>
+#include <string.h>
+
+#ifdef _WIN32
+#ifdef BUILD_TESTOBJECT
+#define TESTOBJECT_EXPORT LIBEXP
+#else
+#define TESTOBJECT_EXPORT LIBIMP
+#endif
+#else
+#define TESTOBJECT_EXPORT
+#endif
+
+using namespace gemfire;
+
+namespace testobject {
+
+class TESTOBJECT_EXPORT PositionPdx : public gemfire::PdxSerializable
+{
+  private:
+
+   int64_t avg20DaysVol;
+   char* bondRating;
+   double convRatio;
+   char*  country;
+   double delta;
+   int64_t industry;
+   int64_t issuer;
+   double mktValue;
+   double qty;
+   char* secId;
+   char* secLinks;
+   //wchar_t* secType;
+   //wchar_t* secType;
+   char* secType;
+   int32_t sharesOutstanding;
+   char* underlyer;
+   int64_t volatility;
+
+   int32_t pid;
+
+  public:
+
+   static int32_t cnt;
+
+    PositionPdx();
+    PositionPdx(const char* id, int32_t out);
+    // This constructor is just for some internal data validation test
+    PositionPdx(int32_t iForExactVal);
+    virtual ~PositionPdx();
+    virtual void toData( PdxWriterPtr pw ) ;
+    virtual void fromData( PdxReaderPtr pr );
+
+    CacheableStringPtr toString() const;
+
+    virtual uint32_t objectSize() const {
+        uint32_t objectSize = sizeof(PositionPdx);
+        return objectSize;
+    }
+
+    static void resetCounter() {
+      cnt = 0;
+    }
+
+    char* getSecId() {
+      return secId;
+    }
+
+    int32_t getId() {
+      return pid;
+    }
+
+    int32_t getSharesOutstanding() {
+      return sharesOutstanding;
+    }
+
+    static PdxSerializable* createDeserializable( ){
+      return new PositionPdx();
+    }
+
+    const char* getClassName()const {
+      return "testobject.PositionPdx";
+    }
+
+  private:
+    void init();
+};
+
+typedef gemfire::SharedPtr<PositionPdx> PositionPdxPtr;
+
+}
+#endif

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ac967000/geode-client-native/quickstart/cpp/queryobjects/PositionPdxAuto.cpp
----------------------------------------------------------------------
diff --git a/geode-client-native/quickstart/cpp/queryobjects/PositionPdxAuto.cpp b/geode-client-native/quickstart/cpp/queryobjects/PositionPdxAuto.cpp
new file mode 100644
index 0000000..852fcd9
--- /dev/null
+++ b/geode-client-native/quickstart/cpp/queryobjects/PositionPdxAuto.cpp
@@ -0,0 +1,98 @@
+#include "PositionPdxAuto.hpp"
+#include <cwchar>
+#include <wchar.h>
+#include <malloc.h>
+
+using namespace gemfire;
+using namespace testobject;
+
+int32_t PositionPdxAuto::cnt = 0;
+
+PositionPdxAuto::PositionPdxAuto()
+{
+  init();
+}
+
+PositionPdxAuto::PositionPdxAuto(const char* id, int32_t out) {
+  init();
+
+  size_t strSize = strlen(id) + 1;
+  secId = new char[strSize];
+  memcpy(secId, id, strSize);
+
+  qty = out * (cnt%2 == 0 ? 10.0 : 100.0);
+  mktValue = qty * 1.2345998;
+  sharesOutstanding = out;
+  //secType = ( wchar_t * )malloc( ( wcslen( L"a" ) + 1 ) * sizeof( wchar_t ) );
+  secType =  new char[ ( strlen( "a" ) + 1 ) ];
+  strcpy( secType, "a" );
+
+  pid = cnt++;
+}
+
+// This constructor is just for some internal data validation test
+PositionPdxAuto::PositionPdxAuto(int32_t iForExactVal) {
+  init();
+
+  char * id = new char[iForExactVal+2];
+  for(int i=0;i<=iForExactVal; i++)
+  {
+    id[i] = 'a';
+  }
+  id[iForExactVal+1] = '\0';
+  size_t strSize = strlen(id) + 1;
+  secId = new char[strSize];
+  memcpy(secId, id, strSize);
+
+  delete [] id;
+  qty = (iForExactVal%2==0?1000:100);
+  mktValue = qty * 2;
+  sharesOutstanding = iForExactVal;
+  //secType = ( wchar_t * )malloc( ( wcslen( L"a" ) + 1 ) * sizeof( wchar_t ) );
+  secType =  new char [ ( strlen( "a" ) + 1 ) ];
+  strcpy( secType, "a" );
+  pid = iForExactVal;
+}
+
+PositionPdxAuto::~PositionPdxAuto() {
+  if (secType != NULL) {
+    //free(secType);
+    delete [] secType;
+    secType = NULL;
+  }
+
+  if (secId != NULL) {
+    //free(secId);
+    delete [] secId;
+    secId = NULL;
+  }
+}
+
+void PositionPdxAuto::init()
+{
+
+  avg20DaysVol = 0;
+  bondRating = NULL;
+  convRatio = 0.0;
+  country = NULL;
+  delta = 0.0;
+  industry = 0;
+  issuer = 0;
+  mktValue = 0.0;
+  qty=0.0;
+  secId = NULL;
+  secLinks = NULL;
+  secType = NULL;
+  sharesOutstanding = 0;
+  underlyer = NULL;
+  volatility=0;
+  pid=0;
+}
+
+
+CacheableStringPtr PositionPdxAuto::toString() const {
+  char buf[1024];
+  sprintf(buf, "PositionPdx Object:[ id=%d ]", this->pid);
+  return CacheableString::create( buf );
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ac967000/geode-client-native/quickstart/cpp/queryobjects/PositionPdxAuto.hpp
----------------------------------------------------------------------
diff --git a/geode-client-native/quickstart/cpp/queryobjects/PositionPdxAuto.hpp b/geode-client-native/quickstart/cpp/queryobjects/PositionPdxAuto.hpp
new file mode 100644
index 0000000..b3820e4
--- /dev/null
+++ b/geode-client-native/quickstart/cpp/queryobjects/PositionPdxAuto.hpp
@@ -0,0 +1,109 @@
+/*=========================================================================
+ * Copyright (c) 2002-2014 Pivotal Software, Inc. All Rights Reserved.
+ * This product is protected by U.S. and international copyright
+ * and intellectual property laws. Pivotal products are covered by
+ * more patents listed at http://www.pivotal.io/patents.
+ *=========================================================================
+ */
+
+/*
+ * @brief User class for testing the put functionality for object.
+ */
+
+
+#ifndef __POSITIONPDX_AUTO__HPP__
+#define __POSITIONPDX_AUTO__HPP__
+
+#include <gfcpp/GemfireCppCache.hpp>
+#include <gfcpp/PdxSerializable.hpp>
+#include <gfcpp/PdxWriter.hpp>
+#include <gfcpp/PdxReader.hpp>
+#include <string.h>
+
+#ifdef _WIN32
+#ifdef BUILD_TESTOBJECT
+#define TESTOBJECT_EXPORT LIBEXP
+#else
+#define TESTOBJECT_EXPORT LIBIMP
+#endif
+#else
+#define TESTOBJECT_EXPORT
+#endif
+
+using namespace gemfire;
+
+namespace testobject {
+
+#define GFID
+
+class PositionPdxAuto : public gemfire::PdxSerializable
+{
+  private:
+
+   GFID int64_t avg20DaysVol;
+   GFID char* bondRating;
+   GFID double convRatio;
+   GFID char*  country;
+   GFID double delta;
+   GFID int64_t industry;
+   GFID int64_t issuer;
+   GFID double mktValue;
+   GFID double qty;
+   GFID char* secId;
+   GFID char* secLinks;
+   //wchar_t* secType;
+   //wchar_t* secType;
+   GFID char* secType;
+   GFID int32_t sharesOutstanding;
+   GFID char* underlyer;
+   GFID int64_t volatility;
+
+   GFID int32_t pid;
+
+  public:
+
+   static int32_t cnt;
+
+    PositionPdxAuto();
+    PositionPdxAuto(const char* id, int32_t out);
+    // This constructor is just for some internal data validation test
+    PositionPdxAuto(int32_t iForExactVal);
+    virtual ~PositionPdxAuto();
+    virtual void toData( PdxWriterPtr pw ) ;
+    virtual void fromData( PdxReaderPtr pr );
+
+    CacheableStringPtr toString() const;
+
+    virtual uint32_t objectSize() const {
+        uint32_t objectSize = sizeof(PositionPdxAuto);
+        return objectSize;
+    }
+
+    static void resetCounter() {
+      cnt = 0;
+    }
+
+    char* getSecId() {
+      return secId;
+    }
+
+    int32_t getId() {
+      return pid;
+    }
+
+    int32_t getSharesOutstanding() {
+      return sharesOutstanding;
+    }
+
+    static PdxSerializable* createDeserializable( );
+
+    const char* getClassName() const;
+
+  private:
+    void init();
+};
+
+typedef gemfire::SharedPtr<PositionPdxAuto> PositionPdxPtr;
+
+}
+#endif

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ac967000/geode-client-native/quickstart/cpp/vsprojects/BasicOperationsC++/BasicOperationsC++.vcxproj
----------------------------------------------------------------------
diff --git a/geode-client-native/quickstart/cpp/vsprojects/BasicOperationsC++/BasicOperationsC++.vcxproj b/geode-client-native/quickstart/cpp/vsprojects/BasicOperationsC++/BasicOperationsC++.vcxproj
new file mode 100755
index 0000000..c17d437
--- /dev/null
+++ b/geode-client-native/quickstart/cpp/vsprojects/BasicOperationsC++/BasicOperationsC++.vcxproj
@@ -0,0 +1,142 @@
+\ufeff<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectName>BasicOperations C++</ProjectName>
+    <ProjectGuid>{5D8C303F-CF57-4AD7-A755-068A0C488CB8}</ProjectGuid>
+    <RootNamespace>BasicOperations C++</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)\cpp\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)\cpp\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Configuration)\</IntDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Configuration)\</IntDir>
+    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">BasicOperations</TargetName>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">BasicOperations</TargetName>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">BasicOperations</TargetName>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">BasicOperations</TargetName>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <AdditionalIncludeDirectories>$(GFCPP)/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <Optimization>Disabled</Optimization>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>$(GFCPP)/../hidden/lib/debug/gfcppcache.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(SolutionDir)\cpp\BasicOperations.exe</OutputFile>
+      <TargetMachine>MachineX86</TargetMachine>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+    </Midl>
+    <ClCompile>
+      <AdditionalIncludeDirectories>$(GFCPP)/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <Optimization>Disabled</Optimization>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>$(GFCPP)/../hidden/lib/gfcppcache.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(SolutionDir)\cpp\BasicOperations.exe</OutputFile>
+      <TargetMachine>MachineX64</TargetMachine>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <AdditionalIncludeDirectories>$(GFCPP)/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>$(GFCPP)/lib/gfcppcache.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(SolutionDir)\cpp\BasicOperations.exe</OutputFile>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+    </Midl>
+    <ClCompile>
+      <AdditionalIncludeDirectories>$(GFCPP)/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>$(GFCPP)/lib/gfcppcache.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(SolutionDir)\cpp\BasicOperations.exe</OutputFile>
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\BasicOperations.cpp" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ac967000/geode-client-native/quickstart/cpp/vsprojects/CqQueryC++/CqQueryC++.vcxproj
----------------------------------------------------------------------
diff --git a/geode-client-native/quickstart/cpp/vsprojects/CqQueryC++/CqQueryC++.vcxproj b/geode-client-native/quickstart/cpp/vsprojects/CqQueryC++/CqQueryC++.vcxproj
new file mode 100755
index 0000000..3f7e310
--- /dev/null
+++ b/geode-client-native/quickstart/cpp/vsprojects/CqQueryC++/CqQueryC++.vcxproj
@@ -0,0 +1,164 @@
+\ufeff<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectName>CqQuery C++</ProjectName>
+    <ProjectGuid>{4DCC2C45-74E0-4C99-B99D-271EAC2A2027}</ProjectGuid>
+    <RootNamespace>CqQuery C++</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)\cpp\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)\cpp\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Configuration)\</IntDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Configuration)\</IntDir>
+    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CqQuery</TargetName>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CqQuery</TargetName>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CqQuery</TargetName>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CqQuery</TargetName>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <AdditionalIncludeDirectories>$(GFCPP)/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>BUILD_TESTOBJECT;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <Optimization>Disabled</Optimization>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>$(GFCPP)/../hidden/lib/debug/gfcppcache.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(SolutionDir)\cpp\CqQuery.exe</OutputFile>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+    </Link>
+    <PostBuildEvent>
+      <Command>del /q "$(SolutionDir)\cpp\*.exp"
+del /q "$(SolutionDir)\cpp\*.lib"
+</Command>
+    </PostBuildEvent>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+    </Midl>
+    <ClCompile>
+      <AdditionalIncludeDirectories>$(GFCPP)/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>BUILD_TESTOBJECT;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <Optimization>Disabled</Optimization>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>$(GFCPP)/../hidden/lib/gfcppcache.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(SolutionDir)\cpp\CqQuery.exe</OutputFile>
+      <TargetMachine>MachineX64</TargetMachine>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+    </Link>
+    <PostBuildEvent>
+      <Command>del /q "$(SolutionDir)\cpp\*.exp"
+del /q "$(SolutionDir)\cpp\*.lib"
+</Command>
+    </PostBuildEvent>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <AdditionalIncludeDirectories>$(GFCPP)/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>BUILD_TESTOBJECT;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>$(GFCPP)/lib/gfcppcache.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(SolutionDir)\cpp\CqQuery.exe</OutputFile>
+    </Link>
+    <PostBuildEvent>
+      <Command>del /q "$(SolutionDir)\cpp\*.exp"
+del /q "$(SolutionDir)\cpp\*.lib"
+</Command>
+    </PostBuildEvent>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+    </Midl>
+    <ClCompile>
+      <AdditionalIncludeDirectories>$(GFCPP)/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>BUILD_TESTOBJECT;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>$(GFCPP)/lib/gfcppcache.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(SolutionDir)\cpp\CqQuery.exe</OutputFile>
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+    <PostBuildEvent>
+      <Command>del /q "$(SolutionDir)\cpp\*.exp"
+del /q "$(SolutionDir)\cpp\*.lib"
+</Command>
+    </PostBuildEvent>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\CqQuery.cpp" />
+    <ClCompile Include="..\..\queryobjects\Portfolio.cpp" />
+    <ClCompile Include="..\..\queryobjects\Position.cpp" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ac967000/geode-client-native/quickstart/cpp/vsprojects/DataExpirationC++/DataExpirationC++.vcxproj
----------------------------------------------------------------------
diff --git a/geode-client-native/quickstart/cpp/vsprojects/DataExpirationC++/DataExpirationC++.vcxproj b/geode-client-native/quickstart/cpp/vsprojects/DataExpirationC++/DataExpirationC++.vcxproj
new file mode 100755
index 0000000..134accc
--- /dev/null
+++ b/geode-client-native/quickstart/cpp/vsprojects/DataExpirationC++/DataExpirationC++.vcxproj
@@ -0,0 +1,141 @@
+\ufeff<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectName>DataExpiration C++</ProjectName>
+    <ProjectGuid>{0418CF54-8262-435D-A472-3FC43640FA59}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)\cpp\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)\cpp\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Configuration)\</IntDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Configuration)\</IntDir>
+    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">DataExpiration</TargetName>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">DataExpiration</TargetName>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">DataExpiration</TargetName>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">DataExpiration</TargetName>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <AdditionalIncludeDirectories>$(GFCPP)/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <Optimization>Disabled</Optimization>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>$(GFCPP)/../hidden/lib/debug/gfcppcache.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(SolutionDir)\cpp\DataExpiration.exe</OutputFile>
+      <TargetMachine>MachineX86</TargetMachine>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+    </Midl>
+    <ClCompile>
+      <AdditionalIncludeDirectories>$(GFCPP)/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <Optimization>Disabled</Optimization>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>$(GFCPP)/../hidden/lib/gfcppcache.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(SolutionDir)\cpp\DataExpiration.exe</OutputFile>
+      <TargetMachine>MachineX64</TargetMachine>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <AdditionalIncludeDirectories>$(GFCPP)/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>$(GFCPP)/lib/gfcppcache.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(SolutionDir)\cpp\DataExpiration.exe</OutputFile>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+    </Midl>
+    <ClCompile>
+      <AdditionalIncludeDirectories>$(GFCPP)/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>$(GFCPP)/lib/gfcppcache.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(SolutionDir)\cpp\DataExpiration.exe</OutputFile>
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\DataExpiration.cpp" />
+    <ClCompile Include="..\..\plugins\SimpleCacheListener.cpp" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ac967000/geode-client-native/quickstart/cpp/vsprojects/DeltaC++/DeltaC++.vcxproj
----------------------------------------------------------------------
diff --git a/geode-client-native/quickstart/cpp/vsprojects/DeltaC++/DeltaC++.vcxproj b/geode-client-native/quickstart/cpp/vsprojects/DeltaC++/DeltaC++.vcxproj
new file mode 100755
index 0000000..33cfd27
--- /dev/null
+++ b/geode-client-native/quickstart/cpp/vsprojects/DeltaC++/DeltaC++.vcxproj
@@ -0,0 +1,140 @@
+\ufeff<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectName>Delta C++</ProjectName>
+    <ProjectGuid>{CA044B76-5529-4C38-9B09-8FA9444E37E8}</ProjectGuid>
+    <RootNamespace>Delta C++</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)\cpp\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)\cpp\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Configuration)\</IntDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Configuration)\</IntDir>
+    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Delta</TargetName>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Delta</TargetName>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Delta</TargetName>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Delta</TargetName>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <AdditionalIncludeDirectories>$(GFCPP)/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <Optimization>Disabled</Optimization>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>$(GFCPP)/../hidden/lib/debug/gfcppcache.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(SolutionDir)\cpp\Delta.exe</OutputFile>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+    </Midl>
+    <ClCompile>
+      <AdditionalIncludeDirectories>$(GFCPP)/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <Optimization>Disabled</Optimization>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>$(GFCPP)/../hidden/lib/gfcppcache.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(SolutionDir)\cpp\Delta.exe</OutputFile>
+      <TargetMachine>MachineX64</TargetMachine>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <AdditionalIncludeDirectories>$(GFCPP)/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>$(GFCPP)/lib/gfcppcache.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(SolutionDir)\cpp\Delta.exe</OutputFile>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+    </Midl>
+    <ClCompile>
+      <AdditionalIncludeDirectories>$(GFCPP)/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>$(GFCPP)/lib/gfcppcache.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(SolutionDir)\cpp\Delta.exe</OutputFile>
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\Delta.cpp" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file