Splitting the UnsavedFile struct into its own file

This commit is contained in:
Strahinja Val Markovic 2012-07-21 09:09:29 -07:00
parent 44b671c2c0
commit 964c42068e
3 changed files with 46 additions and 22 deletions

View File

@ -20,6 +20,7 @@
#include "ConcurrentLatestValue.h" #include "ConcurrentLatestValue.h"
#include "Future.h" #include "Future.h"
#include "UnsavedFile.h"
#include <boost/utility.hpp> #include <boost/utility.hpp>
#include <boost/unordered_map.hpp> #include <boost/unordered_map.hpp>
@ -35,28 +36,6 @@ namespace YouCompleteMe
class CandidateRepository; class CandidateRepository;
struct CompletionData; struct CompletionData;
// TODO: put this in a separated header file
struct UnsavedFile
{
UnsavedFile() : filename_( NULL ), contents_( NULL ), length_( 0 ) {}
const char *filename_;
const char *contents_;
unsigned long length_;
// We need this to be able to export this struct to Python via Boost.Python's
// methods. I have no clue why, but it won't compile without it.
// TODO: report this problem on the Boost bug tracker, the default equality
// operator should be more than adequate here
bool operator== ( const UnsavedFile &other ) const
{
return
filename_ == other.filename_ &&
contents_ == other.contents_ &&
length_ == other.length_;
}
};
typedef boost::shared_ptr< std::vector< CompletionData > > AsyncCompletions; typedef boost::shared_ptr< std::vector< CompletionData > > AsyncCompletions;
typedef boost::unordered_map< std::string, std::vector< std::string > > typedef boost::unordered_map< std::string, std::vector< std::string > >

44
cpp/ycm/UnsavedFile.h Normal file
View File

@ -0,0 +1,44 @@
// Copyright (C) 2011, 2012 Strahinja Val Markovic <val@markovic.io>
//
// This file is part of YouCompleteMe.
//
// YouCompleteMe is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// YouCompleteMe is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with YouCompleteMe. If not, see <http://www.gnu.org/licenses/>.
#ifndef UNSAVEDFILE_H_0GIYZQL4
#define UNSAVEDFILE_H_0GIYZQL4
struct UnsavedFile
{
UnsavedFile() : filename_( NULL ), contents_( NULL ), length_( 0 ) {}
const char *filename_;
const char *contents_;
unsigned long length_;
// We need this to be able to export this struct to Python via Boost.Python's
// methods. I have no clue why, but it won't compile without it.
// TODO: report this problem on the Boost bug tracker, the default equality
// operator should be more than adequate here
bool operator== ( const UnsavedFile &other ) const
{
return
filename_ == other.filename_ &&
contents_ == other.contents_ &&
length_ == other.length_;
}
};
#endif /* end of include guard: UNSAVEDFILE_H_0GIYZQL4 */

View File

@ -19,6 +19,7 @@
#include "ClangCompleter.h" #include "ClangCompleter.h"
#include "Future.h" #include "Future.h"
#include "CompletionData.h" #include "CompletionData.h"
#include "UnsavedFile.h"
#include <boost/python.hpp> #include <boost/python.hpp>
#include <boost/utility.hpp> #include <boost/utility.hpp>