v8  3.11.10(node0.8.26)
V8 is Google's open source JavaScript engine
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Serializer Class Referenceabstract

#include <serialize.h>

Inheritance diagram for Serializer:
Collaboration diagram for Serializer:

Data Structures

class  ObjectSerializer
 

Public Member Functions

 Serializer (SnapshotByteSink *sink)
 
 ~Serializer ()
 
void VisitPointers (Object **start, Object **end)
 
int CurrentAllocationAddress (int space)
 
SerializationAddressMapperaddress_mapper ()
 
void PutRoot (int index, HeapObject *object, HowToCode how, WhereToPoint where)
 

Static Public Member Functions

static void Enable ()
 
static void Disable ()
 
static void TooLateToEnableNow ()
 
static bool enabled ()
 
- Static Public Member Functions inherited from SerializerDeserializer
static void Iterate (ObjectVisitor *visitor)
 
static void SetSnapshotCacheSize (int size)
 

Protected Member Functions

int RootIndex (HeapObject *heap_object, HowToCode from)
 
virtual bool ShouldBeInThePartialSnapshotCache (HeapObject *o)=0
 
intptr_t root_index_wave_front ()
 
void set_root_index_wave_front (intptr_t value)
 
virtual void SerializeObject (Object *o, HowToCode how_to_code, WhereToPoint where_to_point)=0
 
void SerializeReferenceToPreviousObject (int space, int address, HowToCode how_to_code, WhereToPoint where_to_point)
 
void InitializeAllocators ()
 
int Allocate (int space, int size, bool *new_page_started)
 
int EncodeExternalReference (Address addr)
 
int SpaceAreaSize (int space)
 

Static Protected Member Functions

static int SpaceOfObject (HeapObject *object)
 
static int SpaceOfAlreadySerializedObject (HeapObject *object)
 
- Static Protected Member Functions inherited from SerializerDeserializer
static int CodeForRepeats (int repeats)
 
static int RepeatsForCode (int byte_code)
 
static int RootArrayConstantFromByteCode (int byte_code)
 
static bool SpaceIsLarge (int space)
 
static bool SpaceIsPaged (int space)
 

Protected Attributes

Isolateisolate_
 
int fullness_ [LAST_SPACE+1]
 
SnapshotByteSinksink_
 
int current_root_index_
 
ExternalReferenceEncoderexternal_reference_encoder_
 
int large_object_total_
 
SerializationAddressMapper address_mapper_
 
intptr_t root_index_wave_front_
 

Static Protected Attributes

static const int kInvalidRootIndex = -1
 
static bool serialization_enabled_ = false
 
static bool too_late_to_enable_now_ = false
 
- Static Protected Attributes inherited from SerializerDeserializer
static const int kRawData = 0x30
 
static const int kSynchronize = 0x70
 
static const int kNativesStringResource = 0x71
 
static const int kNewPage = 0x72
 
static const int kRepeat = 0x73
 
static const int kConstantRepeat = 0x74
 
static const int kMaxRepeats = 0x7f - 0x73
 
static const int kRootArrayLowConstants = 0xb0
 
static const int kRootArrayHighConstants = 0xf0
 
static const int kRootArrayNumberOfConstantEncodings = 0x20
 
static const int kRootArrayNumberOfLowConstantEncodings = 0x10
 
static const int kLargeData = LAST_SPACE
 
static const int kLargeCode = kLargeData + 1
 
static const int kLargeFixedArray = kLargeCode + 1
 
static const int kNumberOfSpaces = kLargeFixedArray + 1
 
static const int kAnyOldSpace = -1
 
static const int kSpaceMask = 15
 

Friends

class ObjectSerializer
 
class Deserializer
 

Additional Inherited Members

- Protected Types inherited from SerializerDeserializer
enum  Where {
  kNewObject = 0, kRootArray = 0x9, kPartialSnapshotCache = 0xa, kExternalReference = 0xb,
  kSkip = 0xc, kBackref = 0x10, kFromStart = 0x20, kPointedToMask = 0x3f
}
 
enum  HowToCode { kPlain = 0, kFromCode = 0x40, kHowToCodeMask = 0x40 }
 
enum  WhereToPoint { kStartOfObject = 0, kFirstInstruction = 0x80, kWhereToPointMask = 0x80 }
 

Detailed Description

Definition at line 457 of file serialize.h.

Constructor & Destructor Documentation

~Serializer ( )

Definition at line 1131 of file serialize.cc.

References Serializer::external_reference_encoder_.

Member Function Documentation

int CurrentAllocationAddress ( int  space)
inline
static void Disable ( )
inlinestatic

Definition at line 476 of file serialize.h.

References Serializer::serialization_enabled_.

static void Enable ( )
inlinestatic

Definition at line 469 of file serialize.h.

References ASSERT, Serializer::serialization_enabled_, and Serializer::too_late_to_enable_now_.

Referenced by main(), and TEST().

int EncodeExternalReference ( Address  addr)
inlineprotected
void InitializeAllocators ( )
protected
intptr_t root_index_wave_front ( )
inlineprotected

Definition at line 490 of file serialize.h.

References Serializer::root_index_wave_front_.

virtual void SerializeObject ( Object o,
HowToCode  how_to_code,
WhereToPoint  where_to_point 
)
protectedpure virtual
void set_root_index_wave_front ( intptr_t  value)
inlineprotected

Definition at line 491 of file serialize.h.

References ASSERT, and Serializer::root_index_wave_front_.

Referenced by PartialSerializer::PartialSerializer().

virtual bool ShouldBeInThePartialSnapshotCache ( HeapObject o)
protectedpure virtual

Implemented in PartialSerializer.

int SpaceOfAlreadySerializedObject ( HeapObject object)
staticprotected
static void TooLateToEnableNow ( )
inlinestatic

Definition at line 479 of file serialize.h.

References Serializer::too_late_to_enable_now_.

Friends And Related Function Documentation

friend class Deserializer
friend

Definition at line 578 of file serialize.h.

friend class ObjectSerializer
friend

Definition at line 577 of file serialize.h.

Field Documentation

int current_root_index_
protected

Definition at line 568 of file serialize.h.

ExternalReferenceEncoder* external_reference_encoder_
protected

Definition at line 569 of file serialize.h.

Referenced by Serializer::EncodeExternalReference(), and Serializer::~Serializer().

int fullness_[LAST_SPACE+1]
protected
Isolate* isolate_
protected

Definition at line 561 of file serialize.h.

Referenced by Serializer::Serializer(), and Serializer::SpaceAreaSize().

const int kInvalidRootIndex = -1
staticprotected
int large_object_total_
protected

Definition at line 573 of file serialize.h.

Referenced by Serializer::Allocate(), and Serializer::CurrentAllocationAddress().

intptr_t root_index_wave_front_
protected
bool serialization_enabled_ = false
staticprotected

Definition at line 570 of file serialize.h.

Referenced by Serializer::Disable(), Serializer::Enable(), and Serializer::enabled().

bool too_late_to_enable_now_ = false
staticprotected

Definition at line 572 of file serialize.h.

Referenced by Serializer::Enable(), and Serializer::TooLateToEnableNow().


The documentation for this class was generated from the following files: