<div dir="ltr"><div><div style="font-size:12.8px">Reference: to the mail on 25th of March 2016</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">This is to bring to your notice that I have applied for GSOC 2016 with Project Title<b>-</b><span id="docs-internal-guid-2a4df7d9-f692-bce8-fe7f-d40d59f135ff"><span style="font-size:17.3333px;font-family:Arial;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap">Output-Device use a Compilation Firewall for Libreoffice</span></span><span style="color:rgb(0,0,0);font-family:Arial;font-size:14.6667px;white-space:pre-wrap;line-height:1.38;text-align:center;background-color:transparent"> for  </span><span style="color:rgb(0,0,0);font-family:Arial;font-size:14.6667px;white-space:pre-wrap;line-height:1.38;text-align:center;background-color:transparent">ORG:Libreoffice, </span><span style="font-size:12.8px">under your Mentorship.</span></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Kindly provide with the technologies to be used and a brief description of the work to be done.So that I could start working on the Project right away and showcase you the basic layout and some constructive work for the Project.With this you will be able to decide whether you would consider opting me for the Project.</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">We can have a Skype session if you would feel suitable for an interactive session.</div><div style="font-size:12.8px"><br></div><span style="font-size:12.8px">Link to Application: </span><a href="https://docs.google.com/document/d/1H3BfMBfTh8yHVpaGKfdfXtm_ZD6Mnd7impXOiRfpka4/edit?usp=sharing">https://docs.google.com/document/d/1H3BfMBfTh8yHVpaGKfdfXtm_ZD6Mnd7impXOiRfpka4/edit?usp=sharing</a></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Mar 25, 2016 at 1:31 PM, Mohit Kumra (via Google Docs) <span dir="ltr"><<a href="mailto:mohitkumra95@gmail.com" target="_blank">mohitkumra95@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div><div style="width:100%;padding:24px 0px 16px;text-align:center;background-color:rgb(245,245,245)"><div style="display:inline-block;width:90%;min-width:280px;text-align:left;font-family:Roboto,Arial,Helvetica,sans-serif"><div style="min-height:0px" dir="ltr"></div><div style="display:block;padding:0px 2px"><div style="display:block;min-height:2px;background:rgb(255,255,255)"></div></div><div style="border-left-width:1px;border-left-style:solid;border-left-color:rgb(240,240,240);border-right-width:1px;border-right-style:solid;border-right-color:rgb(240,240,240)"><div style="padding:24px 32px 32px;border-right-width:1px;border-right-style:solid;border-right-color:rgb(234,234,234);border-left-width:1px;border-left-style:solid;border-left-color:rgb(234,234,234);background:rgb(255,255,255)" dir="ltr"><span class=""><div style="font-size:14px;line-height:18px;color:rgb(68,68,68)"><a href="mailto:mohitkumra95@gmail.com" style="color:inherit;text-decoration:none" target="_blank">Mohit Kumra</a> has invited you to <b>comment on</b> the following document:</div><div style="min-height:10px"></div><div style="font-size:18px;display:table"><div style="display:table-row;border-bottom-width:4px;border-bottom-style:solid;border-bottom-color:rgb(255,255,255)"><span style="display:table-cell"><div style="min-height:32px"><img src="https://ssl.gstatic.com/docs/documents/share/images/services/document-4.png" style="vertical-align: middle; max-width: 24px;"></div></span><span style="display:table-cell;padding-left:12px"><a href="https://docs.google.com/document/d/1H3BfMBfTh8yHVpaGKfdfXtm_ZD6Mnd7impXOiRfpka4/edit?usp=sharing_eid&ts=56f4f059" style="color:rgb(51,103,214);text-decoration:none;vertical-align:middle" target="_blank">GSOC_2016_proposal_Compilation_Firewall</a><div></div></span></div></div><div style="min-height:16px"></div><div style="min-height:1px;background-color:rgb(238,238,238)"></div><div style="min-height:24px"></div></span><div style="display:table-row"><span class=""><img style="display: table-cell;" width="50" src="https://drive.google.com/c/u/0/photos/public/AIbEiAIAAABDCN2ZuOeS0oHLAiILdmNhcmRfcGhvdG8qKGFkZmE5NjM2ZmIxNTk4YjgzYjQ4ODE0ZjVmZjU5MTQ5MmZhOTZiZGYwAYBRF6Ik2ntwOYZ0yz2ldMw4XvEf" alt="Sender's profile photo"></span><span style="display:table-cell;vertical-align:top;padding-left:16px;font-size:13px;line-height:18px;max-width:496px;color:rgb(38,38,38)">I am extremely interested in working for the OutputDevice class Compilation Firewall project I have C,C++,Java,scripting,Python,and have working proficiency of STL.<div><div class="h5"><br>It is requested to review the Proposal for Output-Device use a Compilation Firewall for Libreoffice.<br><br>Thank you for the consideration.A quick reply is appreciated!!</div></div></span></div><div><div class="h5"><div style="min-height:32px"></div><div><a href="https://docs.google.com/document/d/1H3BfMBfTh8yHVpaGKfdfXtm_ZD6Mnd7impXOiRfpka4/edit?usp=sharing_eid&ts=56f4f059" style="border:1px solid rgb(48,121,237);border-radius:2px;color:white;display:inline-block;font-family:Roboto,Arial,Helvetica,sans-serif;font-size:11px;font-weight:bold;min-height:29px;line-height:29px;min-width:54px;outline:0px;padding:0px 8px;text-align:center;text-decoration:none;background-color:rgb(77,144,254)" target="_blank">Open in Docs</a></div><div style="min-height:16px"></div><div style="min-height:1px;background-color:rgb(238,238,238)"></div><div style="min-height:24px"></div><div style="font-style:italic">Snapshot of the item below:</div></div></div><div style="padding:10px 0px"><div><div class="h5"><h3 style="padding:4pt 0px 0pt;margin:0px;color:rgb(67,67,67);font-size:14pt;line-height:1.6;font-family:Arial;text-align:center"><span style="font-size:13pt;color:rgb(0,0,0);font-weight:bold;background-color:rgb(255,255,255)">Output-Device use a Compilation Firewall for Libreoffice</span></h3><h3 style="padding:4pt 0px 0pt;margin:0px;color:rgb(67,67,67);font-size:14pt;line-height:1.6;font-family:Arial;text-align:center"><span style="font-size:13pt;color:rgb(0,0,0);font-weight:bold;background-color:rgb(255,255,255)">MOHIT KUMRA</span></h3><h3 style="padding:4pt 0px 0pt;margin:0px;color:rgb(67,67,67);font-size:14pt;line-height:1.6;font-family:Arial;text-align:center"><span style="font-size:13pt;color:rgb(0,0,0);font-weight:bold;background-color:rgb(255,255,255)">MARCH 23rd 2016</span></h3><h3 style="padding:4pt 0px 0pt;margin:0px;color:rgb(67,67,67);font-size:14pt;line-height:1.6;font-family:Arial;min-height:14pt;text-align:center"><span style="font-size:13pt;color:rgb(0,0,0);font-weight:bold;background-color:rgb(255,255,255)"></span></h3><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial"><span style="font-size:12pt;font-weight:bold">MENTOR: </span><span style="font-size:12pt;font-style:italic;color:rgb(37,37,37);font-weight:bold;background-color:rgb(255,255,255)">Chris Sherlock</span></p><h3 style="padding:4pt 0px 0pt;margin:0px;color:rgb(67,67,67);font-size:14pt;line-height:1.15;font-family:Arial;text-align:left"><span style="font-size:12pt;color:rgb(0,0,0);font-weight:bold;background-color:rgb(255,255,255)">Student Name: </span><span style="font-size:12pt;color:rgb(0,0,0);background-color:rgb(255,255,255)">MOHIT KUMRA</span></h3><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15"><span style="font-size:12pt;font-weight:bold">DATE: </span><span style="font-size:12pt">MARCH 23rd  2016</span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15"><span style="font-size:12pt;font-weight:bold">TITLE: </span><span style="font-size:12pt">Compilation firewall for Libreoffice and Modularizing the Output-Device class.</span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15;min-height:11pt"><span style="font-size:12pt;font-weight:bold"></span></p><h3 style="padding:4pt 0px 0pt;margin:0px;color:rgb(67,67,67);font-size:14pt;line-height:1.6;font-family:Arial;text-align:left"><span style="color:rgb(0,0,0);font-weight:bold;text-decoration:underline;background-color:rgb(255,255,255)">SYNOPSIS:</span></h3><p style="padding:4pt 0px 0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.14"><span style="font-size:10.5pt">Data abstraction refers to, providing only essential information to the outside world and hiding their background details.With the introduction of this concept programs and developers now could easily write the code and had lesser chances of depiction of all the features to all thus minimizing the threat of code corruption.</span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.14;min-height:11pt"><span style="font-size:10.5pt"></span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.14"><span style="font-size:10.5pt">I would recommend to make the compilation firewall for the Output-Device class and to split the functionality of the Output-Device class. This would minimize the massive load due to functionality being encapsulated into a dense form in the Output-Device class, thereby enabling programs to run faster with inclusion of the Compilation Firewall.</span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15;min-height:11pt"><span></span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15"><span style="font-size:14pt;font-weight:bold;text-decoration:underline">The Project:</span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15;min-height:11pt"><span style="font-size:14pt;font-weight:bold"></span></p><p style="padding:0px 0px 11pt;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.14"><span style="font-size:10.5pt;color:rgb(34,36,38);background-color:rgb(255,255,255)">In any programming language writing code does not imply that it is in alignment with the guidelines but one needs to ensure that the code is protected and secure against corruption/malwares thereby having zero or minimal code smells.</span></p><p style="padding:0px 0px 11pt;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.14"><span style="font-size:10.5pt;color:rgb(34,36,38);background-color:rgb(255,255,255)">The concept of Data abstraction provides us with the feature of hiding the details and depicting only the essential details to the end user. For this we use the PIMPL Idiom (Pointer to IMPLementation) is a technique for implementation hiding in which a public class wraps a structure or class that cannot be seen outside the library the public class is part of. This hides internal implementation details and data from the user of the library</span><span style="font-size:11.5pt;color:rgb(34,36,38);background-color:rgb(255,255,255)">.</span></p><p style="padding:0px 0px 11pt;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.14"><span style="font-size:11.5pt;color:rgb(34,36,38);background-color:rgb(255,255,255)">These are the Benefits of using PIMPL Idiom:</span></p><p style="padding:0px 0px 11pt;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.14"><span style="font-size:13pt;color:rgb(34,36,38);font-weight:bold;background-color:rgb(255,255,255)">Benefits:</span></p><ol style="padding:0px;margin:0px"><li style="padding:0px 0px 11pt 0pt;color:rgb(0,0,0);font-size:11pt;line-height:1.27174;margin:0px 0px 0px 36pt;font-family:Arial"><span style="font-size:11.5pt;color:rgb(34,36,38);background-color:rgb(255,255,255)">Changing private member variables of a class does not require recompiling classes that depend on it, thus </span><span style="font-size:11.5pt;color:rgb(34,36,38);font-weight:bold;background-color:rgb(255,255,255)">make</span><span style="font-size:11.5pt;color:rgb(34,36,38);background-color:rgb(255,255,255)"> times are faster, and the well known </span><span style="font-size:11.5pt;color:rgb(34,36,38);background-color:rgb(255,255,255)">Fragile Binary Interface Problem()</span><span style="font-size:11.5pt;color:rgb(34,36,38);background-color:rgb(255,255,255)"> is reduced.</span></li><li style="padding:0px 0px 11pt 0pt;color:rgb(0,0,0);font-size:11pt;line-height:1.27174;margin:0px 0px 0px 36pt;font-family:Arial"><span style="font-size:11.5pt;color:rgb(34,36,38);background-color:rgb(255,255,255)">The header file does not need to #include classes that are used 'by value' in private member variables, thus </span><span style="font-size:11.5pt;color:rgb(34,36,38);font-weight:bold;background-color:rgb(255,255,255)">compile</span><span style="font-size:11.5pt;color:rgb(34,36,38);background-color:rgb(255,255,255)"> times are faster.</span></li><li style="padding:0px 0px 11pt 0pt;color:rgb(0,0,0);font-size:11pt;line-height:1.27174;margin:0px 0px 0px 36pt;font-family:Arial"><span style="font-size:11.5pt;color:rgb(34,36,38);background-color:rgb(255,255,255)">This is sort of like the way </span><span style="font-size:11.5pt;color:rgb(34,36,38);background-color:rgb(255,255,255)">Small Talk (a well known unusual syntax based language)</span><span style="font-size:11.5pt;color:rgb(34,36,38);background-color:rgb(255,255,255)"> automatically handles classes... more pure encapsulation.</span></li></ol><p style="padding:0px 0px 11pt;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.27174"><span style="font-size:11.5pt;color:rgb(34,36,38);background-color:rgb(255,255,255)">The Implementation of making the Compilation Firewall file with the help of the pmlpl idom format is as follows:</span></p><p style="padding:0px 0px 11pt;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.27174"><span style="font-size:13pt;color:rgb(34,36,38);font-weight:bold;background-color:rgb(255,255,255)">How to do it:</span></p><ol style="padding:0px;margin:0px"><li style="padding:0px 0px 11pt 0pt;color:rgb(0,0,0);font-size:11pt;line-height:1.27174;margin:0px 0px 0px 36pt;font-family:Arial"><span style="font-size:11.5pt;color:rgb(34,36,38);background-color:rgb(255,255,255)">Put all the private member variables into a struct.</span></li><li style="padding:0px 0px 11pt 0pt;color:rgb(0,0,0);font-size:11pt;line-height:1.27174;margin:0px 0px 0px 36pt;font-family:Arial"><span style="font-size:11.5pt;color:rgb(34,36,38);background-color:rgb(255,255,255)">Put the struct definition in the .cpp file.</span></li><li style="padding:0px 0px 11pt 0pt;color:rgb(0,0,0);font-size:11pt;line-height:1.27174;margin:0px 0px 0px 36pt;font-family:Arial"><span style="font-size:11.5pt;color:rgb(34,36,38);background-color:rgb(255,255,255)">In the header file, put only the </span><span style="font-size:11.5pt;color:rgb(34,36,38);background-color:rgb(255,255,255)">Forward Declaration</span><span style="font-size:11.5pt;color:rgb(34,36,38);background-color:rgb(255,255,255)"> of the struct.</span></li><li style="padding:0px 0px 11pt 0pt;color:rgb(0,0,0);font-size:11pt;line-height:1.27174;margin:0px 0px 0px 36pt;font-family:Arial"><span style="font-size:11.5pt;color:rgb(34,36,38);background-color:rgb(255,255,255)">In the class definition, declare a (smart) pointer to the struct as the only private member variable.</span></li><li style="padding:0px 0px 11pt 0pt;color:rgb(0,0,0);font-size:11pt;line-height:1.27174;margin:0px 0px 0px 36pt;font-family:Arial"><span style="font-size:11.5pt;color:rgb(34,36,38);background-color:rgb(255,255,255)">The constructors for the class need to create the struct.</span></li><li style="padding:0px 0px 11pt 0pt;color:rgb(0,0,0);font-size:11pt;line-height:1.27174;margin:0px 0px 0px 36pt;font-family:Arial"><span style="font-size:11.5pt;color:rgb(34,36,38);background-color:rgb(255,255,255)">The destructor of the class needs to destroy the struct (possibly implicitly due to use of a smart pointer).</span></li><li style="padding:0px 0px 11pt 0pt;color:rgb(0,0,0);font-size:11pt;line-height:1.27174;margin:0px 0px 0px 36pt;font-family:Arial"><span style="font-size:11.5pt;color:rgb(34,36,38);background-color:rgb(255,255,255)">The assignment operator and </span><span style="font-size:11.5pt;color:rgb(34,36,38);background-color:rgb(255,255,255)">Copy Constructor</span><span style="font-size:11.5pt;color:rgb(34,36,38);background-color:rgb(255,255,255)"> need to copy the struct appropriately or else be disabled.</span></li></ol></div></div><p style="margin:0px 0px 0px 36pt;padding:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial"><span style="font-size:10.5pt">To study for Compilation file links are:</span></p><ol style="padding:0px;margin:0px"><li style="margin:0px 0px 0px 108pt;padding:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial"><span style="font-size:10.5pt;color:rgb(17,85,204);text-decoration:underline"><a href="https://www.google.com/url?q=http://c2.com/cgi/wiki?PimplIdiom&sa=D&ust=1458896488814000&usg=AFQjCNF92l549sJWoCrSXIdcjzGOWKYZ9A" style="color:inherit;text-decoration:inherit" target="_blank">http://c2.com/cgi/wiki?PimplIdiom</a></span></li><li style="margin:0px 0px 0px 108pt;padding:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial"><span style="font-size:10.5pt;color:rgb(17,85,204);text-decoration:underline"><a href="https://www.google.com/url?q=http://stackoverflow.com/questions/60570/why-should-the-pimpl-idiom-be-used&sa=D&ust=1458896488815000&usg=AFQjCNGbw8lwAK_xGSfz8PQkt_iL0k8GOg" style="color:inherit;text-decoration:inherit" target="_blank">http://stackoverflow.com/questions/60570/why-should-the-pimpl-idiom-be-used</a></span></li><li style="margin:0px 0px 0px 108pt;padding:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial"><span style="font-size:10.5pt;color:rgb(17,85,204);text-decoration:underline"><a href="https://www.google.com/url?q=http://herbsutter.com/gotw/_100/&sa=D&ust=1458896488816000&usg=AFQjCNF8I_uyZuyRssarUN-e7p4gzM98DQ" style="color:inherit;text-decoration:inherit" target="_blank">http://herbsutter.com/gotw/_100/</a></span></li></ol><div><div class="h5"><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;min-height:11pt"><span style="font-size:10.5pt"></span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15"><span style="font-weight:bold">Example:</span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15;min-height:11pt"><span style="color:rgb(67,67,67)"></span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15;min-height:11pt"><span style="font-size:9pt;font-family:'Courier New';color:rgb(67,67,67)"></span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15"><span style="font-size:9pt;font-family:'Courier New';color:rgb(67,67,67)">#include <iostream></span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15"><span style="font-size:9pt;font-family:'Courier New';color:rgb(67,67,67)">using namespace std;</span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15;min-height:11pt"><span style="font-size:9pt;font-family:'Courier New';color:rgb(67,67,67)"></span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15"><span style="font-size:9pt;font-family:'Courier New';color:rgb(67,67,67)">class Adder1{</span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15"><span style="font-size:9pt;font-family:'Courier New';color:rgb(67,67,67)">   public:</span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15"><span style="font-size:9pt;font-family:'Courier New';color:rgb(67,67,67)">      // constructor</span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15"><span style="font-size:9pt;font-family:'Courier New';color:rgb(67,67,67)">      Adder1(int i = 0)</span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15"><span style="font-size:9pt;font-family:'Courier New';color:rgb(67,67,67)">      {</span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15"><span style="font-size:9pt;font-family:'Courier New';color:rgb(67,67,67)">        total1 = i;</span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15"><span style="font-size:9pt;font-family:'Courier New';color:rgb(67,67,67)">      }</span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15"><span style="font-size:9pt;font-family:'Courier New';color:rgb(67,67,67)">      // interface to outside world</span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15"><span style="font-size:9pt;font-family:'Courier New';color:rgb(67,67,67)">      void addNum1(int number)</span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15"><span style="font-size:9pt;font-family:'Courier New';color:rgb(67,67,67)">      {</span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15"><span style="font-size:9pt;font-family:'Courier New';color:rgb(67,67,67)">          total1 += number;</span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15"><span style="font-size:9pt;font-family:'Courier New';color:rgb(67,67,67)">      }</span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15"><span style="font-size:9pt;font-family:'Courier New';color:rgb(67,67,67)">      // interface to outside world</span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15"><span style="font-size:9pt;font-family:'Courier New';color:rgb(67,67,67)">      int getTotal1()</span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15"><span style="font-size:9pt;font-family:'Courier New';color:rgb(67,67,67)">      {</span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15"><span style="font-size:9pt;font-family:'Courier New';color:rgb(67,67,67)">          return total1;</span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15"><span style="font-size:9pt;font-family:'Courier New';color:rgb(67,67,67)">      };</span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15"><span style="font-size:9pt;font-family:'Courier New';color:rgb(67,67,67)">   private:</span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15"><span style="font-size:9pt;font-family:'Courier New';color:rgb(67,67,67)">      // hidden data from outside world</span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15"><span style="font-size:9pt;font-family:'Courier New';color:rgb(67,67,67)">      int total1;</span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15"><span style="font-size:9pt;font-family:'Courier New';color:rgb(67,67,67)">};</span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15"><span style="font-size:9pt;font-family:'Courier New';color:rgb(67,67,67)">int main( )</span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15"><span style="font-size:9pt;font-family:'Courier New';color:rgb(67,67,67)">{</span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15"><span style="font-size:9pt;font-family:'Courier New';color:rgb(67,67,67)">   Adder1 a;</span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15"><span style="font-size:9pt;font-family:'Courier New';color:rgb(67,67,67)">   </span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15"><span style="font-size:9pt;font-family:'Courier New';color:rgb(67,67,67)">   a.addNum1(10);</span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15"><span style="font-size:9pt;font-family:'Courier New';color:rgb(67,67,67)">   a.addNum1(20);</span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15"><span style="font-size:9pt;font-family:'Courier New';color:rgb(67,67,67)">   a.addNum1(30);</span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15;min-height:11pt"><span style="font-size:9pt;font-family:'Courier New';color:rgb(67,67,67)"></span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15"><span style="font-size:9pt;font-family:'Courier New';color:rgb(67,67,67)">   cout << "Total " << a.getTotal1() <<endl;</span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15"><span style="font-size:9pt;font-family:'Courier New';color:rgb(67,67,67)"> system("pause");</span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15"><span style="font-size:9pt;font-family:'Courier New';color:rgb(67,67,67)">   return 0;</span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15"><span style="font-size:9pt;font-family:'Courier New';color:rgb(67,67,67)">}</span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15;min-height:11pt"><span style="font-size:9pt;font-family:'Courier New';color:rgb(67,67,67)"></span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15"><span style="color:rgb(67,67,67)">The Output is : </span><span style="font-family:'Courier New';color:rgb(67,67,67);background-color:rgb(238,238,238)">Total 60</span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15;min-height:11pt"><span></span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.15"><span style="font-family:Verdana;background-color:rgb(255,255,255)">Above class adds numbers together, and returns the sum. The public members </span><span style="font-family:Verdana;font-weight:bold;background-color:rgb(255,255,255)">addNum1</span><span style="font-family:Verdana;background-color:rgb(255,255,255)"> and </span><span style="font-family:Verdana;font-weight:bold;background-color:rgb(255,255,255)">getTotal1</span><span style="font-family:Verdana;background-color:rgb(255,255,255)"> are the interfaces to the outside world and a user needs to know them to use the class. The private member </span><span style="font-family:Verdana;font-weight:bold;background-color:rgb(255,255,255)">total1</span><span style="font-family:Verdana;background-color:rgb(255,255,255)"> is something that the user doesn't need to know about, but is needed for the class to operate properly.</span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;min-height:11pt"><span></span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;min-height:11pt"><span></span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial"><span style="font-size:14pt;font-weight:bold;text-decoration:underline">Road-Map:</span><span style="font-weight:bold;text-decoration:underline"> </span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;min-height:11pt"><span style="font-size:10.5pt"></span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial"><span style="font-size:10.5pt;font-weight:bold">For</span><span style="font-size:10.5pt"> Project Development, following steps would be followed:</span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;min-height:11pt"><span style="font-size:10.5pt"></span></p><p style="margin:0px 0px 0px 36pt;padding:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial"><span style="font-size:10.5pt;font-weight:bold">1. Review: </span><span style="font-size:10.5pt">On acceptance of the proposal for the project I would review the code provided by the Mentors and try to analyse and familiarize with the Data members and Data functions being used in the code. </span><span style="font-size:10.5pt;font-weight:bold">(May 23rd - May 30th 2016)</span></p><p style="margin:0px 0px 0px 36pt;padding:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;min-height:11pt"><span style="font-size:10.5pt;font-weight:bold"></span></p><p style="margin:0px 0px 0px 36pt;padding:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial"><span style="font-size:10.5pt;font-weight:bold">2. Refactor: </span><span style="font-size:10.5pt">After reviewing the code, I will use my skillset for refactoring the code. Thus making the code more effective and efficient in terms of complexity( Time + Space ) and would modularize the code as much as possible. This would take less than a week to complete.</span><span style="font-size:10.5pt;font-weight:bold">(June 2016)</span></p><p style="margin:0px 0px 0px 36pt;padding:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;min-height:11pt"><span style="font-size:10.5pt;font-weight:bold"></span></p></div></div><p style="margin:0px 0px 0px 36pt;padding:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial"><span style="font-size:10.5pt">3. Step 2 would help in achieving the goal of reducing the massive Output-Device class code into modules and subclasses.</span></p><p style="margin:0px 0px 0px 36pt;padding:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;min-height:11pt"><span style="font-size:10.5pt"></span></p><p style="margin:0px 0px 0px 36pt;padding:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial"><span style="font-size:10.5pt;font-weight:bold">4. Develop: </span><span style="font-size:10.5pt">Parallel to modularizing the Output-Device class code I would deduce and implement a methodology for making the compilation firewall for the Output-Device class of the LibreOffice.</span><span style="font-size:10.5pt;font-weight:bold">(June 20th - July 20th 2016 )</span><span style="font-size:10.5pt"> </span></p><span class=""><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;min-height:11pt"><span style="font-size:11.5pt;font-weight:bold;background-color:rgb(255,255,255)"></span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial"><span style="font-size:11.5pt;font-weight:bold;background-color:rgb(255,255,255)">Design Strategy:</span><span style="font-size:11.5pt;background-color:rgb(255,255,255)"> </span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial"><span style="font-size:11.5pt;background-color:rgb(255,255,255)">Abstraction separates code into interface and implementation. So while designing the component, I will keep interface independent of the implementation so that if I change underlying implementation the interface would remain intact.</span></p><p style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial"><span style="font-size:10.5pt">Steps to be followed would include:</span></p><p style="padding:0px 0px 11pt;color:rgb(0,0,0);font-size:11pt;line-height:1.27;margin:0px 0px 0px 72pt;font-family:Arial"><span style="font-size:10.5pt;color:rgb(34,36,38);background-color:rgb(255,255,255)">a. Put all the private member variables into a struct.</span></p><p style="padding:0px 0px 11pt;color:rgb(0,0,0);font-size:11pt;line-height:1.27;margin:0px 0px 0px 72pt;font-family:Arial"><span style="font-size:10.5pt;color:rgb(34,36,38);background-color:rgb(255,255,255)">b. Put the struct definition in the .cpp file.</span></p><p style="padding:0px 0px 11pt;color:rgb(0,0,0);font-size:11pt;line-height:1.27;margin:0px 0px 0px 72pt;font-family:Arial"><span style="font-size:10.5pt;color:rgb(34,36,38);background-color:rgb(255,255,255)">c. In the header file, put only the </span><span style="font-size:10.5pt;color:rgb(34,36,38);font-weight:bold;background-color:rgb(255,255,255)">Forward Declaration</span><span style="font-size:10.5pt;color:rgb(34,36,38);background-color:rgb(255,255,255)"> of the struct.</span></p><p style="padding:0px 0px 11pt;color:rgb(0,0,0);font-size:11pt;line-height:1.27;margin:0px 0px 0px 72pt;font-family:Arial"><span style="font-size:10.5pt;color:rgb(34,36,38);background-color:rgb(255,255,255)">d. In the class definition, declare a pointer to the struct as the only private member variable.</span></p><p style="padding:0px 0px 11pt;color:rgb(0,0,0);font-size:11pt;line-height:1.27;margin:0px 0px 0px 72pt;font-family:Arial"><span style="font-size:10.5pt;color:rgb(34,36,38);background-color:rgb(255,255,255)">e. The constructors for the class need to create the struct.</span></p><p style="padding:0px 0px 11pt;color:rgb(0,0,0);font-size:11pt;line-height:1.27;margin:0px 0px 0px 72pt;font-family:Arial"><span style="font-size:10.5pt;color:rgb(34,36,38);background-color:rgb(255,255,255)">f. The destructor of the class needs to destroy the struct (possibly implicitly due to use of a smart pointer).</span></p><p style="padding:0px 0px 11pt;color:rgb(0,0,0);font-size:11pt;line-height:1.27;margin:0px 0px 0px 72pt;font-family:Arial"><span style="font-size:10.5pt;color:rgb(34,36,38);background-color:rgb(255,255,255)">g. The assignment operator and </span><span style="font-size:10.5pt;color:rgb(34,36,38);font-weight:bold;background-color:rgb(255,255,255)">Copy Constructor</span><span style="font-size:10.5pt;color:rgb(34,36,38);background-color:rgb(255,255,255)"> need to copy the struct appropriately or else be disabled.</span></p><p style="padding:0px 0px 11pt;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.27"><span style="font-size:13pt;color:rgb(34,36,38);font-weight:bold;background-color:rgb(255,255,255)">5. Reconcile:</span><span style="font-size:11.5pt;color:rgb(34,36,38);background-color:rgb(255,255,255)">On achieving the goal of the project would Reconcile the work and provide the Mentor with all possible updates and features of the development with the help of DFD (Data flow Diagrams) and all the documentation required by the Mentor.</span><span style="font-size:10.5pt;font-weight:bold">(Last week of July- August 2016)</span></p><p style="padding:0px 0px 11pt;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.27;min-height:11pt"><span style="font-size:10.5pt;font-weight:bold"></span></p><p style="padding:0px 0px 11pt;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.27"><span style="font-size:14pt;color:rgb(34,36,38);font-weight:bold;text-decoration:underline;background-color:rgb(255,255,255)">Conclusion:</span></p><p style="padding:0px 0px 11pt;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.27"><span style="font-size:11.5pt;color:rgb(34,36,38);background-color:rgb(255,255,255)">When the Project would achieve the goals it would be suitable for implementation to the system. The Output-Device class would then be modularized and its compilation firewall would also be implemented effectively. </span></p></span><p style="padding:0px 0px 11pt;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.27174"><span style="font-size:12pt;font-weight:bold;text-decoration:underline;background-color:rgb(255,255,255)">Proficiency:</span></p><ul style="padding:0px;margin:0px"><li style="padding:0px 0px 11pt 0pt;color:rgb(0,0,0);font-size:11pt;line-height:1.27174;margin:0px 0px 0px 36pt;font-family:Arial"><span style="font-size:12pt;background-color:rgb(255,255,255)">I am proficient in C,C++,JAVA and have worked on developmental projects undertaking these languages.</span></li><li style="padding:0px 0px 11pt 0pt;color:rgb(0,0,0);font-size:11pt;line-height:1.27174;margin:0px 0px 0px 36pt;font-family:Arial"><span style="font-size:12pt;background-color:rgb(255,255,255)">Resume link: </span><span style="font-size:12pt;font-family:Roboto;color:rgb(17,85,204);text-decoration:underline;background-color:rgb(255,255,255)"><a href="https://www.google.com/url?q=https://drive.google.com/file/d/0B7RrMabDB-4FU3VURDBMUlprU3M/view?usp%3Dsharing&sa=D&ust=1458896488834000&usg=AFQjCNGCsIQTt1B3q22MvUy1UsNT4Wuq8g" style="color:inherit;text-decoration:inherit" target="_blank">https://drive.google.com/file/d/0B7RrMabDB-4FU3VURDBMUlprU3M/view?usp=sharing</a></span></li></ul><p style="padding:0px 0px 11pt;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.27174"><span style="font-size:12pt;font-weight:bold;text-decoration:underline;background-color:rgb(255,255,255)">University Information:</span></p><ul style="padding:0px;margin:0px"><li style="padding:0px 0px 35pt 0pt;color:rgb(0,0,0);font-size:11pt;line-height:1.6;margin:0px 0px 0px 72pt;font-family:Arial"><span style="font-size:12pt;font-family:Roboto;color:rgb(34,36,38);background-color:rgb(255,255,255)">University Name: JAYPEE INSTITUTE OF INFORMATION TECHNOLOGY</span></li><li style="padding:2pt 0px 35pt 0pt;color:rgb(0,0,0);font-size:11pt;line-height:1.6;margin:0px 0px 0px 72pt;font-family:Arial"><span style="font-size:12pt;font-family:Roboto;color:rgb(34,36,38);background-color:rgb(255,255,255)">Major:COMPUTER SCIENCE ENGINEERING</span></li><li style="padding:2pt 0px 35pt 0pt;color:rgb(0,0,0);font-size:11pt;line-height:1.6;margin:0px 0px 0px 72pt;font-family:Arial"><span style="font-size:12pt;font-family:Roboto;color:rgb(34,36,38);background-color:rgb(255,255,255)">Current Year and Expected Graduation date: 3rd YEAR & 31-06-2017</span></li><li style="padding:2pt 0px 35pt 0pt;color:rgb(0,0,0);font-size:11pt;line-height:1.6;margin:0px 0px 0px 72pt;font-family:Arial"><span style="font-size:12pt;font-family:Roboto;color:rgb(34,36,38);background-color:rgb(255,255,255)">Degree (e.g. BSc, PhD):B.Tech </span></li></ul><p style="padding:0px 0px 11pt;margin:0px;color:rgb(0,0,0);font-size:11pt;font-family:Arial;line-height:1.27174;min-height:11pt"><span style="font-size:12pt;background-color:rgb(255,255,255)"></span></p></div></div></div><span class=""><table style="width:100%;border-collapse:collapse"><tbody><tr><td style="padding:0px"><table style="border-collapse:collapse;width:3px"><tbody><tr height="1"><td width="1" bgcolor="#f0f0f0" style="padding:0px"></td><td width="1" bgcolor="#eaeaea" style="padding:0px"></td><td width="1" bgcolor="#e5e5e5" style="padding:0px"></td></tr><tr height="1"><td width="1" bgcolor="#f0f0f0" style="padding:0px"></td><td width="1" bgcolor="#eaeaea" style="padding:0px"></td><td width="1" bgcolor="#eaeaea" style="padding:0px"></td></tr><tr height="1"><td width="1" bgcolor="#f5f5f5" style="padding:0px"></td><td width="1" bgcolor="#f0f0f0" style="padding:0px"></td><td width="1" bgcolor="#f0f0f0" style="padding:0px"></td></tr></tbody></table></td><td style="width:100%;padding:0px"><div style="min-height:1px;width:auto;border-top-width:1px;border-top-style:solid;border-top-color:rgb(221,221,221);border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:rgb(240,240,240);background:rgb(234,234,234)"></div></td><td style="padding:0px"><table style="border-collapse:collapse;width:3px"><tbody><tr height="1"><td width="1" bgcolor="#e5e5e5" style="padding:0px"></td><td width="1" bgcolor="#eaeaea" style="padding:0px"></td><td width="1" bgcolor="#f0f0f0" style="padding:0px"></td></tr><tr height="1"><td width="1" bgcolor="#eaeaea" style="padding:0px"></td><td width="1" bgcolor="#eaeaea" style="padding:0px"></td><td width="1" bgcolor="#f0f0f0" style="padding:0px"></td></tr><tr height="1"><td width="1" bgcolor="#f0f0f0" style="padding:0px"></td><td width="1" bgcolor="#f0f0f0" style="padding:0px"></td><td width="1" bgcolor="#f5f5f5" style="padding:0px"></td></tr></tbody></table></td></tr></tbody></table><table style="padding:14px 10px 0px" dir="ltr"><tbody><tr><td style="width:100%;font-size:11px;font-family:Roboto,Arial,Helvetica,sans-serif;color:rgb(100,100,100);line-height:20px;min-height:40px;vertical-align:middle">This is a courtesy copy of an email for your record only. It's not the same email your collaborators received. Click <a href="https://support.google.com/drive/?p=courtesy_copy" target="_blank">here</a> to learn more.</td><td style="padding-left:20px;vertical-align:middle"><a href="https://drive.google.com" target="_blank"><img src="https://www.gstatic.com/images/branding/googlelogo/1x/googlelogo_tm_black54_color_96x40dp.png" width="96" alt="Logo for Google Docs" border="0"></a></td></tr></tbody></table></span></div></div></div></blockquote></div><br></div></div>