0
0
mirror of https://github.com/mongodb/mongo.git synced 2024-11-30 00:56:44 +01:00
mongodb/util/moveablebuffer.h

52 lines
1.5 KiB
C
Raw Normal View History

2010-09-30 23:27:40 +02:00
/* moveablebuffer.h
*/
/* Copyright 2009 10gen Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
namespace mongo {
/** this is a sort of smart pointer class where we can move where something is and all the pointers will adjust.
2011-01-04 06:40:41 +01:00
not threadsafe.
2010-09-30 23:27:40 +02:00
*/
2011-01-04 06:40:41 +01:00
struct MoveableBuffer {
2010-09-30 23:27:40 +02:00
MoveableBuffer();
MoveableBuffer(void *);
MoveableBuffer& operator=(const MoveableBuffer&);
~MoveableBuffer();
void *p;
};
/* implementation (inlines) below */
// this is a temp stub implementation...not really done yet - just having everything compile & such for checkpointing into git
inline MoveableBuffer::MoveableBuffer() : p(0) { }
inline MoveableBuffer::MoveableBuffer(void *_p) : p(_p) { }
2011-01-04 06:40:41 +01:00
inline MoveableBuffer& MoveableBuffer::operator=(const MoveableBuffer& r) {
2010-09-30 23:27:40 +02:00
p = r.p;
return *this;
}
2011-01-04 06:40:41 +01:00
inline MoveableBuffer::~MoveableBuffer() {
2010-09-30 23:27:40 +02:00
}
}